Cum se configurează un server DNS cu Bind folosind servere Linux

DNS serverele (Domain Name System) ne permit să ajungem la o anumită adresă IP dintr-un nume de domeniu, în acest fel, putem accesa diferite site-uri web plasând numele dvs. de domeniu direct în bara de adrese a browserului web. De asemenea, avem posibilitatea de a configura un server DNS în rețeaua locală sau profesională, pentru a ajunge la diferitele computere din rețeaua locală printr-un anumit nume de domeniu, fără a fi nevoie să ne amintim întotdeauna de adresele IP private. Astăzi, în acest articol, vă vom arăta cum putem configura un server DNS pe un Linux server folosind Bind9, cel mai popular și utilizat server DNS.

Configurați un server DNS cu Bind folosind servere Linux

Ce este Bind?

Bind, sau cunoscut și sub numele de Berkeley Internet Name Domain, este un software responsabil pentru îndeplinirea sarcinii serverului DNS. Bind este în prezent un standard și este utilizat pe scară largă în sistemele de operare Linux și, de asemenea, în Unix, prin urmare, dacă aveți un server bazat pe Linux sau Unix și aveți nevoie de un server DNS pentru a gestiona interogările din rețeaua locală, atunci Bind este ce trebuie să folosești. Versiunea curentă a Bind este versiunea Bind9 și este cea utilizată în mod obișnuit pe toate serverele, versiunile anterioare sunt considerate nesigure și „depreciate”, deci nu este recomandat să le utilizați.

Bind nu înlocuiește serverele DNS precum cele pe care le putem folosi de la Google (8.8.8.8), Cloudflare (1.1.1.1) sau altele, ci le completează mai degrabă. Clienții rețelei locale vor avea ca server DNS serverul Bind pe care îl configurăm într-un server Linux, ulterior, în acest Bind vom putea configura diferite reguli pentru a ajunge la computerele locale prin adresele lor IP private. Dacă un client din rețeaua locală face o cerere DNS către un site internet, în mod logic serverul DNS nu va avea toate adresele IP Internet în baza sa de date, în acest caz, serverele DNS publice sunt configurate pentru a face față acestor solicitări, prin redirecționarea server cu Bind cererea și o vom returna automat clientului care a făcut solicitarea.

DNS de Windows

Versiunea care este utilizată în prezent este Bind 9, a fost scrisă de la zero pentru a evita problemele versiunilor anterioare, în plus, include caracteristici foarte importante precum DNSSEC pentru a oferi securitate domeniilor folosind criptografie, include și îmbunătățiri în procesarea paralelă a diferitelor Interogări DNS, suport complet pentru rețelele IPv6 și multe altele. Desigur, această ultimă versiune de Bind are îmbunătățiri de securitate foarte importante, astfel vom fi protejați împotriva posibilelor atacuri care ar putea apărea în versiunile anterioare.

Condiții preliminare înainte de instalarea Bind

Înainte de a începe cu configurarea serverului DNS cu Bind9 în sistemul nostru de operare, este recomandabil să introduceți un IP fix pe serverul nostru, în caz contrar, dacă serverul DHCP ne schimbă adresa IP, clienții rețelei locale vor pierde accesul la server DNS deoarece nu vor „indica” adresa noastră privată IP. Pentru a pune un IP fix avem două posibilități:

  • Configurați DHCP static în router / firewall pe care îl avem, punând adresa noastră MAC a plăcii de rețea și adresa IP pe care dorim să o obțină întotdeauna.
  • Configurați static serverul nostru Linux, în acest caz, serverul DHCP al routerului / firewallului ar trebui să aibă un interval DHCP care se află în afara adresei noastre IP private pe care am setat-o.

Pentru a configura static o adresă IP în Linux, trebuie să edităm fișierul de configurare „/ etc / network / interfaces” și să punem următoarele:

auto lo
iface lo inet loopback

auto ens33
iface eth0 inet static
adresa 192.168.1.2
mască de rețea 255.255.255.0
poarta de acces 192.168.1.1
servere de nume dns 192.168.1.2

Apoi, trebuie să repornim serviciul pentru a aplica corect modificările (dacă am schimbat adresa IP pe care o avem în prezent):

sudo service networking restart

Odată ce adresa noastră IP a rețelei locale este fixă, putem instala Bind.

Legați instalarea pe Linux și pornire

Primul lucru pe care trebuie să-l facem pentru a configura un server DNS (bind) în Linux este să îl instalăm din depozite, vom instala atât serverul DNS Bind9, cât și pachetele sugerate de sistemul de operare Debian, prin urmare, vom trebuie să-l pui în consolă următorul:

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

Odată ce am instalat toate pachetele anterioare, trebuie să mergem în directorul de programe, unde va trebui să începem să configurăm fișierele necesare:

cd /etc/bind/

Este recomandabil să accesați acest director ca root (sudo su) pentru a evita refuzarea problemelor de permisiune la copierea fișierelor sau modificarea celor existente. Dacă facem un „ls -l” pentru a lista toate fișierele pe care le avem aici, vom vedea următoarele:

După cum puteți vedea, avem un număr mare de fișiere de configurare diferite, fiecare dintre ele fiind orientat în mod specific către o sarcină, în documentația oficială Bind9 puteți găsi la ce servește fiecare dintre ele. Să presupunem de acum că sunteți întotdeauna în modul super utilizator (root) pentru a edita sau copia fișiere fără restricții.

Configurați expeditorii Bind utilizând servere DNS publice

Primul lucru pe care îl vom face este să configurăm redirecționarea serverelor DNS, adică a serverelor DNS publice pentru a redirecționa interogările către Internet. Fișierul de configurare care este responsabil pentru această sarcină este „named.conf.options”, primul lucru pe care îl facem este să facem o copie de rezervă a fișierului, în cazul în care îl edităm greșit și totul nu mai funcționează:

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

Acum edităm fișierul adăugând serverele DNS în secțiunea de expeditori, așa cum puteți vedea aici:

forwarders {
8.8.8.8;
1.1.1.1;
};

Ar fi după cum urmează:

După ce l-am modificat, repornim serviciul Bind9 pentru a verifica dacă totul funcționează corect și nu returnează nicio eroare:

sudo service bind9 restart

Acum vom verifica dacă funcționează corect, pentru a face acest lucru, executăm o comandă nslookup și ar trebui să vedem că serverul nostru DNS a rezolvat corect un domeniu, în cazul nostru adresa IP a serverului este 192.168.231.130:

Odată ce am configurat Bind pentru a redirecționa rezoluțiile site-urilor Internet către DNS-ul public, vom vedea cum să-l configurăm pentru a rezolva domeniile interne.

Configurați legarea pentru rezoluții locale

Fișierul de configurare pe care trebuie să-l configurăm acum este named.conf.local, este recomandabil să faceți o copie de rezervă în cazul în care ceva nu merge bine atunci când îl configurați, pentru aceasta executăm:

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

Odată ce am făcut backupul, va trebui să edităm fișierul de configurare named.conf.local pentru a continua cu configurarea. În acest fișier de configurare va trebui să punem zona la care ne referim și, de asemenea, fișierul de configurare bind care are toate configurațiile, prin urmare, am putea să-l lăsăm astfel:

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

Este important ca „fișierul” să se refere la fișierul de configurare pe care îl importăm și pe care urmează să îl configurăm chiar acum.

Acum trebuie să copiem baza de date pe care o avem în „db.local”, dă-i numele de „ db.redlocal ”Pe care l-am definit în fișierul anterior.

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

Acum edităm acest fișier de configurare care vine în mod implicit cu o mulțime de informații și îl adaptăm la interesele noastre.

Primul lucru pe care trebuie să-l facem este să modificăm SOA care vine în partea superioară prin numele de domeniu pe care l-am ales local, în acest caz ar fi „red.redlocal.com”, apoi vom edita fișierul general de configurare cu domeniile și subdomeniile pe care le dorim. Fișierul nostru de configurare ar fi după cum urmează:

;
; 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.
@ ÎN A 192.168.231.130
ns1 IN A 192.168.231.130
router IN A 10.11.1.1
pc1 ÎN A 10.11.1.2

Odată ce am salvat fișierul de configurare, verificăm sintaxa cu următoarea comandă:

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

Acum repornim procesul de legare cu următoarea comandă:

sudo service bind9 restart

Avem totul pregătit pentru a porni bateria de teste și a verifica dacă am făcut totul bine. Pentru a verifica dacă totul funcționează bine, trebuie să executăm următoarele comenzi:

host router.redlocal.com

Acesta ne va arăta următoarele, adresa IP a routerului:

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

Putem face același lucru și cu PC1:

host pc1.redlocal.com

Vom vedea acest lucru:

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

Odată ce am reușit să rezolvăm corect domeniile locale, returnând adresa IP corespunzătoare, putem face ping fără probleme prin domeniu:

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

Acum vom configura rezoluția inversă a domeniilor.

Rezoluția inversă a domeniului

Acum vom configura serverul DNS pentru a rezolva domeniile în sens invers, punând adresa IP și spunându-ne cărui domeniu îi aparține acea adresă IP. Pentru a ne atinge obiectivul, trebuie să adăugăm următoarele linii către fișierul /etc/bind/named.conf.local pe care l-am folosit anterior:

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

De asemenea, trebuie să copiem fișierul de configurare implicit pentru al edita. Din fișierul db.127 creăm db.192:

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

Odată ce l-am creat, trebuie doar să îl editați cu următoarele informații:

;
; 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

Odată ce am salvat fișierul de configurare, verificăm sintaxa cu următoarea comandă:

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

Ar trebui să obținem așa ceva:

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

Acum repornim procesul de legare cu următoarea comandă:

sudo service bind9 restart

Și verificăm dacă a funcționat corect:

host 192.168.231.130

Sperăm că acest tutorial Bind complet v-a ajutat să vă configurați propriul server DNS la nivel local.