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 PID=`pidof -o %PPID /usr/sbin/named` |
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)