Przewodniki

Jak dodac wtorny DNS do panelu hostingowego DirectAdmin

Dlaczego Twoj serwer DirectAdmin potrzebuje wtornego DNS

Wtórny serwer DNS dla DirectAdmin — usługa wtórnego DNS przez REST API

DirectAdmin zazwyczaj uzywa BIND (named) lub PowerDNS jako serwera DNS. Domyslnie wszystkie domeny polegaja na jednym serwerze nazw. Jesli ten serwer zawiedzie — podczas konserwacji, awarii sprzetu lub ataku DDoS — kazda domena staje sie nieosiagalna. Odwiedzajacy otrzymuja bledy rozwiazywania nazw DNS, poczta przestaje byc dostarczana, a uslugi przekraczaja limity czasu oczekiwania.

Wtorny serwer DNS utrzymuje zsynchronizowana kopie wszystkich stref przez AXFR (autorytatywny transfer strefy). Gdy serwer glowny jest niedostepny, wtorny nadal odpowiada na zapytania DNS dla Twoich domen. Twoje strony internetowe, poczta i uslugi dzialaja dalej.

Wiekszosc rejestratorow wymaga co najmniej dwoch serwerow nazw, a RFC 2182 zaleca trzy dla srodowisk produkcyjnych. Dodanie wtornego DNS to nie tylko dobra praktyka — to warunek niezawodnosci w srodowisku produkcyjnym.

Nie masz jeszcze wtórnego serwera nazw? SecondDNS udostępnia go w bezpłatnym 3-miesięcznym okresie próbnym, bez karty — zacznij tutaj, a potem wykonaj kroki poniżej.

Jak dziala DNS w DirectAdmin

DirectAdmin obsluguje dwa backendy DNS: BIND (named) i PowerDNS. Konfiguruje sie je inaczej.

BIND (named): Strefy sa przechowywane jako pliki stref tekstowych w /etc/named/ lub /var/named/. Transfery stref konfiguruje sie w named.conf: allow-transfer nadaje serwerowi wtornemu uprawnienie do pobrania strefy, a also-notify sprawia, ze BIND wysyla NOTIFY, aby serwer wtorny od razu sie zaktualizowal. To tradycyjne podejscie opisywane w wiekszosci poradnikow.

PowerDNS: Dane DNS sa przechowywane w backendzie bazy danych. Transfery sa kontrolowane przez allow-axfr-ips w pdns.conf. Instalator SecondDNS automatycznie wykrywa, ktorego backendu uzywa Twoj serwer, i konfiguruje odpowiednie dyrektywy.

W obu przypadkach DirectAdmin zarzadza DNS przez skrypty hook. Gdy tworzysz lub usuwasz domene, DirectAdmin wywoluje skrypty w /usr/local/directadmin/scripts/custom/. Integracja SecondDNS instaluje wlasne skrypty Hook w tej lokalizacji, ktore automatycznie rejestruja i wyrejestrowuja strefy — nie musisz zarzadzac strefami recznie.

Jak działa integracja wtórnego DNS

Integracja SecondDNS dla DirectAdmin uzywa skryptow Hook, ktore DirectAdmin wywoluje automatycznie w reakcji na zdarzenia DNS:

1. Gdy tworzysz domene lub domain pointer — Hook rejestruje strefe w SecondDNS przez API 2. SecondDNS pobiera pelna kopie strefy z Twojego serwera przez AXFR 3. Gdy usuwasz domene — hook usuwa ja z SecondDNS

Wszystkie zmiany stref rozchodza sie automatycznie dzieki mechanizmowi NOTIFY w BIND/PowerDNS. Zadnych recznych krokow, zadan crona ani przestarzalych rekordow.

Wymagania wtórnego DNS dla DirectAdmin

Zanim zaczniesz, upewnij sie, ze masz:

- DirectAdmin 1.6 lub nowszy z BIND/named lub PowerDNS - Dostep root (sudo) do serwera - Klucz API SecondDNS (na seconddns.com/dashboard/api-key) - IP Twojego serwera nazw SecondDNS (w panelu pod Settings > Nameservers) - Port TCP 53 otwarty na polaczenia przychodzace z IP serwera SecondDNS

Protokol transferu stref AXFR uzywa portu TCP 53, a nie UDP. Wiele konfiguracji zapory sieciowej otwiera tylko UDP 53 dla zwyklych zapytan DNS. Jesli TCP 53 jest zablokowany, transfery stref beda zawodzic bez ostrzezenia, nawet jesli normalne rozwiazywanie nazw DNS dziala.

Otwórz port TCP 53 dla transferów stref DNS

Przed uruchomieniem instalatora otworz port TCP 53 dla serwera SecondDNS. Znajdz IP w panelu pod Settings > Nameservers i zastap SECONDARY_IP w poleceniach.

Jesli uzywasz UFW:

ufw allow from SECONDARY_IP to any port 53 proto tcp
ufw reload

Jesli uzywasz iptables:

iptables -I INPUT -s SECONDARY_IP -p tcp --dport 53 -j ACCEPT

Jesli uzywasz nftables:

nft add rule inet filter input ip saddr SECONDARY_IP tcp dport 53 accept

Aby sprawdzic czy port TCP 53 jest osiagalny z zewnatrz:

nmap -p 53 -sT YOUR_SERVER_IP

Instalator automatycznie konfiguruje allow-transfer (BIND) lub allow-axfr-ips (PowerDNS) na Twoj IP SecondDNS po podaniu klucza API.

Zainstaluj wtórny DNS na DirectAdmin

Uruchom jako root:

curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/directadmin/install.sh | bash -s -- --api-key=YOUR_API_KEY

Instalator: - Weryfikuje klucz API przez API SecondDNS - Wykrywa IP serwera (IPv4 i IPv6) - Pyta, ktorego protokolu uzyc, jesli oba sa dostepne - Wykrywa backend DNS (BIND lub PowerDNS) - Konfiguruje transfery stref automatycznie (allow-transfer nadaje uprawnienie, also-notify wlacza NOTIFY dla BIND; allow-axfr-ips dla PowerDNS) - Instaluje skrypty hook w /usr/local/directadmin/scripts/custom/ - Proponuje synchronizacje istniejacych domen

Zastap YOUR_API_KEY kluczem z Twojego panelu SecondDNS. Instalator zwraca niezerowy kod wyjścia, jeśli któryś z kroków się nie powiedzie.

Skonfiguruj serwery nazw w DirectAdmin

Po instalacji zarejestruj wtorny serwer nazw w DirectAdmin.

Opcja 1: Przez panel DirectAdmin (zalecane) Zaloguj sie jako Admin → Server Manager → Name Servers. Ustaw NS2 na hostname Twojego serwera nazw SecondDNS (w panelu pod Settings > Nameservers). Z dodatkiem Personalized NS uzyj swojego brandowanego hostname (np. ns2.yourdomain.com). Ustawienie jest automatycznie stosowane do wszystkich nowych domen.

Opcja 2: Edycja szablonu DNS bezposrednio

vi /usr/local/directadmin/data/templates/custom/dns_zone.conf

Jesli katalog nie istnieje, utworz go:

mkdir -p /usr/local/directadmin/data/templates/custom
cp /usr/local/directadmin/data/templates/dns_zone.conf /usr/local/directadmin/data/templates/custom/

Dodaj rekord NS wskazujacy na hostname Twojego serwera nazw SecondDNS. Dla istniejacych domen skorzystaj z menedzera DNS w DirectAdmin lub z funkcji masowej aktualizacji DNS.

Zsynchronizuj istniejące domeny z wtórnym DNS

Jesli mialesz domeny w DirectAdmin przed instalacja, zsynchronizuj je z serwerem wtornym:

seconddns sync

Polecenie porownuje Twoje lokalne strefy z SecondDNS i dodaje brakujace. Domeny usuniete lokalnie sa usuwane z serwera wtornego. Polecenie jest idempotentne — można je uruchamiać wielokrotnie bez tworzenia duplikatów.

Aby sprawdzic konkretna strefe:

seconddns status example.com

Aby wylistowac wszystkie strefy na serwerze wtornym:

seconddns list

Zweryfikuj konfigurację wtórnego DNS w DirectAdmin

Utworz testowa domene w DirectAdmin i obserwuj log skryptow Hook:

tail -f /var/log/seconddns.log

Powinienes zobaczyc:

Zone created: testdomain.com (caller=create:domain, user=admin)
[+] Zone testdomain.com added to SecondDNS

Nastepnie odpytaj oba serwery nazw. Zastap SECONDARY_IP IP Twojego serwera nazw z panelu:

dig @YOUR_SERVER_IP testdomain.com SOA +short
dig @SECONDARY_IP testdomain.com SOA +short

Oba powinny zwracac ten sam numer seryjny SOA w formacie YYYYMMDDNN. Jesli serwer wtorny pokazuje nizszy numer lub zwraca SERVFAIL, sprawdz dostep do portu TCP 53 i log skryptow Hook.

Obslugiwane typy domen

Integracja obsluguje wszystkie typy domen DirectAdmin:

- Domeny glowne (create:domain) - Strefy DNS (create:zone) - Domain pointer (create:pointer)

Kazdy typ automatycznie uruchamia skrypt Hook przy tworzeniu lub usuwaniu przez panel albo API DirectAdmin. Hook otrzymuje nazwe domeny, nazwe uzytkownika i typ wywolania (caller) od DirectAdmin i przekazuje je do SecondDNS.

Rozwiązywanie problemów z wtórnym DNS w DirectAdmin

Strefa nie pojawia sie na serwerze wtornym Sprawdz log hookow /var/log/seconddns.log. Upewnij sie ze hooki są zainstalowane i mają ustawiony bit wykonywalności:

ls -la /usr/local/directadmin/scripts/custom/dns_*_post.sh

Jesli brakuje plikow, uruchom instalator ponownie. Jesli istnieja ale nie mają ustawionego bitu wykonywalności:

chmod +x /usr/local/directadmin/scripts/custom/dns_*_post.sh

AXFR odrzucony (BIND) Sprawdz named.conf dla allow-transfer z IP SecondDNS:

grep -A3 'allow-transfer' /etc/named.conf

Zmiana allow-transfer to zmiana konfiguracji; wprowadz ja poleceniem reconfig (rndc reload tylko ponownie wczytuje dane stref):

rndc reconfig

AXFR odrzucony (PowerDNS) Sprawdz allow-axfr-ips w pdns.conf:

grep allow-axfr-ips /etc/pdns/pdns.conf

Po zmianach zrestartuj PowerDNS:

systemctl restart pdns

Port TCP 53 zablokowany Uruchom test nmap z sekcji zapory. Uzytkownicy CSF: sprawdz, czy IP SecondDNS jest w /etc/csf/csf.allow.

Testowanie hooka recznie:

domain=example.com username=admin caller=create:domain /usr/local/directadmin/scripts/custom/dns_create_post.sh

Hook nie jest wyzwalany Sprawdz, czy system skryptow Hook w DirectAdmin jest wlaczony. W starszych wersjach moze byc konieczne reczne wlaczenie katalogu skryptow niestandardowych.

Deinstalacja

Aby usunac integracje:

curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/directadmin/uninstall.sh | bash

Usuwa skrypty Hook i plik konfiguracyjny. Strefy na serwerze wtornym nie sa usuwane automatycznie — usun je przez panel SecondDNS lub uruchom:

seconddns remove-all

przed deinstalacja, jesli chcesz wyczyscic serwer wtorny.