Hvordan sette opp en DNS -server med binding ved hjelp av Linux -servere

DNS servere (domenenavnsystem) lar oss nå en bestemt IP -adresse fra et domenenavn, på denne måten kan vi få tilgang til forskjellige nettsteder ved å sette domenenavnet ditt direkte i adressefeltet i nettleseren. Vi har også muligheten til å sette opp en DNS -server i det hjemlige eller profesjonelle lokale nettverket, for å nå de forskjellige datamaskinene på det lokale nettverket gjennom et bestemt domenenavn, uten alltid å måtte huske de private IP -adressene. I dag i denne artikkelen skal vi vise deg hvordan vi kan konfigurere en DNS -server på en Linux server som bruker Bind9, den mest populære og brukte DNS -serveren.

Sett opp en DNS -server med bind ved hjelp av Linux -servere

Hva er Bind?

Bind, eller også kjent som Berkeley Internet Name Domain, er en programvare som er ansvarlig for å utføre oppgaven til DNS -serveren. Bind er for tiden en standard, og det er mye brukt i Linux -operativsystemer og også i Unix, derfor, hvis du har en server basert på Linux eller Unix, og du trenger en DNS -server for å håndtere spørsmål fra det lokale nettverket, er Bind hva du må bruke. Den nåværende versjonen av Bind er Bind9 -versjonen, og den er den som vanligvis brukes på alle servere, tidligere versjoner anses som usikre og "avskrevne", så det anbefales ikke å bruke dem.

Bind erstatter ikke DNS -servere som de vi kan bruke fra Google (8.8.8.8), Cloudflare (1.1.1.1) eller andre, men utfyller dem heller. Klientene i det lokale nettverket vil ha Bind -serveren som vi konfigurerer i en Linux -server som DNS -server, senere i denne bindingen vil vi kunne konfigurere forskjellige regler for å nå lokale datamaskiner via sine private IP -adresser. Hvis en klient på det lokale nettverket sender en DNS -forespørsel til et Internett -nettsted, vil logisk sett ikke DNS -serveren ha alle Internett -IP -adressene i databasen, i dette tilfellet er offentlige DNS -servere konfigurert til å håndtere disse forespørslene, ved å videresende server med Bind forespørselen, og vi vil automatisk returnere den til klienten som sendte forespørselen.

DNS fra Windows

Versjonen som for tiden brukes er Bind 9, den ble skrevet fra bunnen av for å unngå problemer med tidligere versjoner, i tillegg inneholder den svært viktige funksjoner som DNSSEC for å gi sikkerhet til domener ved hjelp av kryptografi, den inkluderer også forbedringer i parallell behandling av forskjellige DNS -forespørsler, full støtte for IPv6 -nettverk og mye mer. Selvfølgelig har denne siste versjonen av Bind svært viktige sikkerhetsforbedringer, på denne måten vil vi bli beskyttet mot mulige angrep som kan forekomme i tidligere versjoner.

Forutsetninger før du installerer Bind

Før du begynner med konfigurasjonen av DNS -serveren med Bind9 i operativsystemet vårt, er det tilrådelig å sette en fast IP på serveren vår, ellers hvis DHCP -serveren endrer IP -adressen vår, mister klientene i det lokale nettverket tilgangen til vår server -DNS fordi de ikke vil "peke" på vår private IP -adresse. For å sette en fast IP har vi to muligheter:

  • Konfigurer statisk DHCP i ruteren / brannmuren vi har, og legg inn MAC -adressen til nettverkskortet og IP -adressen som vi vil at den alltid skal få.
  • Konfigurer vår Linux -server statisk, i dette tilfellet bør DHCP -serveren til ruteren / brannmuren ha et DHCP -område som ligger utenfor vår private IP -adresse som vi angir.

For å konfigurere en IP -adresse statisk i Linux må vi redigere konfigurasjonsfilen " / etc / network / interfaces" og sette følgende:

auto lo
iface lo inet loopback

bil ens33
iface eth0 inet statisk
adresse 192.168.1.2
nettmaske 255.255.255.0
192.168.1.1 gateway
dns-navneservere 192.168.1.2

Deretter må vi starte tjenesten på nytt for å bruke endringene riktig (hvis vi har endret IP -en vi har for øyeblikket):

sudo service networking restart

Når vår IP -adresse til det lokale nettverket er løst, kan vi installere Bind.

Bind installasjon på Linux og oppstart

Det første vi må gjøre for å konfigurere en DNS -server (bind) i Linux er å installere den fra depotene, vi skal installere både Bind9 DNS -serveren så vel som pakkene som foreslås av Debian -operativsystemet, derfor vi må sette den i konsollen den neste:

sudo apt install bind9 bind9-doc resolvconf python-ply-doc

Når vi har installert alle de tidligere pakkene, må vi gå til programkatalogen, og der må vi begynne å konfigurere de nødvendige filene:

cd /etc/bind/

Det anbefales å få tilgang til denne katalogen som root (sudo su) for å unngå at tillatelsesproblemer nektes når du kopierer filer eller endrer eksisterende. Hvis vi gjør en “ls -l” for å vise alle filene vi har her, vil vi se følgende:

Som du kan se, har vi et stort antall forskjellige konfigurasjonsfiler, hver av dem er spesielt orientert til en oppgave, i den offisielle Bind9 -dokumentasjonen kan du finne hva hver av dem er til. La oss anta at du alltid er i superbrukermodus (root) for å redigere eller kopiere filer uten begrensninger.

Konfigurer Bind speditører ved hjelp av offentlige DNS -servere

Det første vi skal gjøre er å konfigurere videresending av DNS -servere, det vil si offentlige DNS -servere for å videresende forespørsler til Internett. Konfigurasjonsfilen som er ansvarlig for denne oppgaven er “named.conf.options”, det første vi gjør er å ta en sikkerhetskopi av filen, hvis vi redigerer den feil og alt slutter å fungere:

cp /etc/bind/named.conf.options /etc/bind/named.conf.options.copia

Nå redigerer vi filen og legger til DNS -servere i speditørdelen, som du kan se her:

forwarders {
8.8.8.8;
1.1.1.1;
};

Det ville være som følger:

Når vi har endret det, starter vi på nytt Bind9 -tjenesten for å bekrefte at alt fungerer som det skal og ikke gir noen feil:

sudo service bind9 restart

Nå skal vi sjekke om de fungerer som de skal. For å gjøre dette, utfører vi en nslookup -kommando, og vi bør se at DNS -serveren vår har løst et domene riktig, i vårt tilfelle er serverens IP -adresse 192.168.231.130:

Når vi har konfigurert Bind for å videresende oppløsningene til Internett -nettsteder til den offentlige DNS, skal vi se hvordan vi konfigurerer det til å løse interne domener.

Konfigurer Bind for lokale oppløsninger

Konfigurasjonsfilen som vi må konfigurere nå, heter .conf.local, det er lurt å ta en sikkerhetskopi i tilfelle noe går galt når du konfigurerer den, for dette utfører vi:

cp /etc/bind/named.conf.local /etc/bind/named.conf.local.copia

Når vi har gjort sikkerhetskopien, må vi redigere den konfigurerte filen named.conf.local for å fortsette konfigurasjonen. I denne konfigurasjonsfilen må vi sette sonen vi refererer til, og også bindingskonfigurasjonsfilen som har alle konfigurasjonene, derfor kan vi la den være slik:

zone "redlocal.com" {
type master;
file "/etc/bind/db.redlocal";
};

Det er viktig at "filen" refererer til konfigurasjonsfilen som vi importerer og at vi skal konfigurere akkurat nå.

Nå må vi kopiere databasen som vi har i "db.local" gi den navnet " db.redlocal "Som vi har definert i den forrige filen.

cp /etc/bind/db.local /etc/bind/db.redlocal

Nå redigerer vi denne konfigurasjonsfilen som kommer som standard med mye informasjon, og vi tilpasser den til våre interesser.

Det første vi må gjøre er å endre SOA som kommer i den øvre delen av domenenavnet vi har valgt lokalt, i dette tilfellet ville det være “red.redlocal.com”, så redigerer vi den generelle konfigurasjonsfilen med domenene og underdomenene vi ønsker. Konfigurasjonsfilen vår vil være som følger:

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.redlocal.com. root.red.redlocal.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;

@ IN NS ns1.redlocal.com.
@ IN A 192.168.231.130
ns1 I A 192.168.231.130
ruter IN A 10.11.1.1
pc1 I A 10.11.1.2

Når vi har lagret konfigurasjonsfilen, sjekker vi syntaksen med følgende kommando:

named-checkzone redlocal.com /etc/bind/db.redlocal

Nå starter vi bindingsprosessen på nytt med følgende kommando:

sudo service bind9 restart

Vi har alt klart til å starte testbatteriet og sjekke at vi har gjort alt riktig. For å kontrollere at alt fungerer bra, må vi utføre følgende kommandoer:

host router.redlocal.com

Det vil vise oss følgende, IP -adressen til ruteren:

root@bron-debian:/etc/bind# host router.redlocal.com
router.redlocal.com has address 10.11.1.1

Vi kan også gjøre det samme med PC1:

host pc1.redlocal.com

Vi får se dette:

root@bron-debian:/etc/bind# host pc1.redlocal.com
pc1.redlocal.com has address 10.11.1.2

Når vi har klart å løse de lokale domenene riktig og returnere den tilsvarende IP -adressen, kan vi pinge uten problemer via domenet:

root@bron-debian:/etc/bind# ping router.redlocal.com
PING router.redlocal.com (10.11.1.1) 56(84) bytes of data.
64 bytes from 10.11.1.1 (10.11.1.1): icmp_seq=1 ttl=128 time=0.413 ms
64 bytes from 10.11.1.1 (10.11.1.1): icmp_seq=2 ttl=128 time=0.401 ms
^C
--- router.redlocal.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 28ms
rtt min/avg/max/mdev = 0.401/0.407/0.413/0.006 ms

Nå skal vi konfigurere omvendt oppløsning av domener.

Omvendt domeneoppløsning

Nå skal vi konfigurere DNS -serveren til å løse domener i revers, sette IP -adressen og fortelle oss hvilket domene IP -adressen tilhører. For å nå målet vårt, vi må legge til følgende linjer til filen /etc/bind/named.conf.local som vi brukte tidligere:

zone "192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};

Vi må også kopiere standard konfigurasjonsfil for å redigere den. Fra db.127 -filen lager vi db.192:

cp /etc/bind/db.127 /etc/bind/db.192

Når vi har opprettet den, kan du bare redigere den med følgende informasjon:

;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.redlocal.com. root.red.redlocal.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.redlocal.com.
ns1 IN A 192.168.231.130
130.231.168 IN PTR redlocal.com

Når vi har lagret konfigurasjonsfilen, sjekker vi syntaksen med følgende kommando:

named-checkzone 192.168.231.130 /etc/bind/db.192

Vi bør få noe slikt:

named-checkzone 168.192.in-addr.arpa db.192
zone 168.192.in-addr.arpa/IN: loaded serial 1
OK

Nå starter vi bindingsprosessen på nytt med følgende kommando:

sudo service bind9 restart

Og vi sjekker at det har fungert riktig:

host 192.168.231.130

Vi håper denne komplette Bind -opplæringen har hjulpet deg med å sette opp din egen DNS -server lokalt.