Nastavenie DNS servera
Tento návod je platný pre systém debian 6 a vychádza z http://deja-vix.sk/sysadmin/dns.html. Veľa teoretických poznatkov je preskočených, preto je vhodné prečítať si pôvodný návod.
Inštalácia
Inštalácia je veľmi jednoduchá, pretože budeme využívať softvér z repozitárov. Softvér potrebný pre realizáciu dns servera sa nazýva bind9.
apt-get install bind9
Štandardné nastavenia
Pre jednoduchosť uvažujme doménu (zonu) "simpledomain.sk", ktorú bude náš DNS server spravovať. V tejto zóne budeme chcieť vyžívať ako IPv4 tak IPv6 preklady a ich reverzné preklady. Základnom konfigurácie jednotlivých zón sú zónové súbory. Malo by sa dodržiavať nepísané pravidlo, že pre každú zónu by mal byť práve 1 zónový súbor. Tento zónový súbor môže byť lokalizovaný ľubovoľne v súborovom systéme, len ho treba potom v konfigurácii správne prilinkovať. Hlavným konfiguračným súborom je súbor /etc/bind/named.conf . V aktuálnej verzii bindu tento súbor pripája ďalšie 3 súbory – named.conf.default-zones named.conf.local named.conf.options.
named.conf.options
Súbor obsahuje rôzne nastavenia pre DNS server. Pre nás sú zaujímavé najmä tieto nastavenia.
options {
//pracovny adresar
directory "/var/named/";
//toto je komentar
//dns servery na ktore sa nas dns obrati ak nebude vediet
//splnit poziadavku na preklad
//spravidla dns servery providera
forwarders {
158.193.152.2;
};
//vhodne zadefinovat
//forward only;
auth-nxdomain no; # conform to RFC1035
//pocuvanie na IPv6
listen-on-v6 { any; };
};
named.conf.local
V tomto okamihu pre nás nezaujímavý.
named.conf.default-zones
V tomto súbore sa definujú práve jednotlivé zóny a zónové súbory. Príklad pre definovanie zóny simpledomain.sk s reverznými dns, by mohol vyzerať nasledovne:
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
zone "simpledomain.sk"{
type master;
file "/var/bind/primary/simpledomain.sk.zone";
};
zone "56.168.192.in-addr.arpa"{
type master;
file "/var/bind/primary/simpledomain.sk.reverse";
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.d.0.f.ip6.arpa"{
type master;
file "/var/bind/primary/simpledomain.sk.ipv6reverse";
};
Vytvorenie zónových súborov
Zónové súbory sú lokalizované v adresári /var/bind/primary resp. /var/bind/secondary, v závislosti na tom, či sme pre danú doménu primárny (master) dns server, alebo sekundárny (slave).
mkdir -p /var/bind/primary
mkdir -p /var/bind/secondary
V týchto adresároch potom môžme vytvoriť jednotlivé zónové súbory.
cd /var/bind/primary
nano simpledomain.sk.zone
Súbor simpledomain.sk.zone bude predstavovať zónový súbor pre našu doménu simpledomain.sk. Namiesto editora nano, je možné použiť ľubovoľný iný editor (mcedit, vim, ..). Súbor simpledomain.sk.zone by mal vyzerať nasledovne:
$ORIGIN .
$TTL 86400 ; zivotnost zaznamu 1 den
simpledomain.sk IN SOA ns.simpledomain.sk. adresa_spravcu.mojadomena.sk. (
2003013101 ; serial
86400 ; refresh (1 day)
21600 ; retry (6 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
3600 ; minimum (1 hour)
)
NS ns.simpledomain.sk.
MX 10 ns.simpledomain.sk.
$ORIGIN simpledomain.sk.
$TTL 86400 ; 1 day
ns IN A 192.168.56.1
mail IN CNAME ns
www IN CNAME ns
ftp IN CNAME ns
test IN A 192.168.56.2
ipv6 IN AAAA f0d8::1
Takto zadefinovaný zónový súbor zabezpečí nasledovné preklady.
ns.simpledomain.sk – 192.168.56.1
mail.simpledomain.sk – 192.168.56.1
www.simpledomain.sk – 192.168.56.1
ftp.simpledomain.sk – 192.168.56.1
test.simpledomain.sk – 192.168.56.2
ipv6.simpledomain.sk – f0d8::1
Reverzný zónový súbor by mal vyzerať nasledovne.
vim simpledomain.sk.reverse
$ORIGIN .
$TTL 86400 ; 1 day
56.168.192.in-addr.arpa IN SOA ns.simpledomain.sk. adresa_spravcu.mojadomena. (
2003013101 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ; minimum (1 day)
)
NS ns.simpledomain.sk.
$ORIGIN 56.168.192.in-addr.arpa.
1 IN PTR ns.simpledomain.sk.
2 IN PTR test.simpledomain.sk.
Reverzný zónový súbor pre IPv6
vim simpledomain.sk.ipv6reverse
$ORIGIN .
$TTL 86400 ; 1 day
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.d.0.f.ip6.arpa IN SOA ns.simpledomain.sk. adresa_spravcu.mojadomena. (
2003013101 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours)
3600000 ; expire (5 weeks 6 days 16 hours)
86400 ; minimum (1 day)
)
NS ns.simpledomain.sk.
$ORIGIN 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.d.0.f.ip6.arpa
1.0.0.0 IN PTR ipv6.simpledomain.sk.
Zavedenie nastavení
Ak chceme aby sa tieto nastavenia prejavili, je nutné reštartovať dns daemona. Tento krok je nutný po akejkoľvek zmene konfiguračných súborov.
service bind9 restart
Na obrazovke, by sa malo zobraziť, či tento krok prebehol úspešne alebo nie. Pre detailnejšie výpisy odporúčam na vedľajšej konzole mať zapnuté vypisovanie logov
tail -f /var/log/syslog
Ak reštart prebehol úspešne, tak by mal dns server pracovať správne. Ako zistiť, že pracuje správne zistíte v sekcii testovanie.
Bezpečnosť
Veľmi dobrou bezpečnostnou politikou je nechať bežať dns server pod inými právami ako sú rootovské a navyše v oddelenom súborovom systéme. Pre bližšie informácie (a pre všeobecný rozhľad) odporúčam preštudovať vyššie uvedený link.
Vyhradený používateľ
Vo väčšine prípadov toto za vás spraví inštalácia sama. Overenie:
grep bind /etc/passwd
bind:x:105:107::/var/cache/bind:/bin/false
Adresárová štruktúra
Keďže chceme, aby bol daný daemon v určitom adresári, potrebujeme mu všetky potrebné súbory pripraviť.
cd /var/bind
mkdir dev
mkdir etc
mkdir -p var/bind/primary
mkdir -p var/run/bind
chown bind:bind var/run/bind
Premiestnenie jednotlivých súborov
cd /var/bind/
cp /etc/localtime /var/bind/etc/
ln -s /etc/bind/rndc.key /var/bind/etc/bind/rndc.key
chgrp bind /var/bind/etc/rndc.key
chmod g+r /var/bind/etc/rndc.key
mkdir /var/bind/etc/bind
mv /etc/bind/*.* /var/bind/etc/bind/
mv /var/bind/primary/*.* /var/bind/var/bind/primary
cp /var/bind/etc/bind/rndc.key /etc/bind
Vytvorenie špeciálnych zariadení
cd /var/bind/dev
mknod -m 666 /var/bind/dev/null c 1 3
mknod -m 644 /var/bind/dev/random c 1 8
Úprava štandardných nastavení binda
Súbor /etc/default/bind9 upravte nasledovne
# startup options for the server
OPTIONS="-u bind -t /var/bind"
Testovanie
V mojom prípade ma dns server adresu 192.168.56.101
$ nslookup ns.simpledomain.sk 192.168.56.101
Server: 192.168.56.101
Address: 192.168.56.101#53
Name: ns.simpledomain.sk
Address: 192.168.56.1
$ nslookup test.simpledomain.sk 192.168.56.101
Server: 192.168.56.101
Address: 192.168.56.101#53
Name: test.simpledomain.sk
Address: 192.168.56.2
$ nslookup 192.168.56.1 192.168.56.101
Server: 192.168.56.101
Address: 192.168.56.101#53
1.56.168.192.in-addr.arpa name = ns.simpledomain.sk.
$ nslookup 192.168.56.2 192.168.56.101
Server: 192.168.56.101
Address: 192.168.56.101#53
2.56.168.192.in-addr.arpa name = test.simpledomain.sk.
$ dig @192.168.56.101 -t AAAA ipv6.simpledomain.sk
; <<>> DiG 9.7.3 <<>> @192.168.56.101 -t AAAA ipv6.simpledomain.sk
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35654
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;ipv6.simpledomain.sk. IN AAAA
;; ANSWER SECTION:
ipv6.simpledomain.sk. 86400 IN AAAA f0d8::1
;; AUTHORITY SECTION:
simpledomain.sk. 86400 IN NS ns.simpledomain.sk.
;; ADDITIONAL SECTION:
ns.simpledomain.sk. 86400 IN A 192.168.56.1
;; Query time: 2 msec
;; SERVER: 192.168.56.101#53(192.168.56.101)
;; WHEN: Mon Feb 20 10:54:08 2012
;; MSG SIZE rcvd: 99
$ dig @192.168.56.101 -x f0d8::1
; <<>> DiG 9.7.3 <<>> @192.168.56.101 -x f0d8::1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46376
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.d.0.f.ip6.arpa. IN PTR
;; ANSWER SECTION:
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.d.0.f.ip6.arpa. 86400 IN PTR ipv6.simpledomain.sk.
;; AUTHORITY SECTION:
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.d.0.f.ip6.arpa. 86400 IN NS ns.simpledomain.sk.
;; ADDITIONAL SECTION:
ns.simpledomain.sk. 86400 IN A 192.168.56.1
;; Query time: 2 msec
;; SERVER: 192.168.56.101#53(192.168.56.101)
;; WHEN: Mon Feb 20 10:54:35 2012
;; MSG SIZE rcvd: 157