Przewodnik Konfiguracji Lokalnego Serwera DNS BIND
Ten przewodnik pomoże Ci skonfigurować lokalny serwer DNS przy użyciu BIND9 do obsługi własnej domeny (np. mydomain.local) z obsługą rozwiązywania nazw w przód i wstecz.
Wymagania wstępne
-
System Ubuntu/Debian
-
Dostęp root lub sudo
-
Podstawowa znajomość koncepcji DNS
Instalacja
Zaktualizuj system i zainstaluj BIND9:
sudo apt update
sudo apt upgrade -y
sudo apt install bind9 bind9utils bind9-doc -y
Sprawdź status usługi BIND:
sudo systemctl status bind9
Konfiguracja
1. Konfiguracja stref lokalnych
Edytuj plik konfiguracji lokalnej:
sudo nano /etc/bind/named.conf.local
Dodaj następujące konfiguracje stref:
zone "mydomain.local" {
type master;
file "/etc/bind/zones/mydomain.local.zone";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "/etc/bind/zones/reverse.local.zone";
};
2. Tworzenie plików stref
Utwórz katalog na strefy:
sudo mkdir -p /etc/bind/zones
Plik strefy prostej (forward)
Utwórz i edytuj plik strefy prostej:
sudo nano /etc/bind/zones/mydomain.local.zone
Dodaj następującą konfigurację:
$TTL 86400
@ IN SOA ns1.mydomain.local. admin.mydomain.local. (
2025011401 ; Numer seryjny
3600 ; Odświeżanie
1800 ; Ponawianie
1209600 ; Wygaśnięcie
86400 ) ; Minimalny TTL
@ IN NS ns1.mydomain.local.
@ IN A 127.0.0.1
ns1 IN A 127.0.0.1
www IN A 127.0.0.1
app IN A 127.0.0.2
Plik strefy odwrotnej (reverse)
Utwórz i edytuj plik strefy odwrotnej:
sudo nano /etc/bind/zones/reverse.local.zone
Dodaj następującą konfigurację:
$TTL 86400
@ IN SOA ns1.mydomain.local. admin.mydomain.local. (
2025011401 ; Numer seryjny
3600 ; Odświeżanie
1800 ; Ponawianie
1209600 ; Wygaśnięcie
86400 ) ; Minimalny TTL
@ IN NS ns1.mydomain.local.
1 IN PTR ns1.mydomain.local.
1 IN PTR www.mydomain.local.
2 IN PTR app.mydomain.local.
3. Konfiguracja opcji BIND
Edytuj plik opcji:
sudo nano /etc/bind/named.conf.options
Dodaj następującą konfigurację:
options {
directory "/var/cache/bind";
recursion yes;
allow-query { localhost; };
forwarders {
8.8.8.8; // DNS Google
1.1.1.1; // DNS Cloudflare
};
dnssec-validation auto;
listen-on { 127.0.0.1; };
listen-on-v6 { ::1; };
};
Weryfikacja i testowanie
1. Sprawdź składnię konfiguracji
sudo named-checkconf
sudo named-checkzone mydomain.local /etc/bind/zones/mydomain.local.zone
sudo named-checkzone 0.0.127.in-addr.arpa /etc/bind/zones/reverse.local.zone
2. Zrestartuj usługę BIND
sudo systemctl restart bind9
3. Przetestuj rozwiązywanie DNS
Test wyszukiwania do przodu:
dig @127.0.0.1 www.mydomain.local
Test wyszukiwania wstecznego:
dig -x 127.0.0.1 @127.0.0.1
Rozwiązywanie problemów
- Sprawdź logi BIND:
sudo tail -f /var/log/syslog | grep named
- Sprawdź status usługi:
sudo systemctl status bind9
- Sprawdź uprawnienia plików stref:
sudo ls -l /etc/bind/zones/
Typowe problemy
-
Usługa nie uruchamia się: Sprawdź błędy składni w plikach konfiguracyjnych
-
Rozwiązywanie DNS nie działa: Sprawdź ustawienia zapory sieciowej i adresy nasłuchiwania BIND
-
Problemy z transferem stref: Sprawdź uprawnienia plików i składnię plików stref
Aspekty bezpieczeństwa
-
Ogranicz transfery stref do zaufanych serwerów
-
Skonfiguruj odpowiednie listy kontroli dostępu w
allow-query
-
Aktualizuj BIND o najnowsze poprawki bezpieczeństwa
-
Użyj DNSSEC dla zwiększonego bezpieczeństwa