[Bind9] Jak stworzyć własną strefę DNS dla domeny

W dzisiejszym poradniku pokażę jak stworzyć własną strefę DNS dla domeny internetowej (tzw. nameserver). Wiele osób posiada strefę DNS dla swojej domeny w takich serwisach jak cloudflare ale jak z jakiś powodów chcemy aby strefa DNS była na VPS’ie to poradnik jest dla Ciebie.

Aby zrobić własną strefę DNS potrzebujemy:

  • Domenę internetową
  • Serwer dedykowany/VPS
  • Trochę wolnego czasu

Na potrzeby poradnika zamówiłem darmową domenę z freenom.com. Aby stworzyć swój serwer nazw trzeba będzie dodać rekord glue. W freenom da się to zrobić z poziomu panelu, w przypadku niektórych rejestratorów to dopiero po kontakcie z supportem.

1. Instalacja:
Na początku trzeba zainstalować wymagany program, będzie to tylko bind9 , instalujemy bind9 poleceniem:

apt install bind9

2. Tworzenie rekordu glue:
Aby móc przekierować domenę na naszą strefę DNS to trzeba stworzyć rekord glue. W freenom wchodzimy w zakładkę Services, wybieramy My Domains i obok naszej domeny klikamy przycisk Manage domain. Następnie jest zakładka Management Tools i ją rozwijamy i wybieramy pozycję Register glue records. W polu hostname wpisujemy adres pierwszego serwera NS, np. ns1 a w polu IP Address wpisujemy adres IP naszego serwera VPS na którym będzie strefa DNS. Po zapisaniu rekordu tworzymy drugi rekord i nadajemy mu inną nazwę niż temu pierwszemu np. ns2 i wpisujemy ten sam adres IP co wyżej a następnie zapisujemy.
Mniej więcej powinno wyglądać to tak:

Potem klikamy przycisk Back i rozwijamy zakładkę Management Tools i wybieramy pozycję Nameservers, wybieramy Use custom nameserver i wpisujemy adresy które zostały zdefiniowane w rekordach glue. (Przyjmijmy że stworzyliśmy dwa rekordy glue o nazwie ns1 i ns2 czyli wpisujemy np. ns1.domena-testowa.ml i ns2.domena-testowa.ml).

3. Konfiguracja strefy DNS:
Jak stworzyliśmy rekord glue i ustawiliśmy serwery nazw to możemy zacząć tworzyć strefę DNS. Poleceniem

cd /etc/bind

przechodzimy do katalogu bind9. Teraz edytujemy plik o nazwie named.conf i dodajemy do jego strefę (ang. zone) Do pliku dodajemy następującą treść (domena-testowa.ml zastępujemy swoją domeną).

zone “domena-testowa.ml” IN {
type master;
file “/etc/bind/domena-testowa.ml.dns”;
};

file to lokalizacja pliku gdzie będą znajdować się rekordy DNS. Można tutaj ustawić inną lokalizację.
Zapisujemy plik named.conf i zamykamy.

4. Tworzenie rekordów DNS:
Teraz tworzymy plik w którym będą rekordy DNS dla naszej domeny. Lokalizacja pliku musi być taka sama jaka została podana w punkcie powyższym w zmiennej file. W moim przypadku to będzie /etc/bind/domena-testowa.ml.dns. Więc przy pomocy edytora nano (Lub innego) tworzymy i edytujemy ten plik:

nano /etc/bind/domena-testowa.ml.dns

Do pliku dodajemy wartość $TTL oraz rekord SOA. Plik powinien wyglądać mniej więcej w taki sposób (domena-testowa.ml należy zastąpić nazwą swojej domeny).
https://pastebin.com/2efpDKNc

$TTL 3600

domena-testowa.ml. IN SOA ns1.domena-testowa.ml. ns2.domena-testowa.ml. (
000000001 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
300) ; Negative Cache TTL
;
domena-testowa.ml. IN NS ns1.domena-testowa.ml.
domena-testowa.ml. IN NS ns2.domena-testowa.ml.
ns1.domena-testowa.ml. IN A [Adres IP VPS]
ns2.domena-testowa.ml. IN A [Adres IP VPS]

Zmienna Serial to jest numer seryjny rekordu DNS. Jeżeli wprowadzimy zmiany w strefie DNS i chcemy aby te zmiany były od razu zatwierdzone to zmieniamy wartość Serial na jakąkolwiek inną (Zawsze zmienna Serial musi mieć 10 cyfr).

Po utworzeniu rekordu SOA i NS możemy dodawać własne rekordy. Jeżeli chcemy wykonać przekierowanie do naszego serwera to dodajemy rekord A np.

domena-testowa.ml. IN A [Adres IP]

Trzeba pamiętać aby zawsze na końcu nazwy domeny dodać kropkę.

5. Restart serwera DNS:
Aby zatwierdzić zmiany należy wykonać polecenie:

rndc reload

lub

service bind9 restart

Aby móc nawiązać połączenie z serwerem DNS a mamy firewalla to trzeba dodać odpowiedni rekord do zapory sieciowej poleceniem:

ufw allow bind9

Z mojej strony to wszystko, mam nadzieję że w jakiś sposób pomogłem.

6lajków

Poradnik fajny, ale mogłeś również dać kod z pastebina tutaj, żeby nie musieć niepotrzebnie otwierać kolejnej karty.

2lajki