Sådan opsættes en DNS -server med binding ved hjælp af Linux -servere

DNS servere (Domain Name System) giver os mulighed for at nå en bestemt IP -adresse fra et domænenavn, på denne måde kan vi få adgang til forskellige websteder ved at sætte dit domænenavn direkte i webbrowserens adresselinje. Vi har også mulighed for at oprette en DNS -server i hjemmet eller det professionelle lokale netværk for at nå de forskellige computere på det lokale netværk via et specifikt domænenavn uden altid at skulle huske de private IP -adresser. I dag i denne artikel vil vi vise dig, hvordan vi kan konfigurere en DNS -server på en Linux server ved hjælp af Bind9, den mest populære og brugte DNS -server.

Opret en DNS -server med bind ved hjælp af Linux -servere

Hvad er Bind?

Bind, eller også kendt som Berkeley Internet Name Domain, er en software, der er ansvarlig for at udføre opgaven som DNS -server. Bind er i øjeblikket en standard, og det bruges meget i Linux -operativsystemer og også i Unix, derfor, hvis du har en server baseret på Linux eller Unix, og du har brug for en DNS -server til at håndtere forespørgslerne fra det lokale netværk, så er Bind hvad du skal bruge. Den nuværende version af Bind er Bind9 -versionen, og det er den, der almindeligvis bruges på alle servere, tidligere versioner betragtes som usikre og "forældede", så det anbefales ikke at bruge dem.

Bind erstatter ikke DNS -servere som dem, vi kan bruge fra Google (8.8.8.8), Cloudflare (1.1.1.1) eller andre, men supplerer dem snarere. Klienterne på det lokale netværk vil som DNS -server have Bind -serveren, som vi konfigurerer på en Linux -server, senere i denne bindning vil vi kunne konfigurere forskellige regler for at nå lokale computere via deres private IP -adresser. Hvis en klient på det lokale netværk foretager en DNS -anmodning til et internetwebsted, vil DNS -serveren logisk ikke have alle internet -IP -adresserne i sin database, i dette tilfælde er offentlige DNS -servere konfigureret til at håndtere disse anmodninger ved at videresende server med Bind anmodningen, og vi returnerer den automatisk til den klient, der har fremsat anmodningen.

DNS fra Windows

Den version, der i øjeblikket bruges, er Bind 9, den blev skrevet fra bunden for at undgå problemer med tidligere versioner, derudover indeholder den meget vigtige funktioner som DNSSEC for at give domæner sikkerhed ved hjælp af kryptografi, den indeholder også forbedringer i parallelbehandling af forskellige DNS -forespørgsler, fuld support til IPv6 -netværk og meget mere. Denne seneste version af Bind har naturligvis meget vigtige sikkerhedsforbedringer, på denne måde vil vi blive beskyttet mod mulige angreb, der kan forekomme i tidligere versioner.

Forudsætninger før installation af Bind

Inden du starter med konfigurationen af ​​DNS -serveren med Bind9 i vores operativsystem, er det tilrådeligt at lægge en fast IP på vores server, ellers hvis DHCP -serveren ændrer vores IP -adresse, mister klienterne på det lokale netværk adgang til vores server -DNS, fordi de ikke vil "pege" på vores private IP -adresse. For at sætte en fast IP har vi to muligheder:

  • Konfigurer den statiske DHCP i den router / firewall, vi har, ved at sætte vores MAC -adresse på netværkskortet og den IP -adresse, vi altid vil have.
  • Konfigurer vores Linux -server statisk, i dette tilfælde skal routerens / firewallens DHCP -server have et DHCP -område, der ligger uden for vores private IP -adresse, som vi har angivet.

For at konfigurere en IP -adresse i Linux statisk skal vi redigere konfigurationsfilen " / etc / network / interfaces" og sætte følgende:

auto lo
iface lo inet loopback

bil ens33
iface eth0 inet statisk
adresse 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.2

Dernæst skal vi genstarte tjenesten for at anvende ændringerne korrekt (hvis vi har ændret den IP, vi har i øjeblikket):

sudo service networking restart

Når vores lokale IP -adresse er rettet, kan vi installere Bind.

Bind installation på Linux og opstart

Den første ting, vi skal gøre for at konfigurere en DNS -server (bind) i Linux, er at installere den fra lagrene, vi skal installere både Bind9 DNS -serveren samt de pakker, der foreslås af Debian -operativsystemet, derfor vi skal lægge det i konsollen den næste:

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

Når vi har installeret alle de tidligere pakker, skal vi gå til programmappen, hvor vi skal begynde at konfigurere de nødvendige filer:

cd /etc/bind/

Det tilrådes at få adgang til dette bibliotek som root (sudo su) for at undgå at få tilladelser problemer nægtet ved kopiering af filer eller ændringer af eksisterende. Hvis vi laver en “ls -l” for at liste alle de filer, vi har her, vil vi se følgende:

Som du kan se, har vi et stort antal forskellige konfigurationsfiler, hver af dem er specifikt orienteret til en opgave, i den officielle Bind9 -dokumentation kan du finde, hvad hver af dem er til. Lad os antage fra nu af, at du altid er i superbruger -tilstand (root) for at redigere eller kopiere filer uden begrænsninger.

Konfigurer Bind -speditører ved hjælp af offentlige DNS -servere

Den første ting, vi skal gøre, er at konfigurere videresendelse af DNS -servere, det vil sige offentlige DNS -servere til at videresende forespørgsler til Internettet. Konfigurationsfilen, der er ansvarlig for denne opgave, er "named.conf.options", den første ting vi gør, er at lave en sikkerhedskopi af filen, hvis vi redigerer den forkert, og alt holder op med at fungere:

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

Nu redigerer vi filen og tilføjer DNS -servere i afsnittet videresendere, 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 ændret det, genstarter vi Bind9 -tjenesten for at kontrollere, at alt fungerer korrekt og ikke returnerer nogen fejl:

sudo service bind9 restart

Nu skal vi kontrollere, om de fungerer korrekt, for at gøre dette udfører vi en nslookup -kommando, og vi bør se, at vores DNS -server har løst et domæne korrekt, i vores tilfælde er serverens IP -adresse 192.168.231.130:

Når vi har konfigureret Bind til at videresende opløsninger på internetwebsteder til den offentlige DNS, skal vi se, hvordan vi konfigurerer det til at løse interne domæner.

Konfigurer Bind til lokale opløsninger

Den konfigurationsfil, som vi skal konfigurere nu, hedder.conf.local, det er tilrådeligt at lave en sikkerhedskopi, hvis noget går galt, når det konfigureres, for dette udfører vi:

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

Når vi har taget backup, bliver vi nødt til at redigere den named.conf.local konfigurationsfil for at fortsætte med konfigurationen. I denne konfigurationsfil bliver vi nødt til at sætte den zone, vi henviser til, og også bind -konfigurationsfilen, der har alle konfigurationerne, derfor kunne vi forlade den sådan:

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

Det er vigtigt, at "filen" refererer til den konfigurationsfil, som vi importerer, og at vi skal konfigurere lige nu.

Nu skal vi kopiere den database, som vi har i "db.local", give den navnet " db.redlocal ”, Som vi har defineret i den forrige fil.

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

Nu redigerer vi denne konfigurationsfil, der som standard kommer med mange oplysninger, og vi tilpasser den til vores interesser.

Den første ting, vi skal gøre, er at ændre SOA'en, der kommer i den øverste del af det domænenavn, som vi har valgt lokalt, i dette tilfælde ville det være "red.redlocal.com", så redigerer vi den generelle konfigurationsfil med de domæner og underdomæner, vi ønsker. Vores konfigurationsfil ville 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
router IN A 10.11.1.1
pc1 I A 10.11.1.2

Når vi har gemt konfigurationsfilen, kontrollerer vi syntaksen med følgende kommando:

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

Nu genstarter vi bindingsprocessen med følgende kommando:

sudo service bind9 restart

Vi har alt klar til at starte batteriet af test og kontrollere, at vi har gjort alt rigtigt. For at kontrollere, at alt fungerer godt, skal vi udføre følgende kommandoer:

host router.redlocal.com

Det viser os følgende, routerens IP -adresse:

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

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

host pc1.redlocal.com

Vi vil se dette:

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

Når det er lykkedes os at løse de lokale domæner korrekt og returnere den tilsvarende IP -adresse, kan vi pinge uden problemer via domæne:

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

Nu skal vi konfigurere den omvendte opløsning af domæner.

Omvendt domæneopløsning

Nu skal vi konfigurere DNS -serveren til at løse domæner i omvendt, sætte IP -adressen og fortælle os, hvilket domæne den IP -adresse tilhører. For at nå vores mål, vi skal tilføje følgende linjer til filen /etc/bind/named.conf.local, som vi tidligere har brugt:

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

Vi skal også kopiere standardkonfigurationsfilen for at redigere den. Fra db.127 -filen opretter vi db.192:

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

Når vi har oprettet det, skal du bare redigere det med følgende oplysninger:

;
; 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 gemt konfigurationsfilen, kontrollerer vi syntaksen med følgende kommando:

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

Vi burde få noget i stil med dette:

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

Nu genstarter vi bindingsprocessen med følgende kommando:

sudo service bind9 restart

Og vi kontrollerer, at det har fungeret korrekt:

host 192.168.231.130

Vi håber, at denne komplette Bind -vejledning har hjulpet dig med at oprette din egen DNS -server lokalt.