[Debian] Instalacja i konfiguracja serwera DNS – ISC Bind

Teoria działania systemu DNS została opisana tutaj. Zabierzmy się więc od razu do instalacji i konfiguracji serwera. Wykorzystamy ISC Bind-a, czyli najstarszą, rozwijaną niemalże od początku istnienia systemu DNS, implementacje serwera DNS.

1. Logujemy się jako root po SSH, np. za pomocą PuTTY.

2. Instalujemy Bind-a – serwer DNS, oraz zestaw narzędzi do testowania (dnsutils).

apt-get update
apt-get install bind9 dnsutils

3. Usuwamy całą domyślną konfiguracje Bind-a.

rm -rf /etc/bind/*

4. Jeśli jeszcze tego nie zrobiliśmy, instalujemy edytor tekstu nano.

apt-get install nano

5. Edytujemy (nowy, pusty) plik konfiguracyjny Binda – /etc/bind/named.conf.

nano /etc/bind/named.conf

6. Zaznaczamy zawartość poniższego pola tekstowego, kopiujemy go do schowka, wciskając CTRL+C, przechodzimy do PuTTY i wklejamy klikając PPM (prawym przyciskiem myszy) na terminal. Zamiast „vps-admin.eu”, wpisujemy nazwę swojej domeny.

Jeśli chcemy dodać więcej domen, kopiujemy klika razy drugą część poniższego pola (zone „vps-admin.eu”…), za każdym razem podstawiając inną nazwę domeny i pliku strefy.

options {
        directory "/etc/bind";
        allow-query-cache { none; };
        allow-query { any; };
        recursion no;
        version "najnowsza";
};

zone "vps-admin.eu" {
        type master;
        file "vps-admin.eu";
        allow-transfer { none; };
};

7. Zapisujemy plik i zamykamy nano, wciskając CTRL+X, a następnie zatwierdzając Y.

8. Sprawdzamy czy config nie zawiera żadnych błędów. Pusty wynik oznacza że wszystko jest OK.

named-checkconf

9. Tworzymy plik strefy. Zamiast vps-admin.eu, wpisujemy nazwę swojej domeny, zamiast 2013011100, aktualną datę i numer poprawki w danym dniu (więcej na ten temat, w poprzedniej części), a zamiast 77.55.240.61, IP naszego VPS. Jeśli dodajemy kilka domen, polecenia, z tego i następnego punktu, wykonujemy dla każdej z nich.

nano /etc/bind/vps-admin.eu

Wklejamy poniższy tekst i zapisujemy plik.

$ORIGIN vps-admin.eu.
$TTL    12h
@       IN      SOA     ns1 dnsmaster 2013011100 12h 5m 10d 1h
        IN      NS      ns1
        IN      NS      ns2
        IN      A       77.55.240.61
*       IN      A       77.55.240.61

10. Sprawdzamy, czy plik strefy nie zawiera błędów. Tym razem, serwer powinien poinformować na że strefa została „załadowana”.

named-checkzone vps-admin.eu /etc/bind/vps-admin.eu

11. Startujemy serwer DNS i dodajemy go do „autostartu”.

/etc/init.d/bind9 start
update-rc.d bind9 defaults

12. Jeszcze raz sprawdzamy, czy wszystko działa.

dig @127.0.0.1 vps-admin.eu
dig @127.0.0.1 www.vps-admin.eu
dig @127.0.0.1 hskdjfhfhfks.vps-admin.eu

Dig powinien wyświetlić wynik podobny do tego:

root@e00:~# dig @127.0.0.1 vps-admin.eu

; <<>> DiG 9.7.3 <<>> @127.0.0.1 vps-admin.eu
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2556
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;vps-admin.eu.                  IN      A

;; ANSWER SECTION:
vps-admin.eu.           43200   IN      A       77.55.240.61

;; AUTHORITY SECTION:
vps-admin.eu.           43200   IN      NS      ns2.vps-admin.eu.
vps-admin.eu.           43200   IN      NS      ns1.vps-admin.eu.

;; ADDITIONAL SECTION:
ns1.vps-admin.eu.       43200   IN      A       77.55.240.61
ns2.vps-admin.eu.       43200   IN      A       77.55.240.61

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jan 11 02:00:27 2013
;; MSG SIZE  rcvd: 114

Teraz pozostaje na już tylko wydelegować domenę, w panelu u naszego dostawcy, na inne serwer DNS. Jako adresy serwerów podajemy: ns1.{NAZWA NASZEJ DOMENY}, oraz ns2.{NAZWA NASZEJ DOMENY}. Przy każdym adresie serwera podajemy adres IP naszego VPS. W moim przypadku będzie to:

  • ns1.vps-admin.eu - 77.55.240.61
  • ns2.vps-admin.eu - 77.55.240.61

Autor: Aleksander Kurczyk