Sunteți pe pagina 1din 17

Proiect Tehnologii Moderne de Comunicaii

Configurarea unui server DNS pe sistemul de operare Ubuntu

student
Andrei Gabriel-Adrian
CUPRINS

Introducere....................................................................................................................2 1. Tipuri de servere BIND9...........................................................................................3


1.1 Server de tip Caching...................................................................................................3 1.2 Server de tip Master principal.....................................................................................3 1.3 Server de tip Master secundar.....................................................................................3 1.4 Server de tip hibrid.......................................................................................................4 1.5 Server de tip Stealth.....................................................................................................4

2. Tipuri de nregistrri DNS........................................................................................4


2.1 nregistrri de adrese...................................................................................................4 2.2 nregistrri de aliasuri.................................................................................................4 2.3 nregistrri ale circulaiei emailurilor........................................................................5 2.4 nregistrri ale numelor de servere.............................................................................5

3. Configurarea BIND9................................................................................................5
3.1 Configurarea serverul de tip Caching.........................................................................5 3.2 Configurarea serverului de tip Master principal.......................................................8 3.3 Configurarea serverului de tip Master secundar.....................................................10 3.4 Pornirea, oprirea i restartarea serviciului BIND9..................................................11 3.5 Starea serverului BIND9............................................................................................11

4. Logarea/nregistrarea datelor serverului BIND9..................................................11


4.1 Opiunea Channel.......................................................................................................12 4.2 Opiunea Category......................................................................................................12

5. Elemente de securitate BIND9...............................................................................13


5.1 Access Control Lists (ACLs)......................................................................................13 5.2 Procedeul Chrooting pentru BIND9..........................................................................13

6. Troubleshooting......................................................................................................16
6.1 Probleme comune........................................................................................................16 6.2 Incrementarea numerelor serial................................................................................16

Bibliografie..................................................................................................................17

Introducere
Domain Name System (DNS) este un sistem distribuit de pstrare i interogare a unor date arbitrare ntr-o structur ierarhic. Cea mai cunoscut aplicaie a DNS este gestionarea domeniilor n Internet. Caracteristicile sistemului de nume (DNS) sunt: folosete o structur ierarhizat; deleag autoritatea pentru nume; baza de date cu numele i adresele IP este distribuit.

Fiecare implementare TCP/IP conine o rutin software (name resolver) specializat n interogarea serverului de nume (DNS) n vederea obinerii translatrii nume/adres IP sau invers. Exist 2 tipuri de rezoluie de nume: rezoluie recursiv (name resolverul cere serverului de nume s fac translatarea); rezoluie iterativ (name resolverul cere serverului de nume s i furnizeze adresa IP a unui server care poate face translatarea). Tipic, procesul de rezoluie a numelor se desfoar astfel: Name resolverul primete de la o aplicaie client TCP/IP un nume; acesta formuleaz o interogare primului server de nume din lista serverelor, Serverul de nume (DNS) determin daca este mandatat (autorizat) pentru domeniul respectiv (dac exist configurat o zon DNS care conine numele respectiv). Dac este autorizat, transmite rspunsul clientului. Dac nu, transmite o interogare altui server de nume pentru un rspuns autorizat; obine rspunsul autorizat i transmite clientului un rspuns neautorizat; totodat stocheaz rspunsul local pentru a rspunde la alte cereri pentru acelai nume. Resolverul de nume transmite rspunsul aplicaiei utilizator i l pstreaz ntrun cache pentru o anumit perioad; Dac name resolverul nu primete un rspuns ntr-un anumit timp, transmite cererea urmtorului server de nume din list. Cnd lista este epuizat, va genera o eroare.

1. Tipuri de servere BIND9


BIND9 ofer o gam variat de servicii DNS. Unele dintre cele mai utile configuraii sunt:

1.1 Server de tip Caching


Acest tip de server este util cazul unei conexiuni intenet slabe. Prin caching-ul cautrilor DNS, reduci limea benzii i , mai important, latena.

1.2 Server de tip Master principal


BIND9 poate fi folosit ca mediu de stocare pentru nregistrrile DNS (grupuri de nregistrri se mai numesc i zone) pentru un domain name nregistrat sau unu imaginar (dar numai dac este folosit ntr-o reea restricionat).

1.3 Server de tip Master secundar


Un server de tip Master secundar DNS este utilizat pentru ntregirea serverului de tip Master principal DNS prin copierea zonelor configurate pe serverul principal. Serverele secundar sunt recomandate n aranjamentele mai complexe. n cazul

funcionrii ca un domain name nregistrat serverul secundar asigur faptul ca zonele DNS sunt disponibile, chiar dac serverul principal este offline.

1.4 Server de tip hibrid


Aceast tip de configurare se refer la posibilitatea de a avea simultan un server de tip Caching i un server principal de tip Master, un server Caching i unul secundar de tip Master sau chiar combinarea celor trei tipuri de server, Caching, Master principal i Master secundar. Tot ceea ce este necesar este simpla combinare a diferitelor configuraii.

1.5 Server de tip Stealth


Mai exist nc dou tipuri comune de server DNS ( folosite n lucrul cu zone pentru domain name nregistrat), Stealth principal i Stealth secundar. Acestea sunt efectiv la fel ca serverele DNS principale i secundar, dar cu o mic diferen organizaional. S luam ca exemplu trei servere DNS : A,B i C. A este serverul principal, iar B i C sunt secundar. Dac domeniul nregistrat folosete server A i B ca servere DNS ale domeniului, atunci serverul C este un server Stealth secundar. n acest caz serverul C este n continuare un server secundar, dar nu va fi accesat n legtura cu zonele utilizate de serverele A i B. n cazul n care domeniul nregistrat va folosi ca servere DNS, serverele B i C, atunci serverul A va deveni un server Stealth principal. nregistrrile sau modificrile zonelor adiionale vor fi fcute n A, dar calculatoarele de pe Internet vor accesa doar serverle B i C.

2. Tipuri de nregistrri DNS


2.1 nregistrri de adrese
Cel mai ntlnit tip de nregistrare. Acest tip de nregistrare face legtura ntre o adres IP i un hostname. www IN A 1.2.3.4

2.2 nregistrri de aliasuri


Folosit pentru a creea un alias pentru o nregistrare deja existent (A). Nu exist posibilitatea de a creea un alias CNAME care s direcioneze spre un alt nregistrare CNAME.

mail www

IN CNAME IN A

www 1.2.3.4

2.3 nregistrri ale circula iei emailurilor


Definete zona unde ar trebui trimise emailurile i cu ce prioritate. Trebuir s direcioneze spre o nregistare A i nu CNAME. Pot exista mai multe nregistrri MX dac mai multe servere de mail sunt responsanbile pentru acel domeniu. IN [...] mail IN A 1.2.3.4 MX 10 mail.example.com.

2.4 nregistrri ale numelor de servere


Folosit pentru definirea serverelor folosite pentru copierea unei zone. La fel ca la nregistrrile emailurilor trebuie s direcioneze spre o nregistrare A, i nu CNAME. Aici sunt definite serverele principale i secundar. Serverele Stealth sunt inteionat omise. IN [...] ns IN A 1.2.3.4 NS ns.example.com.

3. Configurarea BIND9
Fiierele de configurare pentru BIND9 sunt stocate n : /etc/bind/ Principalele fiiere de configurare sunt urmtoarele : /etc/bind/named.conf /etc/bind/named.conf.options /etc/bind/named.conf.local

3.1 Configurarea serverul de tip Caching


Configurarea implicit este modificat pentru a aciona ca un server de tip caching. Trebuie doar adugat adresa IP a serverului DNS al ISPului. Acest lucru se

face prin decomentarea i modifcarea urmtoarele linii din fiierul /etc/bind/named.conf.options: [...] forwarders { 101.102.103.104; 105.106.107.108; }; [...] Numerele 101.102.103.104 i 105.106.107.108 reprezint adresele IP ale serverului DNS ale ISPului. Urmtorul pas este restartarea aplicaiei bind prin urmtoare comand: sudo /etc/init.d/bind9 restart Dac ai instalat pachetul dnsutils poi testa configuraia folosind comanda dig: dig -x 127.0.0.1 Dac totul a decurs cum trebuie data de ieire ca arat cam aa : ; <<>> DiG 9.5.1-P2.1 <<>> -x 127.0.0.1 ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25213 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;1.0.0.127.in-addr.arpa. ;; ANSWER SECTION: 1.0.0.127.in-addr.arpa. 0 IN IN PTR localhost.

PTR

;; Query time: 28 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Sun Jan 17 16:23:32 2010 ;; MSG SIZE rcvd: 63 Comanda dig poate fi folosit i pe alte domenii, ca de exemplu;

dig google.com ; <<>> DiG 9.5.1-P2.1 <<>> google.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31469 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN ;; ANSWER SECTION: google.com. 32 google.com. 32 google.com. 32 google.com. 32 IN IN IN IN A A A A A 209.85.129.104 209.85.129.99 209.85.129.103 209.85.129.147

;; Query time: 41 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Sun Jan 17 16:37:47 2010 ;; MSG SIZE rcvd: 92

Dac folosii comanda dig pe un domeniu de mai multe ori, se va observa o mbuntire a Query time ntre prima i a doua folosire : Prima folosire: ; <<>> DiG 9.5.1-P2.1 <<>> google.com ... ;; Query time: 41 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Sun Jan 17 16:37:47 2010 ;; MSG SIZE rcvd: 92

Query time : 41 msec A doua folosire:

; <<>> DiG 9.5.1-P2.1 <<>> google.com ... ;; Query time: 38 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Sun Jan 17 16:37:49 2010 ;; MSG SIZE rcvd: 108 Query time : 38 msec Acest lucru se mtmpl datorit cachingului efectuat de server.

3.2 Configurarea serverului de tip Master principal


n aceast seciune BIND9 va fi configurat ca server Master principal pentru domeniul nume.com. Domeniul principal.com poate fi nlocuit cu FQDN-ul propriu. Pentru a adaug o zona DNS la BIND9, astfel transformndu-l ntr-un server Master principal, trebuie fcute urmtoarele modificri n fiierul named.conf.local : [...] zone "nume.com" { type master; file "/etc/bind/db.nume.com"; }; [...] Folosii un fiier zone deja existent ca ablon : sudo cp /etc/bind/db.local /etc/bind/db.example.com Editai noul fiier zone /etc/bind/db.nume.com, schimbnd localhost. Cu FQDN propriului server, lsnd . -ul de la sfrit. Modificai 127.0.0.1 cu adresa IP a serverului i root.localhost cu o adres de email valid, dar cu . n loc de @ . De asemenea, creai o nregistrare de tip A pentru ns.nume.com ca n exemplul urmtor: ; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns.nume.com. admin.nume.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.nume.com. @ IN A 192.168.1.4

Trebuie s incrementezi numrul serial de fiecare dat cnd modifici fiierul zone. Dac faci mai multe schimbri nainte de a restarta BIND9, incrementeaz serialul o dat. Poi aduga nregistrri DNS n josul zonei. Dup schimbrile efectuate n fiierul zone, va trebui s restartezi serviciul BIND9 pentru ca schimbrile s aib efect : sudo /etc/init.d/bind9 restart Pentru configurarea serverului este necesar i un fiier reverse zone pentru trecerea de la o adres ip la un nume. Pentru acest se vor adaug urmtoarele linii n fiierul /etc/bind/named.conf.local : zone "1.168.192.in-addr.arpa" { type master; notify no; file "/etc/bind/db.192"; }; Urmtorul pas este crearea unui fiier db.192 : sudo cp /etc/bind/db.127 /etc/bind/db.192 n care vom avea de fcut aproximativ aceleai modificri ca n fiierul /etc/bind/db.nume.com : ; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA ns.nume.com. admin.nume.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns. 10 IN PTR ns.nume.com.

Pentru fiecare nregistrare de tip A fcut n fiierul etc/bind/db.example.com, una de tip PTR va trebui fcut n fiierul /etc/bind/db.192. Dup crearea fiierul reverse zone se va da un restart serviciul BIND9: sudo /etc/init.d/bind9 restart

3.3 Configurarea serverului de tip Master secundar


Dup finalizarea configurrii serverului de tip Master principal este necesar configurarea unui server secundar pentru a menine accesibilitatea domeniului n cazul n care serverul principal nu mai este funcional. n primul rnd, pe serverul principal trebuie s fie permis transferul de zone. Pentru aceasta trebuie adugat opiunea allow-transfer n fiierul /etc/bind/named.conf.local ca n urmtorul exemplu : [...] zone "nume.com" { type master; file "/etc/bind/db.nume.com"; allow-transfer { @ip_secondary; }; }; [...] zone "1.168.192.in-addr.arpa" { type master; notify no; file "/etc/bind/db.192"; allow-transfer { @ip_secondary; }; }; nlocuii @ip_secondary cu adresa IP a serverului secundar. Urmtorul pas este asemntor doar c va fi efectuat n fiierul /etc/bind/named.conf.local aflat pe serverul secundar : [...] zone "nume.com" { type slave; file "/var/cache/bind/db.nume.com"; masters { @ip_master; }; }; [...] zone "1.168.192.in-addr.arpa"; { type slave; file "/var/cache/bind/db.192"; masters { @ip_master; }; }; n locul @ip_master va fi trecut adresa IP a serverului principal. Restartai serviciul BIND9 pentru a se aplica schimbrile efectuate.

3.4 Pornirea, oprirea i restartarea serviciului BIND9


Pentru pornirea se folosete comanda : $ sudo /etc/init.d/bind9 start Pentru oprire : $ sudo /etc/init.d/bind9 stop i pentru restartare : $ sudo /etc/init.d/bind9 restart

3.5 Starea serverului BIND9


Pentru a verifica starea serverului dumneavoastra utilizai una din urmtoarele comenzi : $ host localhost sau $ dig @localhost De exemplu : $ host nume.com 127.0.0.1 nume.com has address 192.168.1.4

4. Logarea/nregistrarea datelor serverului BIND9


BIND9 are disponibil o gam variat de opiuni de nregsitrare a datelor. Vom vorbi despre dou, cele mai importante, dintre acestea. Opiunea channel, care stabilete unde se stocheaz nregistrrile i opiunea category, care determin ce s nregistreze. Dac nu se configureaz o opiune de nregistrare, exista deja una implicit, i anume : logging { category default { default_syslog; default_debug; }; category unmatched { null; }; };

4.1 Opiunea Channel


Pentru aceast opiune vom specifica un channel (canal) unde vor fi trimise mesajele. n fiierul /etc/bind/named.conf.local vom adaug urmtoarele :

logging { channel query.log { file "/var/log/query.log"; // Set the severity to dynamic to see all the debug messages. severity dynamic; }; };

4.2 Opiunea Category


Activarea acestei opiuni necesit configurarea unei category specificnd tipul de mesaje ce vor fi stocate. Vom face aceasta ca adugnd urmtoarele linii : logging { channel query.log { file "/var/log/query.log"; // Set the severity to dynamic to see all the debug messages. severity debug 3; }; category queries { query.log; }; }; Valoare debug poate fi setat ntre 1 i 3, altfel aceasta va fi setat implicit 1. Trebuie de asemenea creat i fisierul /var/log/query.log unde vor fi stocate informaiile: sudo touch /var/log/query.log sudo chown bind /var/log/query.log Pentru ca toate schimbrile s aib efect va trebui s dai din nou un restart : sudo /etc/init.d/bind9 restart

5. Elemente de securitate BIND9


5.1 Access Control Lists (ACLs)
Access Control Lists (ACLs), sunt liste de adrese ce pot fi configurate si denumite pentru utilizri anterioare n opiunile allow-notify, allow-query, allowrecursion, blackhole, allow-transfer, etc. Folosirea ACLs-urilor permit un mai bun control asupra accesului la sever, fr a creea confuzie n configurri cu liste enorme de adrese IP. Limitarea accesului la server de ctre elemente exterioare pot preveni atacurile mpotriva serverului dumneavoastr. Iat un exemplu de ACLs: // Setai un ACLs numit lista1 pentru a bloca RFC 1918, // adesea folosit n atacuri acl lista1 { 0.0.0.0/8; 1.0.0.0/8; 2.0.0.0/8; 192.0.2.0/24; 224.0.0.0/3; 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16; }; // Setai un ACLS numit lista2. nlocuii-o cu adresele IP. acl lista2 { x.x.x.x/24; x.x.x.x/21; }; options { ... ... allow-query { lista1; }; allow-recursion { lista1; }; ... blackhole { lista2; }; ... }; zone "nume.com" { type master; file "m/nume.com"; allow-query { any; }; }; Acest lucru permite cutri recursive ale serverului, din exterior, n cazul n care aceast opiune a fost dezactivat.

5.2 Procedeul Chrooting pentru BIND9


Procedeul Chrooting este recomandat din punct de vedere al securizrii n cazul n care nu ai instalat AppArmor. ntr-un mediu Chroot, BIND9 are acces la toate fiierele i elementele hardware de care are nevoie . Pentru a aplica procedeul chroot unui server BIND9 creeai un mediu chroot i aplicai urmtoarele configurri.

Mediul Chroot Creeai urmtoare structur de directoare $ sudo mkdir -p /chroot/named $ cd /chroot/named $ sudo mkdir -p dev etc/namedb/slave var/run

Setai permisiunea pentru mediul chroot. $ sudo chown root:root /chroot $ sudo chmod 700 /chroot $ sudo chown bind:bind /chroot/named $ sudo chmod 700 /chroot/named Copiai fiierul de configurare bind. $ sudo cp /etc/named.conf /chroot/named/etc Dai permisiunea de scriere utilizatorului bind pentru directorul /chroot/named/etc/namedb/slave. $ sudo chown bind:bind /chroot/named/etc/namedb/slave Aici este locul unde fiierele pentru zonele slave vor fi inute. Astfel este sporit securitate, oprind atacatorul s modifice fiiere din zona principal, dac acesta reuete s acceseze serverul cu utilizatorul bind. Toate numele fiierelor slave din fiierul /chroot/named/etc/named.conf vor avea nevoie de nume de directoare ctre directorul slave. Iat un exemplu : zone my.zone.com. { type slave; file slaves/my.zone.com.dns; masters { 10.1.1.10; }; }; Creeai dispozitivele necesare serviciului BIND9 $ sudo mknod /chroot/named/dev/null c 1 3 $ sudo mknod /chroot/named/dev/random c 1 8 Permitei accesul utilizatorului bind ctre directorul /chroot/named/var/run unde vor fi stocate date statistice. $ sudo chown bind:bind /chroot/named/var/run

Configurarea BIND9 Editai opiunea startup ce se gsete n /etc/default/bind9. Schimbai liniile : /etc/default/bind9: OPTIONS=-u bind cu : /etc/default/bind9: OPTIONS="-u bind -t /var/named -t /chroot/named -c /etc/named.conf" Opiunea t schimb directorul iniial cu /chroot/named. Opiunea c spune BIND9 c fiierul de configurare se gsete n /etc/named.conf. Fiierul name.conf trebui s arate n felul urmtor : /chroot/named/etc/named.conf: options { directory "/etc/namedb"; pid-file "/var/run/named.pid"; statistics-file "/var/run/named.stats"; };

Ultimul pas este configurarea syslod Daemon a sistemului Ubuntu. /etc/init.d/sysklogd: [...] SYSLOGD="-u syslog -a /chroot/named/dev/log" [...] Restartai serverul syslog i BIND9 $ sudo /etc/init.d/sysklogd restart $ sudo /etc/init.d/bind9 restart

6. Troubleshooting
6.1 Probleme comune
Cea mai bun soluie de rezolvae a problemelor de instalare i configurare este s aveti fiiere de nregistrare (log), fiiere ce sunt o surs de indicii i informaii despre problema pe care o avei i despre cum poate fi ea rezolvat.

6.2 Incrementarea numerelor serial


Numere serial ale zonelor sunt doar numere i nu au legtur cu data. Se obinuiete ca acest numr s fie data n care s-a fcut ultima modificare, de obicei de forma AAAALLZZRR, de exemplu 2010011812. S-a ncercat testarea acestor seriale cu numrul 2000 trecut ca an. Dup modificare s-a ncercat revenirea la vechiul numr serial. Aceast modificare a creat probleme deoarece numerele serial arat dac o zon a fost modificat. Dac numrul serial de pe serverul secundar este mai mic dect cel de pe serverul principal, serverul secundar va ncerca s copie configuraia zonei de pe serverul principal. Setarea numrul serial pe serverul principal mai mic ca pe serverul secundar va opri serverul secundar din ncercarea de a actualiza zona. Soluia este adugarea numrului 2147483647 (2^31-1) la numrul serial, rencrcarea zonei i actualizarea servereleor secundar cu noul numr serial, apoi schimbarea numrul cu unul dorit i din nou rencrcarea zonei.

Bibliografie
Liu, Cricket, DNS & BIND Cookbook, Editura O'Reilly, Statele Unite ale Americii, 2002 Liu, Cricket, Albitz, Paul, DNS and BIND, 5th Edition, Editura O'Reilly, Statele Unite ale Americii, 2006 http://www.bind9.net/manuals

S-ar putea să vă placă și