Sådan konfigureres BIND som en privat netværks DNS-Server på CentOS 7

introduktion

en vigtig del af styringen af serverkonfiguration og infrastruktur inkluderer vedligeholdelse af en nem måde at slå netværksgrænseflader og IP-adresser op efter navn ved at oprette et ordentligt domænenavnssystem (DNS). Brug af fuldt kvalificerede domænenavne i stedet for IP-adresser til at specificere netværksadresser Letter konfigurationen af tjenester og applikationer og øger vedligeholdelsen af konfigurationsfiler. Opsætning af din egen DNS til dit private netværk er en fantastisk måde at forbedre styringen af dine servere på.

i denne vejledning gennemgår vi, hvordan du opretter en intern DNS-server ved hjælp af BIND name server-programmet (BIND9) på CentOS 7, der kan bruges af dine virtuelle Private servere (VPS) til at løse private værtsnavne og private IP-adresser. Dette giver en central måde at administrere dine interne værtsnavne og private IP-adresser på, hvilket er uundværligt, når dit miljø udvides til mere end et par værter.

Ubuntu-versionen af denne tutorial kan findes her.

forudsætninger

for at fuldføre denne vejledning skal du bruge følgende:

  • nogle servere, der kører i samme datacenter og har privat netværk aktiveret
  • en ny VPS til at fungere som den primære DNS-server, ns1
  • Valgfrit: en ny VPS til at fungere som en sekundær DNS-server, ns2
  • Root adgang til alle ovenstående (trin 1-4 her)

Hvis du ikke er bekendt med DNS-koncepter, anbefales det, at du læser mindst de første tre dele af vores introduktion til administration af DNS.

Eksempelværter

for eksempel antager vi følgende:

  • Vi har to eksisterende VP ‘ er kaldet “host1” og “host2”
  • begge VP ‘er findes i nyc3 datacenter
  • begge VP’ er har privat netværk aktiveret (og er på undernet 10.128.0.0/16)
  • begge VP ‘ er er på en eller anden måde relateret til vores internetapplikation det kører videre “example.com”

Med disse antagelser beslutter vi, at det giver mening at bruge et navneskema, der bruger “nyc3.example.com” at henvise til vores private undernet eller område. Derfor vil host1 ‘ s Private fuldt kvalificerede domænenavn være “host1.nyc3.example.com”. se følgende tabel de relevante detaljer:

Host rolle privat IP-adresse
host1 generisk vært 1 host1.nyc3.example.com 10.128.100.101
host2 generisk vært 2 host2.nyc3.example.com 10.128.200.102

Bemærk: din eksisterende opsætning vil være anderledes, men eksemplets navne og IP-adresser vil blive brugt til at demonstrere, hvordan du konfigurerer en DNS-server til at levere en fungerende intern DNS. Du skal være i stand til nemt at tilpasse denne opsætning til dit eget miljø ved at erstatte værtsnavne og private IP-adresser med dine egne. Det er ikke nødvendigt at bruge regionens navn på datacentret i dit navneskema, men vi bruger det her til at angive, at disse værter tilhører et bestemt datacenters private netværk. Hvis du bruger flere datacentre, kan du oprette en intern DNS inden for hvert respektive datacenter.

vores mål

Ved afslutningen af denne tutorial vil vi have en primær DNS-server, ns1 og eventuelt en sekundær DNS-server, ns2, som vil fungere som en sikkerhedskopi.

Her er en tabel med eksempelnavne og IP-adresser:

Host rolle privat IP-adresse privat IP-adresse
ns1 primær DNS-server ns1.nyc3.example.com 10.128.10.11
ns2 sekundær DNS-Server ns2.nyc3.example.com 10.128.20.12

lad os komme i gang ved at installere vores primære DNS-server, ns1.

installer BIND på DNS-servere

Bemærk: tekst, der er fremhævet med rødt, er vigtig! Det vil ofte blive brugt til at betegne noget, der skal udskiftes med dine egne indstillinger, eller at det skal ændres eller føjes til en konfigurationsfil. For eksempel, hvis du ser noget som host1.nyc3.eksempel.med, udskift det med din egen server. Ligeledes, hvis du ser host1_private_IP, skal du erstatte den med den private IP-adresse på din egen server.

på både DNS-servere, ns1 og ns2, skal du installere BIND med yum:

  • sudo yum install bind bind-utils

Bekræft prompten ved at indtastey.

nu hvor BIND er installeret, lad os konfigurere den primære DNS-server.

Konfigurer primær DNS-Server

binds konfiguration består af flere filer, som er inkluderet fra hovedkonfigurationsfilen,named.conf. Disse filnavne begynder med” navngivet”, fordi det er navnet på den proces, der binder kørsler. Vi starter med at konfigurere indstillingsfilen.

Konfigurer Bind

BIND ‘ s proces er kendt som navngivet. Som sådan henviser mange af filerne til” navngivet “i stedet for”BIND”.

på ns1 skal du åbnenamed.conf fil til redigering:

  • sudo vi /etc/named.conf

over den eksisterendeoptions blok, Opret en ny ACL-blok kaldet “trusted”. Det er her, vi definerer liste over klienter, som vi tillader rekursive DNS-forespørgsler fra (dvs. dine servere, der er i samme datacenter som ns1). Ved hjælp af vores eksempel private IP-adresser tilføjer vi ns1, ns2, host1 og host2 til vores liste over betroede klienter:

/etc/navngivet.conf – 1 af 4
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};

nu hvor vi har vores liste over betroede DNS-klienter, vil vi gerne redigere options block. Tilføj den private IP-adresse til ns1 til listen-on port 53direktivet, og kommenterlisten-on-v6 linje:

/etc / navngivet.conf – 2 af 4
options { listen-on port 53 { 127.0.0.1; 10.128.10.11; };# listen-on-v6 port 53 { ::1; };...

under disse poster skal du ændre allow-transfer direktivet til fra “ingen” til ns2s private IP-adresse. Skift også allow-query direktiv fra” localhost “til”trusted”:

/etc / navngivet.conf – 3 af 4

i slutningen af filen skal du tilføje følgende linje:

/etc/navngivet.conf – 4 af 4
include "/etc/named/named.conf.local";

nu gemme og afslutte named.conf. Ovenstående konfiguration angiver, at kun dine egne servere (de “betroede”) kan forespørge på din DNS-server.

dernæst konfigurerer vi den lokale fil for at angive vores DNS-områder.

Konfigurer lokal fil

på ns1 skal du åbnenamed.conf.local fil til redigering:

  • sudo vi /etc/named/named.conf.local

filen skal være tom. Her vil vi angive vores frem og tilbage områder.

tilføj det forreste område med følgende linjer (erstat områdenavnet med dit eget):

/etc/named/named.conf.lokal – 1 af 2
zone "nyc3.example.com" { type master; file "/etc/named/zones/db.nyc3.example.com"; # zone file path};

forudsat at vores private undernet er 10.128.0.0/16, tilføj det omvendte område med følgende linjer (bemærk, at vores omvendte områdenavn starter med “128.10”, som er oktetomvendingen af “10.128”):

/etc/named/named.conf.local – 2 of 2
zone "128.10.in-addr.arpa" { type master; file "/etc/named/zones/db.10.128"; # 10.128.0.0/16 subnet };

Hvis dine servere spænder over flere private undernet, men er i samme datacenter, skal du sørge for at angive en ekstra område-og områdefil for hvert særskilt undernet. Når du er færdig med at tilføje alle de ønskede områder, skal du gemme og afslutte filennamed.conf.local.

nu hvor vores områder er angivet i BIND, er vi nødt til at oprette de tilsvarende fremad og omvendt område filer.

Opret fremad fil

fremad fil er, hvor vi definerer DNS-poster for fremad DNS opslag. Det vil sige, når DNS modtager en navneforespørgsel, “host1.nyc3.example.com” for eksempel vil det se i den fremadrettede fil for at løse host1s tilsvarende private IP-adresse.

lad os oprette den mappe, hvor vores områdefiler vil opholde sig. Ifølge vores navngivne.conf.lokal konfiguration, denne placering skal være /etc/named/zones:

  • sudo chmod 755 /etc/named
  • sudo mkdir /etc/named/zones

lad os nu redigere vores fremadrettede fil:

  • sudo vi /etc/named/zones/db.nyc3.example.com

først vil du tilføje SOA-posten. Udskift det fremhævede NS1-FKDN med dit eget FKDN, og udskift derefter det andet “nyc3.example.com” med dit eget domæne. Hver gang du redigerer en områdefil, skal du øge serieværdien, før du genstarter named–processen-vi øger den til “3”. Det skal se sådan ud:

/etc/navngivet/område/db.nyc3.eksempel.com-1 af 3

tilføj derefter dine navneserverposter med følgende linjer (udskift navnene med dine egne). Bemærk, at den anden kolonne angiver, at disse er “NS” — poster:

/etc/navngivne/områder/db.nyc3.eksempel.com-2 af 3
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.

tilføj derefter A-posterne for dine værter, der hører hjemme i dette område. Dette inkluderer enhver server, hvis navn vi vil slutte med “.nyc3.example.com ” (erstat navne og private IP-adresser). Ved hjælp af vores eksempelnavne og private IP-adresser tilføjer vi en post for ns1, ns2, host1 og host2 som sådan:

/etc/navngivet/område/db.nyc3.eksempel.com — 3 af 3

Gem og afslutdb.nyc3.example.com fil.

vores sidste eksempel fremad fil ser ud som følgende:

/etc/navngivne/områder/db.nyc3.eksempel.com — complete

lad os nu gå videre til omvendt område fil(er).

Opret omvendt Områdefil(er)

omvendt områdefil er der, hvor vi definerer DNS PTR-poster for omvendte DNS-opslag. Det vil sige, når DNS modtager en forespørgsel efter IP-adresse, “10.128.100.101”, vil den se i den omvendte fil(er) for at løse det tilsvarende FKDN, “host1.nyc3.example.com ” i dette tilfælde.

på ns1, for hvert omvendt område, der er angivet inamed.conf.local – filen, skal du oprette en omvendt områdefil.

rediger den omvendte områdefil, der svarer til det omvendte område(er) defineret i named.conf.local:

  • sudo vi /etc/named/zones/db.10.128

på samme måde som den fremadrettede områdefil skal du erstatte den fremhævede NS1-FKDN med din egen FKDN og derefter erstatte den anden “nyc3.example.com” med dit eget domæne. Hver gang du redigerer en områdefil, skal du øge serieværdien, før du genstarter named–processen-vi øger den til “3”. Det skal se sådan ud:

/etc/navngivet/område/db.10.128-1 af 3

tilføj derefter dine navneserverposter med følgende linjer (udskift navnene med dine egne). Bemærk, at den anden kolonne angiver, at disse er “NS” – poster:

/etc/navngivet/område/db.10.128-2 af 3
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.

tilføj derefter PTR poster for alle dine servere, hvis IP-adresser er på undernet af den områdefil, du redigerer. I vores eksempel inkluderer dette alle vores værter, fordi de alle er på undernet 10.128.0.0/16. Bemærk, at den første kolonne består af de sidste to oktetter af dine servers private IP-adresser i omvendt rækkefølge. Sørg for at erstatte navne og private IP-adresser for at matche dine servere:

/etc/navngivne/områder/db.10.128-3 af 3

Gem og afslut den omvendte områdefil (gentag dette afsnit, hvis du har brug for at tilføje flere omvendte områdefiler).

vores sidste eksempel omvendt område fil ligner følgende:

/etc/navngivet/områder / db.10.128-komplet

kontroller BIND konfiguration syntaks

Kør følgende kommando for at kontrollere syntaksen fornamed.conf* filer:

  • sudo named-checkconf

Hvis dine navngivne konfigurationsfiler ikke har syntaksfejl, vender du tilbage til din shell-prompt og ser ingen fejlmeddelelser. Hvis der er problemer med dine konfigurationsfiler, skal du gennemgå fejlmeddelelsen og afsnittet Konfigurer primær DNS-Server og derefter prøve named-checkconf igen.

kommandoennamed-checkzone kan bruges til at kontrollere rigtigheden af dine områdefiler. Dets første argument angiver et områdenavn, og det andet argument angiver den tilsvarende områdefil, som begge er defineret i named.conf.local.

for eksempel for at kontrollere “nyc3.example.com” konfiguration af videresendingsområde, kør følgende kommando( skift navnene, så de passer til dit videresendingsområde og din fil):

  • sudo named-checkzone nyc3.example.com /etc/named/zones/db.nyc3.example.com

og for at kontrollere “128.10.in-addr.arpa” konfiguration af omvendt område, kør følgende kommando (skift numrene, så de matcher dit omvendte område og din fil):

  • sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128

når alle dine konfigurations-og områdefiler ikke har nogen fejl i dem, skal du være klar til at genstarte BIND-tjenesten.

Start BIND

start BIND:

  • sudo systemctl start named

nu vil du aktivere det, så det starter ved opstart:

  • sudo systemctl enable named

din primære DNS-server er nu konfigureret og klar til at svare på DNS-forespørgsler. Lad os gå videre til at oprette den sekundære DNS-server.

Konfigurer sekundær DNS-Server

i de fleste miljøer er det en god ide at oprette en sekundær DNS-server, der svarer på anmodninger, hvis den primære bliver utilgængelig. Heldigvis er den sekundære DNS-server meget lettere at konfigurere.

på ns2 skal du redigerenamed.conf fil:

  • sudo vi /etc/named.conf

Bemærk: Hvis du foretrækker at springe disse instruktioner over, kan du kopiere ns1 ‘ snamed.conf fil og ændre den for at lytte til ns2 ‘ s private IP-adresse og ikke tillade overførsler.

over den eksisterendeoptions blok, Opret en ny ACL-blok kaldet “trusted”. Det er her, vi definerer liste over klienter, som vi tillader rekursive DNS-forespørgsler fra (dvs.dine servere, der er i samme datacenter som ns1). Ved hjælp af vores eksempel private IP-adresser tilføjer vi ns1, ns2, host1 og host2 til vores liste over betroede klienter:

/etc/navngivet.conf – 1 af 4
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};

nu hvor vi har vores liste over betroede DNS-klienter, vil vi gerne redigere options block. Tilføj den private IP-adresse til ns1 til listen-on port 53direktivet, og kommenterlisten-on-v6 linje:

/etc / navngivet.conf – 2 af 4
options { listen-on port 53 { 127.0.0.1; 10.128.20.12; };# listen-on-v6 port 53 { ::1; };...

Skift allow-query direktiv fra “localhost” til “trusted”:

/etc/navngivet.conf – 3 af 4
...options {... allow-query { trusted; }; # allows queries from "trusted" clients...

i slutningen af filen skal du tilføje følgende linje:

/etc/navngivet.conf – 4 af 4
include "/etc/named/named.conf.local";

nu gemme og afslutte named.conf. Ovenstående konfiguration angiver, at kun dine egne servere (de “betroede”) kan forespørge på din DNS-server.

dernæst konfigurerer vi den lokale fil for at angive vores DNS-områder.

Gem og afslut named.conf.

Rediger nunamed.conf.local fil:

  • sudo chmod 755 /etc/named
  • sudo vi /etc/named/named.conf.local

Definer slavesoner, der svarer til masterområderne på den primære DNS-server. Bemærk, at typen er “slave”, filen indeholder ikke en sti, og der er et masters direktiv, som skal indstilles til den primære DNS-servers private IP. Hvis du har defineret flere omvendte områder i den primære DNS-server, skal du sørge for at tilføje dem alle her:

/etc/named/named.conf.lokal

nu gemme og afsluttenamed.conf.local.

Kør følgende kommando for at kontrollere gyldigheden af dine konfigurationsfiler:

  • sudo named-checkconf

når det tjekker ud, skal du starte BIND:

  • sudo systemctl start named

aktiver BIND for at starte ved opstart:

sudo systemctl enable named

nu har du primære og sekundære DNS-servere til private netværk navn og IP-adresse opløsning. Nu skal du konfigurere dine servere til at bruge dine private DNS-servere.

Konfigurer DNS-klienter

før alle dine servere i “trusted” ACL kan forespørge på dine DNS-servere, skal du konfigurere hver af dem til at bruge ns1 og ns2 som navneservere. Denne proces varierer afhængigt af OS, men for de fleste distributioner indebærer det at tilføje dine navneservere til /etc/resolv.conf filen.

CentOS Clients

på CentOS, RedHat og Fedora VPS skal du blot redigere resolv.conf fil:

  • sudo vi /etc/resolv.conf

tilføj derefter følgende linjer øverst i filen (erstat dit private domæne og ns1 og ns2 private IP-adresser):

/etc / resolv.conf
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address

nu gemme og afslutte. Din klient er nu konfigureret til at bruge dine DNS-servere.

Ubuntu-klienter

på Ubuntu og Debian-VPS kan du redigerehead – filen, som er forudindstillet til resolv.conf on boot:

  • sudo vi /etc/resolvconf/resolv.conf.d/head

tilføj følgende linjer til filen (erstat dit private domæne og ns1 og NS2 private IP-adresser):

/etc/resolvconf / resolv.conf.d/head
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address

Kør nu resolvconf for at generere en ny resolv.conf fil:

  • sudo resolvconf -u

din klient er nu konfigureret til at bruge din DNS servere.

Testklienter

brugnslookup—inkluderet i pakken “bind-utils”—for at teste, om dine klienter kan forespørge på dine navneservere. Du bør være i stand til at gøre dette på alle de klienter, du har konfigureret og er i “trusted” ACL.

fremad opslag

for eksempel kan vi udføre et fremad opslag for at hente IP-adressen til host1.nyc3.example.com ved at køre følgende kommando:

  • nslookup host1

forespørgsel “host1” udvides til “host1.nyc3.example.com på grund af search Er indstillingen indstillet til dit private underdomæne, og DNS-forespørgsler vil forsøge at se på det underdomæne, før de leder efter værten andetsteds. Udgangen af kommandoen ovenfor ville se ud som følgende:

Output:
Server: 10.128.10.11Address: 10.128.10.11#53Name: host1.nyc3.example.comAddress: 10.128.100.101

Reverse Lookup

for at teste reverse lookup, spørg DNS-serveren med host1s private IP-adresse:

  • nslookup 10.128.100.101

Du skal se output, der ligner følgende:

Output:
Server: 10.128.10.11Address: 10.128.10.11#5311.10.128.10.in-addr.arpa name = host1.nyc3.example.com.

Hvis alle navne og IP-adresser løser de korrekte værdier, betyder det, at dine områdefiler er konfigureret korrekt. Hvis du modtager uventede værdier, skal du sørge for at gennemgå områdefilerne på din primære DNS-server (f. eks. db.nyc3.example.comog db.10.128).

Tillykke! Dine interne DNS-servere er nu konfigureret korrekt! Nu vil vi dække vedligeholdelse af dine områdeoptegnelser.

vedligeholdelse af DNS-poster

nu hvor du har en fungerende intern DNS, skal du vedligeholde dine DNS-poster, så de nøjagtigt afspejler dit servermiljø.

tilføjelse af vært til DNS

Når du føjer en vært til dit miljø (i samme datacenter), vil du føje den til DNS. Her er en liste over trin, du skal tage:

primær navneserver

  • Videresend områdefil: Tilføj en “A” – post for den nye vært, øg værdien af “Serial”
  • omvendt områdefil: Tilføj en “PTR” – post for den nye vært, øg værdien af “Serial”
  • Tilføj din nye værts private IP-adresse til “trusted” ACL (named.conf.options)

genindlæs derefter bind:

  • sudo systemctl reload named

sekundær navneserver

  • Tilføj din nye værts Private IP-adresse til “trusted” ACL (named.conf.options)

derefter genindlæs bind:

  • sudo systemctl reload named

Konfigurer ny vært til at bruge din DNS

  • Konfigurer resolv.conf for at bruge dine DNS-servere
  • Test ved hjælp af nslookup

fjernelse af vært fra DNS

Hvis du fjerner en vært fra dit miljø eller bare vil tage den ud af DNS, skal du bare fjerne alle de ting, der blev tilføjet, da du tilføjede serveren til DNS (dvs.bagsiden af ovenstående trin).

konklusion

nu Kan du henvise til dine servers private netværksgrænseflader efter navn snarere end efter IP-adresse. Dette gør konfiguration af tjenester og applikationer lettere, fordi du ikke længere behøver at huske de private IP-adresser, og filerne bliver lettere at læse og forstå. Nu Kan du også ændre dine konfigurationer for at pege på en ny server et enkelt sted, din primære DNS-server, i stedet for at skulle redigere en række distribuerede konfigurationsfiler, hvilket letter vedligeholdelse.

når du har konfigureret din interne DNS, og dine konfigurationsfiler bruger private Fkdn ‘ er til at specificere netværksforbindelser, er det vigtigt, at dine DNS-servere vedligeholdes korrekt. Hvis de begge bliver utilgængelige, ophører dine tjenester og applikationer, der er afhængige af dem, med at fungere korrekt. Derfor anbefales det at konfigurere din DNS med mindst en sekundær server og opretholde fungerende sikkerhedskopier af dem alle.

Related Posts

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *