Så här konfigurerar du en DNS -server med bindning med Linux -servrar

DNS servrar (Domain Name System) tillåter oss att nå en specifik IP -adress från ett domännamn, på så sätt kan vi komma åt olika webbplatser genom att placera ditt domännamn direkt i adressfältet i webbläsaren. Vi har också möjlighet att skapa en DNS -server i det lokala eller professionella lokala nätverket för att nå de olika datorerna i det lokala nätverket genom ett specifikt domännamn, utan att alltid behöva komma ihåg de privata IP -adresserna. Idag i den här artikeln kommer vi att visa dig hur vi kan konfigurera en DNS -server på en Linux server som använder Bind9, den mest populära och använda DNS -servern.

Skapa en DNS -server med bindning med Linux -servrar

Vad är Bind?

Bind, eller även känt som Berkeley Internet Name Domain, är en programvara som ansvarar för att utföra uppgiften som DNS -server. Bind är för närvarande en standard, och det används i stor utsträckning i Linux -operativsystem och även i Unix, därför, om du har en server baserad på Linux eller Unix och du behöver en DNS -server för att hantera frågor från det lokala nätverket, då är Bind vad du måste använda. Den nuvarande versionen av Bind är Bind9 -versionen, och den är den som vanligtvis används på alla servrar, tidigare versioner anses vara osäkra och "utfasade", så det rekommenderas inte att använda dem.

Bind ersätter inte DNS -servrar som de vi kan använda från Google (8.8.8.8), Cloudflare (1.1.1.1) eller andra, utan kompletterar dem snarare. Klienterna i det lokala nätverket kommer som DNS -server att ha Bind -servern som vi konfigurerar i en Linux -server, senare i denna bindning kommer vi att kunna konfigurera olika regler för att nå lokala datorer via sina privata IP -adresser. Om en klient på det lokala nätverket gör en DNS -begäran till en webbplats på Internet, kommer logiskt att DNS -servern inte har alla Internet -IP -adresser i sin databas, i det här fallet är offentliga DNS -servrar konfigurerade för att hantera dessa förfrågningar genom att vidarebefordra server med Bind begäran och vi kommer automatiskt att returnera den till klienten som gjorde begäran.

DNS för Windows

Den version som för närvarande används är Bind 9, den skrevs från grunden för att undvika problem med tidigare versioner, dessutom innehåller den mycket viktiga funktioner som DNSSEC för att tillhandahålla säkerhet till domäner som använder kryptografi, den innehåller också förbättringar i parallellbehandling av olika DNS -frågor, fullständigt stöd för IPv6 -nätverk och mycket mer. Naturligtvis har den senaste versionen av Bind mycket viktiga säkerhetsförbättringar, på så sätt skyddas vi mot eventuella attacker som kan inträffa i tidigare versioner.

Förutsättningar innan du installerar Bind

Innan du börjar med konfigurationen av DNS -servern med Bind9 i vårt operativsystem, är det lämpligt att sätta en fast IP -adress på vår server, annars om DHCP -servern ändrar vår IP -adress förlorar klienterna i det lokala nätverket åtkomst till vår serverns DNS eftersom de inte kommer att "peka" på vår privata IP -adress. För att sätta en fast IP har vi två möjligheter:

  • Konfigurera den statiska DHCP i routern / brandväggen som vi har, sätt vår MAC -adress för nätverkskortet och IP -adressen som vi vill att den alltid ska få.
  • Konfigurera vår Linux -server statiskt, i det här fallet bör DHCP -servern på routern / brandväggen ha ett DHCP -område som ligger utanför vår privata IP -adress som vi ställer in.

För att statiskt konfigurera en IP -adress i Linux måste vi redigera konfigurationsfilen " / etc / network / interfaces" och sätta följande:

auto lo
iface lo inet loopback

bil ens33
iface et0 inet statisk
adress 192.168.1.2
nätmask 255.255.255.0
Gateway 192.168.1.1
dns-nameservers 192.168.1.2

Därefter måste vi starta om tjänsten för att tillämpa ändringarna korrekt (om vi har ändrat den IP vi har för närvarande):

sudo service networking restart

När vår lokala IP -adress är fixad kan vi installera Bind.

Bind installation på Linux och start

Det första vi måste göra för att konfigurera en DNS -server (bindning) i Linux är att installera den från lagren, vi kommer att installera både Bind9 DNS -servern och paketen som föreslås av Debian -operativsystemet, därför vi måste lägga den i konsolen nästa:

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

När vi har installerat alla tidigare paket måste vi gå till programkatalogen, där måste vi börja konfigurera de nödvändiga filerna:

cd /etc/bind/

Det är tillrådligt att komma åt den här katalogen som root (sudo su) för att undvika att behörighetsproblem nekas när du kopierar filer eller ändrar befintliga. Om vi ​​gör en "ls -l" för att lista alla filer vi har här kommer vi att se följande:

Som du kan se har vi ett stort antal olika konfigurationsfiler, var och en av dem är specifikt inriktade på en uppgift, i den officiella Bind9 -dokumentationen kan du hitta vad var och en av dem är till för. Låt oss anta att du alltid är i superanvändarläge (root) för att redigera eller kopiera filer utan begränsningar.

Konfigurera bindningsförmedlare med hjälp av offentliga DNS -servrar

Det första vi ska göra är att konfigurera vidarebefordra DNS -servrar, det vill säga offentliga DNS -servrar för att vidarebefordra frågor till Internet. Konfigurationsfilen som är ansvarig för denna uppgift är "named.conf.options", det första vi gör är att göra en säkerhetskopia av filen, om vi redigerar den fel och allt slutar fungera:

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

Nu redigerar vi filen och lägger till DNS -servrarna i speditörsavsnittet, som du kan se här:

forwarders {
8.8.8.8;
1.1.1.1;
};

Det skulle vara följande:

När vi har ändrat det startar vi om Bind9 -tjänsten för att verifiera att allt fungerar korrekt och inte ger något fel:

sudo service bind9 restart

Nu ska vi kontrollera om de fungerar korrekt, för att göra detta kör vi ett nslookup -kommando, och vi bör se att vår DNS -server har löst en domän korrekt, i vårt fall är serverns IP -adress 192.168.231.130:

När vi har konfigurerat Bind för att vidarebefordra upplösningar på internetwebbplatser till den offentliga DNS: n kommer vi att se hur vi konfigurerar det för att lösa interna domäner.

Konfigurera Bind för lokala upplösningar

Konfigurationsfilen som vi måste konfigurera nu heter .conf.local, det är lämpligt att göra en säkerhetskopia om något skulle gå fel när vi konfigurerade det, för detta kör vi:

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

När vi har gjort säkerhetskopian måste vi redigera den konfigurerade filen named.conf.local för att fortsätta med konfigurationen. I den här konfigurationsfilen måste vi ange zonen som vi hänvisar till, och även bindningskonfigurationsfilen som har alla konfigurationer, därför kan vi lämna den så här:

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

Det är viktigt att "filen" hänvisar till konfigurationsfilen som vi importerar och som vi ska konfigurera just nu.

Nu måste vi kopiera databasen som vi har i "db.local" ge den namnet " db.redlocal ”Som vi har definierat i föregående fil.

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

Nu redigerar vi den här konfigurationsfilen som kommer som standard med mycket information och vi anpassar den till våra intressen.

Det första vi måste göra är att ändra SOA som kommer i den övre delen med det domännamn som vi har valt lokalt, i det här fallet skulle det vara “red.redlocal.com”, sedan redigerar vi den allmänna konfigurationsfilen med de domäner och underdomäner som vi vill ha. Vår konfigurationsfil skulle vara följande:

;
; 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 EN 192.168.231.130
ns1 IN A 192.168.231.130
router IN A 10.11.1.1
pc1 IN A 10.11.1.2

När vi har sparat konfigurationsfilen kontrollerar vi syntaxen med följande kommando:

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

Nu startar vi om bindningsprocessen med följande kommando:

sudo service bind9 restart

Vi har allt klart för att starta batteriet av tester och kontrollera att vi har gjort allt rätt. För att kontrollera att allt fungerar bra måste vi utföra följande kommandon:

host router.redlocal.com

Det visar oss följande, routerns IP -adress:

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

Vi kan också göra samma sak med PC1:

host pc1.redlocal.com

Vi kommer att se detta:

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

När vi har lyckats lösa de lokala domänerna korrekt och returnera motsvarande IP -adress kan vi pinga utan problem via domän:

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 ska vi konfigurera omvänd upplösning för domäner.

Omvänd domänupplösning

Nu ska vi konfigurera DNS -servern för att lösa domäner i omvänd ordning, sätta IP -adressen och berätta vilken domän som IP -adressen tillhör. För att uppnå vårt mål, vi måste lägga till följande rader till filen /etc/bind/named.conf.local som vi använde tidigare:

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

Vi måste också kopiera standardkonfigurationsfilen för att redigera den. Från db.127 -filen skapar vi db.192:

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

När vi har skapat det kan du bara redigera det med följande information:

;
; 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 sparat konfigurationsfilen kontrollerar vi syntaxen med följande kommando:

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

Vi borde få något så här:

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

Nu startar vi om bindningsprocessen med följande kommando:

sudo service bind9 restart

Och vi kontrollerar att det har fungerat korrekt:

host 192.168.231.130

Vi hoppas att denna kompletta Bind -handledning har hjälpt dig att konfigurera din egen DNS -server lokalt.