Sådan opretter du private DNS-servere med BIND på Ubuntu 16.04

Sådan opretter du private DNS-servere med BIND på Ubuntu 16.04

Sådan opretter du private DNS-servere med BIND på Ubuntu 16.04. BIND (Berkeley Internet Name Domain) er den mest anvendte DNS-software over internettet. BIND-pakken er tilgængelig for alle Linux-distributioner, hvilket gør installationen enkel og ligetil. I dagens artikel vil vi vise dig, hvordan du installerer, konfigurerer og administrerer BIND 9 som en privat DNS-server på en Ubuntu 16.04 VPS, i få trin.

Krav:

  • To servere (ns1 og ns2) tilsluttet et privat netværk
  • I denne øvelse bruger vi 10.20.0.0 / 16-subnet
  • DNS-klienter, der vil forbinde til dine DNS-servere

1. Opdater begge servere

Begynd ved at opdatere pakkerne på begge servere:

# sudo apt-get opdatering

2. Installer BIND på begge servere

# sudo apt-get install bind xNUMX bind9utils

3. Indstil BIND til IPv4-tilstand

Indstil BIND til IPv4-tilstand, vi gør det ved at redigere filen "/ etc / default / bind9" og tilføje "-4" til OPTIONS-variablen:

# sudo nano / etc / default / bind9

Den redigerede fil skal se sådan ud:

# Kør resolvconf? RESOLVCONF = nej # startup muligheder for serveren OPTIONS = "- 4 -u bind"

Lad os nu konfigurere ns1, vores primære DNS-server.

4. Konfiguration af den primære DNS-server

Rediger filen named.conf.options:

# sudo nano /etc/bind/named.conf.options

På toppen af ​​optionsblokken skal du tilføje en ny blok, der hedder betroet. Denne liste gør det muligt for de klienter, der er angivet i den, at sende rekursive DNS-forespørgsler til vores primære server:

acl "trusted" {10.20.30.13; 10.20.30.14; 10.20.55.154; 10.20.55.155; };

5. Aktivér rekursive forespørgsler på vores ns1-server, og få serveren til at lytte på vores private netværk

Derefter vil vi tilføje et par konfigurationsindstillinger for at aktivere rekursive forespørgsler på vores ns1 server og for at få serveren til at lytte på vores private netværk, tilføj konfigurationsindstillingerne under katalogen "/ var / cache / bind" som i eksemplet nedenfor:

muligheder {mappe "/ var / cache / bind"; rekursion ja; Tillad-rekursion {trusted; }; lyt-på {10.20.30.13; }; tillad-overførsel {none; }; Forwardere {8.8.8.8; 8.8.4.4; }; };

Hvis "listen-on-v6" -direktivet er til stede i filen named.conf.options, skal du slette det, da vi ønsker, at BIND kun skal høre på IPv4.
Nu på ns1 skal du åbne filen named.conf.local for redigering:

# sudo nano /etc/bind/named.conf.local

Her skal vi tilføje fremadzonen:

zone "test.example.com" {type master; fil "/etc/bind/zones/db.test.example.com"; tillad-overførsel {10.20.30.14; }; };

Vores private undernet er 10.20.0.0 / 16, så vi skal tilføje den omvendte zone med følgende linjer:

zone "20.10.in-addr.arpa" {type master; fil "/etc/bind/zones/db.10.20"; tillad-overførsel {10.20.30.14; }; };

Hvis dine servere er i flere private undernet på samme fysiske placering, skal du angive en zone og oprette en separat zonefil for hvert undernet.

6. Oprettelse af Forward Zone File

Nu opretter vi mappen, hvor vi gemmer vores zoner i:

# sudo mkdir / etc / bind / zoner

Vi bruger db.local-filen til at lave vores forward zone-fil, lad os først kopiere filen:

# cd / etc / bind / zoner # sudo cp ../db.local ./db.test.example.com

Rediger nu den fremadrettede fil, vi lige har kopieret:

# sudo nano /etc/bind/zones/db.test.example.com

Det skal se noget som eksemplet nedenfor:

$ TTL 604800 @ IN SOA localhost. root.localhost. (2; Serial 604800; Opdater 86400; Prøv igen 2419200; Udgå 604800); Negativ Cache TTL; @ IN NS localhost. ; slet dette @ IN A 127.0.0.1; slet dette @ IN AAAA :: 1; slet dette

Lad os nu redigere SOA-posten. Udskift localhost med din ns1-serverens FQDN, og erstat derefter "root.localhost" med "admin.test.example.com". Hver gang du redigerer zonerfilen, skal du øge serienværdien, inden du genstarter navngivet ellers BIND vil ikke anvende ændringen til zonen vil vi øge værdien til "3", det skal se sådan ud:

@ I SOA ns1.test.example.com. admin.test.example.com. (3; Serial

Slet derefter de sidste tre poster, der er markeret med "Slet dette" efter SOA-posten.

Tilføj navneserver-arkiverne i slutningen af ​​filen:

; navneservere - NS records i NS ns1.test.example.com. I NS ns2.test.example.com.

Derefter tilføjes A-optegnelserne til de værter, der skal være i denne zone. Det betyder enhver server, hvis navn vi ønsker at ende med ".test.example.com":

; navneservere - En post ns1.test.example.com. I EN 10.20.30.13 ns2.test.example.com. I EN 10.20.30.14; 10.20.0.0 / 16 - En optegnelser host1.test.example.com. I en 10.20.55.154 host2.test.example.com. I EN 10.20.55.155

Filen db.test.example.com skal se ud som om følgende:

$ TTL 604800 @ IN SOA ns1.test.example.com. admin.test.example.com. (3; Serial 604800; Opdater 86400; Prøv igen 2419200; Udgå 604800); Negativ Cache TTL; ; navneservere - NS records i NS ns1.test.example.com. I NS ns2.test.example.com. ; navneservere - En post ns1.test.example.com. I EN 10.20.30.13 ns2.test.example.com. I EN 10.20.30.14; 10.20.0.0 / 16 - En optegnelser host1.test.example.com. I en 10.20.55.154 host2.test.example.com. I EN 10.20.55.155

7. Oprettelse af Reverse Zone-filen

Vi angiver PTR-registreringer for reverse DNS-opslag i de omvendte zonefiler. Når DNS-serveren modtager en PTR-opslagssøgning til et eksempel på IP: "10.20.55.154", kontrollerer den omvendt zonefilen for at hente FQDN af IP-adressen, i vores tilfælde, der ville være "host1.test.example.com" .

Vi opretter en omvendt zonefil for hver enkelt omvendt zone, der er angivet i filen named.conf.local, som vi oprettede på ns1. Vi vil bruge sample db.127 zone filen til at oprette vores reverse zone fil:

# cd / etc / bind / zoner # sudo cp ../db.127 ./db.10.20

Rediger den omvendte zonefil, så den svarer til den omvendte zone, der er defineret i named.conf.local:

# sudo nano /etc/bind/zones/db.10.20

Den oprindelige fil skal se ud som om følgende:

$ TTL 604800 @ IN SOA localhost. root.localhost. (1; Serial 604800; Opdater 86400; Prøv igen 2419200; Udgå 604800); Negativ Cache TTL; @ IN NS localhost. ; Slet dette 1.0.0 IN PTR localhost. ; slet dette

Du bør ændre SOA-registreringen og øge serielværdien. Det skal se sådan ud:

@ I SOA ns1.test.example.com. admin.test.example.com. (3; Serial

Slet derefter de sidste tre poster, der er markeret med "Slet dette" efter SOA-posten.

Tilføj navneserver-arkiverne i slutningen af ​​filen:

; navneservere - NS records i NS ns1.test.example.com. I NS ns2.test.example.com.

Tilføj nu PTR-optegnelserne for alle værter, der er på samme undernet i den zonefil, du oprettede. Dette består af vores værter, der er på 10.20.0.0 / 16-undernet. I den første kolonne vendes den rækkefølge af de sidste to oktetter fra IP-adressen til den vært, vi vil tilføje:

; PTR-optegnelser 13.30 i PTR ns1.test.example.com. ; 10.20.30.13 14.30 I PTR ns2.test.example.com. ; 10.20.30.14 154.55 I PTR host1.test.example.com. ; 10.20.55.154 155.55 I PTR host2.test.example.com. ; 10.20.55.155

Gem og afslut filen omvendt zone.

Filen "/etc/bind/zones/db.10.20" omvendt zone skal se sådan ud:

$ TTL 604800 @ IN SOA test.example.com. admin.test.example.com. (3; Serial 604800; Opdater 86400; Prøv igen 2419200; Udgå 604800); Negativ Cache TTL; navneservere i NS ns1.test.example.com. I NS ns2.test.example.com. ; PTR-optegnelser 13.30 i PTR ns1.test.example.com. ; 10.20.30.13 14.30 I PTR ns2.test.example.com. ; 10.20.30.14 154.55 I PTR host1.test.example.com. ; 10.20.55.154 155.55 I PTR host2.test.example.com. ; 10.20.55.155

8. Kontroller konfigurationsfilerne

Brug følgende kommando til at kontrollere konfigurationssyntaxen for alle de named.conf-filer, som vi konfigurerede:

# sudo navngivet-checkconf

Hvis dine konfigurationsfiler ikke har nogen syntaksproblemer, vil output ikke indeholde fejlmeddelelser. Men hvis du har problemer med dine konfigurationsfiler, skal du sammenligne indstillingerne i afsnittet "Konfigurere den primære DNS-server" med de filer, du har fejl i, og foretage den rigtige indstilling, så du kan prøve at udføre kommandoen named-checkconf igen.

Den navngivne checkzone kan bruges til at kontrollere den korrekte konfiguration af dine zonefiler. Du kan bruge følgende kommando til at kontrollere fremadzonen "test.example.com":

# sudo navngivet-checkzone test.example.com db.test.example.com

Og hvis du vil kontrollere omvendt zone konfiguration, udfør følgende kommando:

# sudo navngivet-checkzone 20.10.in-addr.arpa /etc/bind/zones/db.10.20

Når du har konfigureret alle konfigurations- og zonefiler korrekt, skal du genstarte BIND-tjenesten:

# sudo service bind9 genstart

9. Konfiguration af den sekundære DNS-server

Oprettelse af en sekundær DNS-server er altid en god ide, da den vil fungere som en failover og vil reagere på forespørgsler, hvis den primære server ikke reagerer.

På ns2, rediger filen named.conf.options:

# sudo nano /etc/bind/named.conf.options

Øverst i filen tilføj ACL med de private IP-adresser for alle dine betroede servere:

acl "trusted" {10.20.30.13; 10.20.30.14; 10.128.100.101; 10.128.200.102; };

Ligesom i filen named.conf.options for ns2, tilføj følgende linjer under mappen "/ var / cache / bind":

        rekursion ja; Tillad-rekursion {trusted; }; lyt-på {10.20.30.13; }; tillad-overførsel {none; }; Forwardere {8.8.8.8; 8.8.4.4; };

Gem og afslut filen.

Åbn nu filen named.conf.local for redigering:

# sudo nano /etc/bind/named.conf.local

Nu skal vi angive slavesoner, der matcher masterzoner på ns1 DNS-serveren. Hoveddirektivet skal indstilles til ns1 DNS-serverens private IP-adresse:

zone "test.example.com" {type slave; fil "slaver / db.test.example.com"; mestere {10.20.30.13; }; }; zone "20.10.in-addr.arpa" {type slave; fil "slaver / db.10.20"; mestere {10.20.30.13; }; };

Gem og afslut nu filen.

Brug følgende kommando til at kontrollere syntaxen i konfigurationsfilerne:

# sudo navngivet-checkconf

Start derefter BIND-tjenesten igen:

# sudo service bind9 genstart

10. Konfigurer DNS-klienterne

Vi vil nu konfigurere værterne i vores 10.20.0.0 / 16-undernet for at bruge ns1- og ns2-serverne som deres primære og sekundære DNS-servere. Dette afhænger i høj grad af OS'et, som værterne kører, men for de fleste Linux-distributioner er de indstillinger, der skal ændres, bosat i filen /etc/resolv.conf.

Generelt på Ubuntu, ændrer Debian og CentOS distributioner bare /etc/resolv.conf filen, udfører følgende kommando som root:

# nano /etc/resolv.conf

Udskift derefter de eksisterende navneservere med:

nameserver 10.20.30.13 #ns1 navneserver 10.20.30.14 #ns2

Gem og afslut nu filen, og din klient skal konfigureres til at bruge ns1 og ns2 navneservere.

Test derefter, om dine kunder kan sende forespørgsler til de DNS-servere, du netop har konfigureret:

# nslookup host1.test.example.com

Udgangen fra denne kommando skal være:

Output: Server: 10.20.30.13-adresse: 10.20.30.13 # 53 Navn: host1.test.example.com Adresse: 10.20.55.154

Du kan også teste det omvendte opslag ved at spørge DNS-serveren med værtsens IP-adresse:

# nslookup 10.20.55.154

Udgangen skal se sådan ud:

Output: Server: 10.20.30.13-adresse: 10.20.30.13 # 53 154.55.20.10.in-addr.arpa name = host1.test.example.com.

Kontroller om alle værterne løser korrekt ved hjælp af kommandoerne ovenfor, hvis de gør det, betyder det at du har konfigureret alt korrekt.

Tilføjelse af en ny vært til dine DNS-servere

Hvis du skal tilføje en vært til dine DNS-servere, skal du blot følge nedenstående trin:

På ns1 navneserver gør følgende:

  • Opret en A-post i forsendelsesfilen til værten og øg værdien af ​​serievariablen.
  • Opret en PTR-post i reverse-zonefilen for værten og øg værdien af ​​serielvariablen.
  • Tilføj din værts private IP-adresse til den betroede ACL i named.conf.options.
  • Genindlæs BIND ved at bruge følgende kommando: sudo service bind9 reload

På ns2 navneserver gør følgende:

  • Tilføj din værts private IP-adresse til den betroede ACL i named.conf.options.
  • Genindlæs BIND ved at bruge følgende kommando: sudo service bind9 reload

På værtsmaskinen skal du gøre følgende:

  • Rediger /etc/resolv.conf og skift navneserverne til dine DNS-servere.
  • Brug nslookup til at teste om værten spørger dine DNS-servere.

Fjernelse af en eksisterende vært fra dine DNS-servere

Hvis du vil fjerne værten fra dine DNS-servere, skal du bare fortryde trinene ovenfor.

Bemærk: Undersøg venligst de navne og IP-adresser, der bruges i denne vejledning til navne og IP-adresser for værterne i dit eget private netværk.

Du behøver ikke selv oprette private DNS-servere med BIND på Ubuntu 16.04, hvis du bruger en af ​​vores Linux VPS Hosting Services, i så fald kan du blot bede vores ekspert Linux admins om at oprette private DNS-servere med BIND på Ubuntu 16.04 for dig. De er tilgængelige 24 × 7 og vil tage sig af din anmodning straks.

Kilde

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.