Jak skonfigurować serwer DNS na Debian

Jak skonfigurować serwer DNS na Debian

Co to jest DNS?

DNS lub system nazwy domeny to system, który tłumaczy nazwę domeny na odpowiedni adres IP. Na przykład, kiedy wpiszesz www.przykład.com w przeglądarce mapuje się na adres IP konkretnego serwera WWW w Internecie. Ułatwia to ludziom zapamiętanie serwerów, aplikacji lub innych urządzeń podłączonych do Internetu bez konieczności zapamiętywania ich adresów IP.

DNS to hierarchiczny system rozproszonej bazy danych. Ma strukturę przypominającą drzewo z węzłami ułożonymi w warstwy zwane domenami. Każda domena wskazuje na węzeł pewnego poziomu niższy niż sam. W DNS domeny te są zdefiniowane jako subdomeny, a każda z nich mieszka na swoim własnym serwerze DNS, albo Master DNS lub pierwotnym DNS, który zawiera rekordy dla wszystkich adresów IP i nazw hostów w strefie domeny.

Może istnieć wiele wtórnych serwerów DNS, które zawierają aktualną kopię informacji zawartych w odpowiednich serwerach Master DNS. Oprócz rozstrzygania zapytań za pomocą tych lustrzanych danych, wtórne serwery DNS zapewniają również tolerancję błędów w przypadku, gdy główny mistrz upadł, odpowiadając na pytania, czekając na odpowiedzi od głównego mistrza.

Zapytania są przetwarzane przez rekurencyjne serwery DNS w oparciu o informacje w pamięci podręcznej w połączeniu z szczegółami serwera nazw rekurencyjnych /etc/resolv.plik CONF. System nazwy domeny jest kluczowym elementem architektury Internetu i jest niezbędny dla komputerów sieciowych, które dziś nazywamy „Internetem”.

Parametry konfiguracji DNS można edytować za pomocą „kopać”Narzędzie lub edycja plików strefy bezpośrednio. Edycja plików strefy nie jest wskazane, ponieważ błąd może spowodować niedostępność strony, choć byłoby to rzadkie zjawisko. Jeśli nie masz pewności, co robisz, użyj wykopaliska zamiast tego, gdy to możliwe. Niektóre pakiety domeny internetowej Bind lub Berkeley są wyposażone w „Dnsutils" I "gospodarz”, Które są używane do zapytania serwerów DNS i drukowania wyników. W większości systemów UNIX dostępnych jest również narzędzie NSlookup, które można wykorzystać do podobnych celów. Jednak „wykop” jest zwykle bardziej niezawodny niż oba te narzędzia.

Jak działa DNS?

DNS działa jako system hierarchiczny, zaczynając od rdzenia domeny. Na przykład, jeśli wpiszesz www.przykład.com W przeglądarce prosi lokalnego serwera DNS o te informacje. Kiedy go nie ma, ponieważ nie jest autorytatywny dla tej domeny, przekazuje zapytanie do jednego z jego wyżej rekurencyjnych serwerów DNS. Te serwery najpierw sprawdzą swoją pamięć podręczną przed skontaktowaniem się ze wszystkimi autorytatywnymi serwerami nazw odpowiedziami bezpośrednio za domenę „przykładową”, dopóki nie dowiedzą się, które DNS ma te dane i odsyła je do komputera klienckiego z adresem IP dla tej domeny.

Jak widać, każda domena lub subdomena ma swój własny autorytatywny serwer nazw i jest odpowiedzialny za rozwiązywanie zapytań tylko dla tej subdomeny. Dlatego serwer DNS powinien mieć wszystkie informacje, aby odpowiedzieć na każde zapytanie dotyczące konkretnej domeny. Więc jeśli "przykład.com”Nie jest główną domeną lokalnych serwerów DNS, wtedy nie będzie w stanie rozwiązać zapytań dla www.przykład.com bez przekazania go najpierw w górę.

Notatka: W miarę możliwości skonfiguruj różne serwery nazw dla każdej subdomeny, ponieważ każda z nich wymaga osobnych procedur konserwacji i administracyjnych. W ten sposób DNS zaprojektowano na początku, gdy protokoły TCP/IP zostały wydane w 1983 roku przed wynalezieniem systemu nazw domeny. Zostało to zrobione później po utworzeniu usług rejestracji inninowych w 1992 roku. Subdomeny zostały wprowadzone jako rozszerzenie protokołu DNS i było ono przeznaczone wyłącznie do celów administracyjnych.

Ilekroć serwer DNS odbiera zapytanie od klienta, najpierw sprawdza pamięć podręczną, aby sprawdzić, czy wszystkie niezbędne rekordy są obecne. Jeśli nie znaleziono żadnych rekordów lub nie są wystarczająco świeże, to wykonuje następujące zapytania rekurencyjne:

Jeśli jest to zapytanie internetowe (in), to rozwiąże nazwy hosta zaczynające się u podstaw domeny i działające w dół przez każdą domenę nadrzędną, dopóki nie dotrze do autorytatywnych serwerów dla tej strefy. To się nazywa "zaczynając od góry„I zwykle odbywa się to najpierw, ponieważ wymazują serwery odpowiedzialne za TLD (.com, .netto itp.) mają szybsze prędkości połączenia o większej przepustowości niż te dla domen drugiego poziomu, E.G., "przykład". Podczas pracy Twój lokalny serwer DNS bierze pod uwagę, czy może zaufać reakcji swoich serwerów DNS na górze. Jeśli nie masz dostępu do /etc /hosts lub /etc /detcv.Plik CONF i serwery DNS używane przez twojego dostawcę usług internetowych buforują swoje odpowiedzi, a następnie szanse na rejestrowanie większości ruchu sieciowego. Zatem może to stanowić zagrożenie bezpieczeństwa, a jeśli nie, zapyta serwery rekurencyjne bezpośrednio o te dane. To się nazywa "zaczynając od dołu”Ponieważ serwery nazw odpowiedzialne za domeny drugiego poziomu mają wolniejsze prędkości połączenia o mniejszej przepustowości niż te dla domen najwyższego poziomu.

Cały ten proces jest powtarzany iteracyjnie, aż:

  1. Nieautoryczny serwer z nazwami odpowiada na zapytanie, mówiąc, że nie zna żądanych informacji.
  2. Serwer nazw znajduje, co myśli, jest autorytatywną odpowiedzią na zapytanie i odsyła ją z powrotem do komputera klienta.
  3. Liczba iteracji wstępnie skonfigurowana w pamięci podręcznej nazwy Resolver wygasa.

Ten samouczek przeprowadzi Cię przez sposób skonfigurowania własnego wewnętrznego serwera DNS na Debian. Do tego używamy oprogramowania serwera nazw (BIND9).

Co to jest BIND9?

Bind (domena nazwy Internetu Berkeley) jest wdrożeniem Protokół DNS. W Wiązać 9, Wprowadzono kilka głównych ulepszeń, w tym obsługa IPv6, znacznie bardziej elastyczna konfiguracja i kontrola, poprawa wydajności buforowania, Wsparcie EDNS0 W przypadku większych odpowiedzi UDP i lepszego zarządzania nad dynamicznie przypisanymi adresami IP.

WIĄZAĆ to najczęściej używane oprogramowanie serwerowe w Internecie. Obsługuje szereg różnych protokołów usług nazwy domeny, w tym Bind4 (oryginalna domena nazwy internetowej Berkeley, wersja 4), Bind8 (następca historyczny do Bind4) i DNS Services for IPv6 Poprzez dwie osobne implementacje: jedna oparta na demona, a druga nazywana LWRES (Lekki rozdzielczość).

Wiązać 9.5 jest aktualną stabilną wersją BIND i jest dostępna do pobrania zarówno w formie źródłowej, jak i binarnej z Konsorcjum oprogramowania internetowego.

Wymagania wstępne

Zanim zaczniemy od procesu instalacji serwera DNS na Debian, musisz zadać sobie pytanie: „Czy naprawdę potrzebuję serwera DNS?"

Ten artykuł koncentruje się tylko na IPv4, więc jeśli jesteś zainteresowany użyciem DNS dla IPv6, Należy wykonać więcej pracy. Ten przewodnik nie pomoże już w tematach, takich jak dodanie rekordów AAAA ręcznie itp.

Do testowania kroków w tym przewodniku potrzebna jest nowa instalacja serwera Debiana. Niektóre z użytych tutaj poleceń mogą być różne dla twojego przypadku, a różnice te zostaną wskazane w stosownych przypadkach.

Ten przewodnik zakłada, że ​​masz pracę Sieć IPv4 i wiedza, aby właściwie skonfigurować statyczne adresy IP na komputerach klienckich.

A Użytkownik sudo a zapora powinna być już skonfigurowana w twoim systemie.

Rozpoczęcie pracy

Aktualizacja systemu

Proces instalacji jest dość prosty, ale zobaczmy go szczegółowo. Po pierwsze, musisz upewnić się, że system ma zainstalowane i aktualne pakiety, używając następującego polecenia:

sudo apt-get aktualizacja && sudo apt-get Upgrade -y

Flaga -y automatycznie odpowie na wszystkie potwierdzenia, które można zapytać.

Polecenie aktualizacji apt-get zaktualizuje listy pakietów serwera. Korzystając z polecenia aktualizacji Apt-Get, wszystkie zainstalowane na nim pakiety zostaną zaktualizowane.

Zajmie to trochę czasu w zależności od prędkości połączenia sieciowego i liczby aktualizacji do zainstalowania.

Przykładowy wyjście:

Instalowanie BIND9

Teraz, gdy twój system jest aktualny, możesz kontynuować instalację Serwer DNS - BIND. Zostanie to zrobione, instalując kilka nowych pakietów:

sudo apt instint bind9 bind9Utils BIND9-DOC

Polecenie powyżej zainstaluje Bind9 oraz dwa pakiety pomocnicze, które zawierają wymagane pliki do prawidłowego funkcjonowania serwera DNS.

BIND9 to oprogramowanie DNS Server.

Bind9Utils to narzędzia do zarządzania Powiązać konfigurację i są nazwani poleceniem używanym do kontrolowania WIĄZAĆ z wiersza poleceń.

Notatka: BIND9-DOC to pakiet dokumentacyjny dla Oprogramowanie do wiązania.

Przykładowy wyjście:

Instalowanie serwera DNS

Po zakończeniu instalacji możesz sprawdzić, czy wszystkie pakiety zostały pomyślnie zainstalowane, uruchamiając następujące polecenie:

nazwany -v

Pokazanie powyżej wyświetli zainstalowaną wersję BIND i jej zależności.

Przykładowy wyjście:

Bind zaczyna się automatycznie po zainstalowaniu. Sprawdzasz jego status za pomocą polecenia SystemCtl w następujący sposób:

SUDO SystemCTL Status BIND9

Powyższe polecenie poda bardziej szczegółowy widok funkcji BIND na serwerze, takie jak czas aktywny, liczba stref itp.

Otrzymasz coś podobnego do następującego wyjścia:

Przykładowy wyjście:


Jeśli kiedykolwiek chcesz zacząć, zatrzymać lub ponownie uruchomić powiązanie, po prostu uruchom poniższe polecenia:

Sudo Service Bind9 Start
Sudo Service Bind9 Stop
Sudo Service Bind9 restart

Serwer BIND będzie działał jako użytkownik i grupa BIND domyślnie. To sprawia, że ​​jest rozsądnie bezpieczny, ponieważ wszelkie zmiany w plikach strefy są dozwolone tylko dla tego użytkownika. Serwer BIND słucha domyślnie w porcie 53 dla zapytań DNS. Możesz zmienić ten port w o imieniu.plik CONF Jeśli lubisz. Uruchom następujące polecenie, aby zobaczyć, który port Twój serwer BIND słucha:

sudo netstat -lnptu | Grep nazwany

Przykładowy wyjście:

Powyższe polecenie pokazuje, że nazwany demon jest obecnie uruchamiany i słuchał na porcie 53 UDP. Użyj tych informacji, aby sprawdzić, czy używasz odpowiedniego numeru portu.

Jeśli Twój serwer nie korzysta z portu 53, możesz to naprawić, edytując /etc/bind/nazwane.conf.lokalny i zmiana numeru portu na wszystko, co chcesz. Możesz także zmienić nazwę pliku dziennika serwera, edytując /etc/bind/nazwane.conf.strefy Default i dodanie instrukcji rejestrowania w ramach dyrektywy opcji.

Konfigurowanie BIND9

Teraz, kiedy masz BIND9 zainstalowany Na twoim serwerze nadszedł czas, aby rozpocząć konfigurację.

Katalog konfiguracyjny dla WIĄZAĆ znajduje się pod /etc/wiązanie. W tym katalogu znajdują się kilka ważnych plików:

Plik nazwany 'o imieniu.conf„to główny plik konfiguracyjny, który ma wiele komentarzy do wyjaśnienia każdej sekcji.

Następny plik konfiguracyjny, który będziemy edytować, znajduje się w /etc/bind/nazwane.conf.lokalny. Ten plik zawiera wszystkie informacje sieciowe dotyczące serwera i stref, które chcesz rozwiązać lokalnie (z serwerów nazw).

o imieniu.conf.strefy Default znajduje się przy /etc/bind/nazwane.conf.strefy Default. Ten plik zawiera informacje o strefach serwerów używanych przez Bind, gdy nie jest wyraźnie powiedziany o użyciu innej strefy. Innymi słowy, strefy, które są włączone.

Więc zacznijmy od podstawowej konfiguracji.

Przykładowy wyjście:

Domyślnie BIND jest skonfigurowany tak, aby służył tylko lokalizacji. Oznacza to, że każde żądanie pochodzi spoza twojego serwera, zostanie odrzucone przez samodzielne, chyba że masz je prawidłowo skonfigurowane.

Jeśli próbowałeś uzyskać dostęp do witryny hostowanej, na przykład „154.54.55.56 ”adres IP, co by się stało? Odpowiedź jest prosta: wszystkie żądania pozostałyby bez odpowiedzi, ponieważ dla „154.54.55.56 ”Adres IP w Bind9, a demon„ nazwany ”odmówił obsługi wszelkich żądań DNS spoza interfejsu sieciowego.

Najpierw ustawimy serwer DNS, aby słuchał wszystkich adresów IP, aby wysłać żądania na serwer DNS z różnych miejsc: z serwera, z innej sieci lub podczas korzystania z Internetu.

Zróbmy to, edytując nazwane.conf.Plik konfiguracyjny opcji:

CD /etc /wiązanie
Sudo Nano nazwany.conf.opcje
Zastąpmy słuchanie 127.0.0.1;;
przez
Listen-on any;;
Listen-on-v6 any;

Zapisz i zamknij plik po zakończeniu. Następnie uruchom ponownie demon Bind9 z poniższym poleceniem:

Sudo Service Bind9 restart

Teraz umożliwiliśmy Bind9 słuchanie wszystkich interfejsów.

Przykładowy wyjście:

Tworzenie stref wyszukiwania do przodu (domena -> ip)

Strefy wyszukiwania do przodu to najczęstszy rodzaj plików stref. Mapują nazwę domeny na adres IP i są używane w rozwiązywaniu nazw domen na adresy IP dla wiadomości e -mail, stron internetowych itp. Następnym krokiem jest utworzenie pliku strefy wyszukiwania do przodu.

Edytujemy „/etc/bind/nazwane.conf.lokalny”Plik do zadeklarowania strefy do przodu. W wyłącznym celu tego samouczka ogłosimy domenę o nazwie „Linuxhint.com”I wskazuj publiczny adres IP serwera, który jest jawnie używany do hostowania zewnętrznych stron internetowych na Linuxhint.domena com.

Notatka: Na serwerze należy ustawić prawidłowy adres IP dostępny przez Internet, jeśli planujesz rozwiązywać domeny zewnętrzne z sieci.

Teraz edytujemy „/etc/bind/nazwane.conf.lokalny„Plik do zadeklarowania strefy wyszukiwania przedniej:

Sudo Nano nazwany.conf.lokalny

Dodaj następujące podsumowanie pliku:

strefa „Linuxhint.com "
Typ Master;
plik "/etc/bind/db.Linuxhint.com ";
// Zezwalaj na transfer xxx.xxx.xxx.xxx;; // Wtórny serwer DNS Hoster
;

W tym kontekście:

Typ "gospodarz". To jest plik stref domeny głównej. Parametr typu można ustawić na „niewolnik„Jeśli organizujesz strefę do przodu lub do tyłu autorytatywną i nie chcesz dopuszczać dynamicznych aktualizacji.

„„/etc/bind/db.Domaine.com”To plik zawierający rekordy domeny„Linuxhint.com”Z pełną ścieżką.

Zezwalaj na transfer xxx.xxx.xxx.xxx;. Jest to wymagane, aby umożliwić przeniesienie strefy do wtórnego serwera DNS Hoster, ponieważ jeśli dostawca hostingów nie pozwala na to, nie możesz go zaktualizować online za pomocą polecenia ”RNDC RELOOD„Na Localhost. xxx.xxx.xxx.xxx; Adres IP wtórnego serwera DNS (serwery nazw), który jest hostowany przez dostawcę hostingów.

Zapisz i zamknij plik po zakończeniu.

Przykładowy wyjście:


Teraz utworzymy plik dla każdej strefy zadeklarowanej powyżej:

sudo nano db.Linuxhint.com

Wypełnij plik następującymi:

;
; ZOSTAŁ PLID DANYCH dla lokalnego interfejsu pętli
;
$ TTL 604800
@ W SOA NS1.Linuxhint.lokalny. źródło.Linuxhint.lokalny. (
2; Seryjny
604800; Odświeżać
86400; Spróbować ponownie
2419200; Wygasać
604800); Negatywna pamięć podręczna TTL
;
; Komentarz poniżej trzech wierszy
;@ In ns localhost.
;@ W 127.0.0.1
;@ W aaaa :: 1
; Informacje o serwerze nazwy
@ In ns ns1.Linuxhint.lokalny.
; Adres IP serwera nazw
NS1 w 192.168.0.10
; Wymiennik poczty
Linuxhint.lokalny. W MX 10 Mail.Linuxhint.lokalny.
; A - Nazwa hosta na adres adres IP
www w 192.168.0.100
Poczta w 192.168.0.150
; Rekord CNAME
FTP w CNAME www.Linuxhint.lokalny.

W tym pliku zastąp wartości Linuxhint na nazwę domeny, a następnie kropkę (.) Jest to konieczne i nie jest to błąd.

Zamień „192.168.0 ”z publicznym adresem IP, a następnie kropką (.) Jest to wymagane, aby serwer był dostępny z Internetu.

Pamiętaj, aby zapisać i zamknąć plik po zakończeniu.

Tworzenie stref wyszukiwania odwrotnego (IP -> Domena)

Odwrotne strefy wyszukiwania służą do mapowania adresu IP na nazwę domeny i są ogólnie wymagane do wysyłania e-maila. Następnym krokiem jest utworzenie pliku strefy odwrotnej.

Nazwa strefy odwrotnej składa się z identyfikatora sieci (odwróconego), a następnie „.w addr.Arpa".

Na przykład:

Jeśli serwer ma adres IP ”20.30.40.50„Jego identyfikatorem sieci będzie”20.30.40„A nazwa strefy odwrotnej brzmi„40.30.20.w addr.Arpa".

Jeśli serwer ma adres IP ”191.169.10.50„Jego identyfikatorem sieci będzie”191.169.10„A nazwa strefy odwrotnej brzmi„10.169.191.w addr.Arpa".

Teraz edytujemy „/etc/bind/nazwane.conf.lokalny„Plik do deklarowania strefy odwrotnej:

sudo nano/etc/bind/nazwa.conf.lokalny

Następnie dodaj następujące do pliku:

strefa ”40.30.20.w addr.arpa "
Typ Master;
Powiadom nie;
plik "/etc/bind/db.10 ”;
;

Następnie utworzymy plik dla strefy zadeklarowanej powyżej:

sudo nano db.10

Następnie wypełnij plik następującymi:

;
; Powiązaj odwrotny plik danych dla lokalnego interfejsu pętli
;
$ TTL 604800
@ W SOA Linuxhint.lokalny. źródło.Linuxhint.lokalny. (
2; Seryjny
604800; Odświeżać
86400; Spróbować ponownie
2419200; Wygasać
604800); Negatywna pamięć podręczna TTL
;
;@ In ns localhost.
; 1.0.0 w Ptr Localhost.
; Informacje o serwerze nazwy
@ In ns ns1.Linuxhint.lokalny.
; Odwrotne wyszukiwanie serwera nazwisk
10 w ptr ns1.Linuxhint.lokalny.
; PTR nagraj adres IP do nazwy hosta
100 w ptr www.Linuxhint.lokalny.
150 w poczty ptr.Linuxhint.lokalny.
# Koniec pliku

Sprawdzanie składni konfiguracji powiązania

Teraz sprawdzimy składnię konfiguracji w każdym pliku pod kątem błędów. Aby to zrobić, będziemy mieli zapytanie z następującym poleceniem:

sudo o nazwie-Checkconf

Jeśli nie ma błędów, to polecenie powróci do pustej powłoki:

Przykładowy wyjście:

Wniosek

DNS jest jedną z najważniejszych usług na serwerze. Wszyscy go używają. Wszyscy tego potrzebują, a ostatecznie nie chcesz, aby Twoje maszyny zgubiły się w sieci, ponieważ nie mogą się znaleźć. W tym artykule zawiera przewodnik po konfigurowaniu wewnętrznego serwera DNS na Debian za pomocą oprogramowania serwera nazwy BIND (BIND9). Aby uzyskać więcej informacji, sprawdź inne artykuły znalezione na Linuxhint.com.