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.