Archiwa tagu: named

Konfiguracja serwera DNS

Jeśli już mamy zainstalowanego binda – niezależnie czy w opcji tradycyjnej, czy wg opisu – w chroocie, to jeszcze należy go skonfigurować. W zależności od funkcji, jaka zostanie mu wyznaczona, konfiguracja będzie się nieco różnić. Na początek omówienie pracy demona named w dwóch zasadniczych trybach – master i slave.

Named może pełnić funkcję serwera głównego (master) i zapasowego (slave). Może być serwerem głównym i zapasowym jednocześnie, ale nie dla tej samej domeny.
Pierwszym ważnym krokiem będzie dodanie do standardowego pliku named.conf naszych własnych wpisów dotyczących obsługiwanej domeny. Jeśli nasz serwer ma być głównym, musimy do pliku dopisać:
zone „glowna.pl” {
type master;
file „glowna.pl.zone”;
notify yes;
also-notify{ IP_pierwszego_zapasowego_DNS; IP_drugiego_zapasowego_DNS; };
};

Dla serwera zapasowego dla domeny odpowiedni wpis musi wyglądać tak:
zone „zapasowa.pl” IN {
type slave;
file „zapasowa.pl.zone”;
masters {IP_master_DNS; };
allow-notify { IP_master_DNS; };
notify no;
};

W pierwszym przypadku musimy podać numery IP serwerów zapasowych do których wysłana zostanie notyfikacja o ewentualnych zmianach. W drugim należy podać IP serwera głównego oraz IP serwerów z których wolno przyjąć notyfikacje o zmianach (jeśli ten serwer będzie trzecim z kolei, można podać IP pierwszego i drugiego).
Serwer główny powinien mieć też prawidłowo skonstruowany plik strefy, czyli w naszym przykładzie będzie to glowna.pl.zone.
;
;glowna.pl zone
;
$TTL 804800 ;7 dni
$ORIGIN glowna.pl.
@ IN SOA dns.glowna.pl. root.glowna.pl. (
2008072301 ; Serial (zwykle data i numer kolejnej zmiany)
7200 ; Refresh 2h
7200 ; Retry 2h
1209600 ; Expire 2 weeks
86400 ; Minimum TTL 24h
)
@ IN NS dns.glowna.pl. ;NS (Name Server) czyli podstawowy serwer DNS
@ IN NS inny.serwer.pl. ;Secondary DNS
@ IN MX 10 mail ;Mail serwer
@ IN A xxx.xxx.xxx.xxx ;Adres IP domeny
mail IN A yyy.yyy.yyy.yyy ;poczta na glowna.pl i adres IP (ważne, jeśli IP poczty jest inny)
www IN CNAME @ ;alias do wywołania www
webmail IN CNAME mail ;alias inny

Tak skonstruowany plik strefy zawiera główny IP dla danej domeny, rekord MX w tym wypadku serwera poczty postawionego na innym IP (jeśli na tym samym wystarczy opcja mail IN CNAME @). Jest również alias do wywołania z prefixem www i drugi alias do wywołania strony z prefixem webmail na serwerze poczty. Oczywiście liczba wpisów CNAME będzie zależna od potrzeb administratora i mogą dotyczyć czegoś zupełnie innego. Można również wstawić tzw. dziką kartę (wild card) w postaci – * IN CNAME @. Jednak należy pamiętać, że w takim przypadku będzie możliwe dowolne wywołanie naszej domeny – np. brzydkie.slowo.domena.pl.
Ważne, aby po każdej zmianie w naszej strefie zmienić serial w pliku strefy, w przeciwnym razie nikt nie zauważy naszej zmiany. No i restartujemy demona lub tylko rndc.
W przypadku serwera zapasowego nie należy tworzyć pliku strefy, po zmianie w named.conf i restarcie nameda plik strefy zostanie ściągnięty z serwera głównego.
Tutaj można ściągnąć prezentację na temat binda, którą w 2007 roku przygotował na zjazd Kamil Mazur. Oczywiście jest to pewien szkic do dość obszernego wykładu na ten temat, jednak sądzę, że może być pożyteczny.

autor: W. Trąmpczyński (Maciek)

Bind działający w chroocie

Własny dns to czasami niezbędna usługa. Jednak sporo mówi się o tym, że jest to usługa często atakowana i niebezpieczna, przez to administrator zwykle się nieco obawia, jaki wpływ może mieć uruchomienie binda na bezpieczeństwo serwera i innych usług. Jest jednak sposób, aby uruchomić serwer dns w wyizolowanym środowisku, żeby nawet wprzypadku włamania nie miało ono wpływu na bezpieczeństwo systemu. Poniżej trochę skomplikowana, ale skuteczna procedura, która polega na przeniesieniu części plików do specjalnie utworzonego katalogu.

Najpierw zainstalujemy pakiet bind (pacman -S bind), następnie utworzymy katalog /etc/bind przydzielając go użytkownikami named z prawami 700. Wewnątrz tego katalogu należy utworzyć następne:

ls -l /etc/bind
drwxr-xr-x 2 root root 1024 2007-08-28 13:15 dev
drwxr-xr-x 3 root root 1024 2008-04-28 17:21 etc
drwxr-xr-x 4 root root 1024 2007-08-28 13:10 usr
drwxr-xr-x 3 root root 1024 2007-08-28 13:52 var


Do katalogu /etc/bind/dev skopiować należy dwa pliki urządzeń z /dev – null i random.
Do /etc/bind/etc kopiujemy plik /etc/group oraz dowiązanie symboliczne @localtime oraz named.conf i rndc.key oraz tworzymy katalog bind, prawa powyższych plików powinny wyglądać tak:

ls -l /etc/bind/etc
drwxr-xr-x 2 named named 1024 2008-06-26 21:48 bind
-rw-r–r– 1 root root 426 2007-08-28 12:59 group
lrwxrwxrwx 1 root root 33 2007-08-28 13:14 localtime -> /usr/share/zoneinfo/Europe/Warsaw
-rw-r–r– 1 named named 1450 2008-04-28 17:21 named.conf
-rw-r–r– 1 named named 0 2007-08-28 13:19 rndc.key


Do katalogu /etc/bind/usr kopiujemy kilka plików, tworząc dla nich podkatalogi podobnie, jak w oryginalnej ścieżce. A więc musimy mieć:
../usr/share/zoineinfo/Europe/Warsaw
i w podkatalogu ../usr/sbin następujące pliki z oryginalnego ich położenia.

/etc/bind/usr/sbin
*named
*named-checkconf
*named-checkzone
*rndc
*rndc-confgen


Nie ma potrzeby zmieniać właściciela plików, ani ich uprawnień.
Pozostaje nam jeszcze do wypełnienia katalog /etc/bind/etc/bind. Do niego skopiujemy plik root.hint oraz 127.0.0.zone, w nim też będą nasze pliki stref dla własnych domen. Jeśli nasz serwer będzie pełnił funkcje master dobrze by było, aby pliki stref należały do roota i miały prawo do odczytu dla pozostałych. W przypadku serwera slave pliki stref zostaną zapisane samoczynnie po synchronizacji serwerów.
Aby nasz serwer dns pracował w chroocie musimy jeszcze przerobić skrypt startowy /etc/rc.d/named, powinien mieć taka postać:

/etc/rc.d/named
#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

PID=`pidof -o %PPID /usr/sbin/named`
OPTS=”-u named -t /etc/bind”
case „$1” in
start)
stat_busy „Uruchamiam DNS”
[ -z „$PID” ] && /usr/sbin/named $OPTS
if [ $? -gt 0 ]; then
stat_fail
else
add_daemon named
stat_done
fi
;;
stop)
stat_busy „Zatrzymuję DNS”
[ ! -z „$PID” ] && kill $PID &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
rm_daemon named
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo „Użycie: $0 {start|stop|restart}”
esac
exit 0


Teraz już tylko odpowiednio skonfigurujemy named.conf i utworzymy plik strefy, a wtedy możemy uruchomić swój serwer. W pliku named.conf trzeba zmienić sekcję options podając prawidłowe dla naszej konfiguracji ścieżki:
options {
directory „/etc/bind”;
pid-file „/var/run/named.pid”;
datasize default;
version „Microsoft DNS Server v1.5 (WinME)”;
recursion no;
};

Dodatkową „zmyłką” może być sposób przedstawiania się naszego serwera DNS. 🙂

autor: W. Trąmpczyński (Maciek)