Zadowolony
- Krok 1: Zainstaluj wymagane pakiety
- Krok 2: Skonfiguruj serwer DNS globalnie
- Krok 3: utwórz strefę do przodu i do tyłu
- Krok 4: Uruchamianie serwera DNS
- Krok 5: Zmień ustawienia zapory
- Krok 6: Konfiguracja praw dostępu
- Krok 7: Testowanie pod kątem błędów i zakończenie konfiguracji
- Krok 8: Sprawdzenie zainstalowanego serwera DNS
- Konfigurowanie po stronie klienta serwera DNS
- Testowanie serwera DNS
- Pytania i odpowiedzi
Krok 1: Zainstaluj wymagane pakiety
Zanim przejdziemy do poniższych instrukcji, chcemy zauważyć, że nasza witryna zawiera już ogólny przewodnik dotyczący konfigurowania standardowego DNS w systemie Linux. Zalecamy użycie dokładnie tego materiału, jeśli chcesz skonfigurować ustawienia dla regularnych odwiedzin witryn internetowych. Następnie pokażemy, jak zainstalować podstawowy lokalny serwer DNS po stronie klienta.
Przeczytaj także: Konfiguracja DNS w systemie Linux
W celu utworzenia lokalnego serwera DNS zalecamy użycie bind9... Ustawienie kolejnych plików konfiguracyjnych będzie również oparte na ogólnych zasadach zachowania tego komponentu. Domyślna bind9 brakuje w systemie operacyjnym, więc zacznijmy od jego dodania.
- Uruchom konsolę w dogodny dla siebie sposób. Jest w sekcji "Aplikacje" — Ulubione lub otwiera się za pomocą standardowego skrótu klawiaturowego Ctrl + Alt + T..
- Tutaj musisz wprowadzić polecenie
sudo yum install bind bind-utils -y
i kliknij Wchodzić aby go aktywować. - Ta akcja jest wykonywana w imieniu superużytkownika (sudo), więc będziesz musiał potwierdzić konto, wpisując hasło w wyświetlonym wierszu.
- Zaczekaj na zakończenie pobierania i instalacji pakietów.
Pod koniec tego procesu zostaniesz powiadomiony, że wszystkie pakiety zostały pomyślnie dodane do systemu. Następnie przejdź do następnego kroku.
Krok 2: Skonfiguruj serwer DNS globalnie
Teraz chcemy pokazać, jak dokładnie jest edytowany główny plik konfiguracyjny, a także jakie wiersze są tam dodawane. Nie będziemy rozwodzić się nad każdą linią osobno, ponieważ zajmie to bardzo dużo czasu, poza tym wszystkie niezbędne informacje są dostępne w oficjalnej dokumentacji.
- Do edycji obiektów konfiguracyjnych można użyć dowolnego edytora tekstu. Oferujemy instalację wygodnego nanowpisując w konsoli
sudo yum zainstaluj nano
. - Wszystkie wymagane pakiety zostaną pobrane, a jeśli są już obecne w dystrybucji, otrzymasz powiadomienie "Nie ma nic do zrobienia".
- Zacznijmy edytować sam plik. Otwórz to
sudo nano /etc/named.conf
... W razie potrzeby zamień żądany edytor tekstu, wtedy linia będzie wyglądać mniej więcej tak:sudo vi /etc/named.conf
. - Poniżej udostępnimy zawartość, którą należy wstawić do otwartego pliku lub porównać ją z istniejącą dodając brakujące wiersze.
- Następnie kliknij Ctrl + Oaby zarejestrować zmiany.
- Nie musisz zmieniać nazwy pliku, po prostu kliknij Wchodzić.
- Opuść edytor tekstu przez Ctrl + X.
Jak wspomniano wcześniej, będziesz musiał wstawić określone wiersze do pliku konfiguracyjnego, które określają ogólne zasady zachowania serwera DNS.
//
// named.conf
//
// Dostarczony przez pakiet Red Hat do skonfigurowania ISC BIND o nazwie (8) DNS
// serwer jako buforujący tylko serwer nazw (tylko jako lokalny serwer rozpoznawania nazw DNS).
//
// Zobacz / usr / share / doc / bind * / sample / na przykład nazwane pliki konfiguracyjne.
//
opcje {
port nasłuchu 53 {127.0.0.1; 192.168.1.101;}; ### Główny adres IP DNS ###
# nasłuchiwanie na porcie v6 53 {:: 1; };
katalog "/ var / named";
plik-zrzutu "/var/named/data/cache_dump.db";
plik-statystyk "/var/named/data/named_stats.txt";
plik-memstatistics "/var/named/data/named_mem_stats.txt";
allow-query {localhost; 192.168.1.0/24;}; ### Zakres ip ###
zezwolić na transfer {localhost; 192.168.1.102; }; ### Slave DNS IP ###
/*
- Jeśli budujesz AUTORYTATYWNY serwer DNS, NIE włączaj rekursji.
- Jeśli budujesz REKURSYWNY (buforujący) serwer DNS, musisz go włączyć
rekurencja.
- Jeśli Twój rekurencyjny serwer DNS ma publiczny adres IP, MUSISZ włączyć dostęp
kontrola, aby ograniczyć zapytania do Twoich uprawnionych użytkowników. W przeciwnym razie będzie
sprawić, że Twój serwer stanie się częścią wzmocnienia DNS na dużą skalę
ataki. Wdrożenie BCP38 w Twojej sieci byłoby bardzo przydatne
zmniejszyć taką powierzchnię ataku
*/
rekurencja tak;
dnssec-enable tak;
dnssec-validation tak;
dnssec-lookaside auto;
/ * Ścieżka do klucza ISC DLV * /
plik-bindkeys "/etc/named.iscdlv.key";
katalog-kluczy-zarządzanych "/ var / named / dynamic";
plik-pid "/run/named/named.pid";
plik-klucza sesji "/run/named/session.key";
};
Logowanie {
channel default_debug {
plik "data / named.run";
nasilenie dynamiczne;
};
};
strefa "." W {
podpowiedź do typu;
plik "named.ca";
};
zone "unixmen.local" IN {
mistrz typu;
plik "forward.unixmen";
allow-update {none; };
};
zone "1.168.192.in-addr.arpa" IN {
mistrz typu;
plik "reverse.unixmen";
allow-update {none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
Upewnij się, że wszystko jest ustawione dokładnie tak, jak pokazano powyżej, a dopiero potem przejdź do następnego kroku.
Krok 3: utwórz strefę do przodu i do tyłu
Serwer DNS używa stref do przodu i do tyłu w celu uzyskania informacji o źródle. Forward umożliwia uzyskanie adresu IP na podstawie nazwy hosta, a reverse over IP daje nazwę domeny. Prawidłowe działanie każdej strefy musi być wyposażone w specjalne zasady, których utworzenie proponujemy dalej.
- Utwórzmy osobny plik dla strefy bezpośredniej przy użyciu tego samego edytora tekstu.Wtedy linia będzie wyglądać następująco:
sudo nano /var/named/forward.unixmen
. - Zostaniesz powiadomiony, że jest to pusty obiekt. Wklej tam następującą zawartość:
86400 $ TTL
@ W SOA masterdns.unixmen.local. root.unixmen.local. (
2011071001; Serial
3600; Odśwież
1800; Spróbuj ponownie
604800; wygasa
86400; Minimalne TTL
)
@ IN NS masterdns.unixmen.local.
@ IN NS secondarydns.unixmen.local.
@ IN A 192.168.1.101
@ IN A 192.168.1.102
@ IN A 192.168.1.103
masterdns IN A 192.168.1.101
seconddns IN A 192.168.1.102
klient W A 192.168.1.103 - Zapisz zmiany i zamknij edytor tekstu.
- Teraz przejdźmy do strefy odwrotnej. Wymaga pliku
/var/named/reverse.unixmen
. - Będzie to również nowy pusty plik. Wstaw tam:
86400 $ TTL
@ W SOA masterdns.unixmen.local. root.unixmen.local. (
2011071001; Serial
3600; Odśwież
1800; Spróbuj ponownie
604800; wygasa
86400; Minimalne TTL
)
@ IN NS masterdns.unixmen.local.
@ IN NS secondarydns.unixmen.local.
@ IN PTR unixmen.local.
masterdns IN A 192.168.1.101
seconddns IN A 192.168.1.102
klient W A 192.168.1.103
101 IN PTR masterdns.unixmen.local.
102 IN PTR secondarydns.unixmen.local.
103 IN PTR client.unixmen.local. - Podczas zapisywania nie zmieniaj nazwy obiektu, wystarczy nacisnąć klawisz Wchodzić.
Teraz określone pliki będą używane w strefach do przodu i do tyłu. W razie potrzeby należy je edytować, aby zmienić niektóre parametry. Możesz również przeczytać o tym w oficjalnej dokumentacji.
Krok 4: Uruchamianie serwera DNS
Po wykonaniu wszystkich wcześniejszych instrukcji można już uruchomić serwer DNS, aby w przyszłości łatwo było sprawdzić jego działanie i kontynuować konfigurowanie ważnych parametrów. Zadanie jest realizowane w następujący sposób:
- W konsoli wejdź
sudo systemctl włącz named
aby dodać serwer DNS do uruchamiania w celu automatycznego uruchamiania podczas uruchamiania systemu operacyjnego. - Potwierdź tę akcję, wprowadzając hasło superużytkownika.
- Zostaniesz powiadomiony o utworzeniu dowiązania symbolicznego, co oznacza, że akcja się powiodła.
- Uruchom narzędzie za pośrednictwem
systemctl start named
... Możesz to zatrzymać w ten sam sposób, tylko zastępując opcję początek nazatrzymać
. - Gdy pojawi się wyskakujące okienko uwierzytelniania, wprowadź hasło roota.
Jak widać, zarządzanie określoną usługą odbywa się na tej samej zasadzie, co wszystkie inne standardowe narzędzia, więc nie powinno być z tym problemów nawet dla początkujących użytkowników.
Krok 5: Zmień ustawienia zapory
Aby serwer DNS działał poprawnie, musisz otworzyć port 53, co odbywa się za pośrednictwem standardowej zapory FirewallD. W "Terminal" musisz wprowadzić tylko trzy proste polecenia:
- Pierwsza ma formę
firewall-cmd --permanent --add-port = 53 / tcp
i jest odpowiedzialny za otwarcie portu TCP. Włóż go do konsoli i kliknij Wchodzić. - Powinieneś zostać powiadomiony "Sukces", co wskazuje na pomyślne zastosowanie reguły. Następnie wstaw linię
firewall-cmd --permanent --add-port = 53 / udp
aby otworzyć port UDP. - Wszystkie zmiany zostaną zastosowane dopiero po ponownym uruchomieniu zapory, co odbywa się za pomocą polecenia
firewall-cmd --reload
.
Nie musisz już wprowadzać żadnych zmian w zaporze. Miej ją włączoną przez cały czas, aby uniknąć problemów z dostępem.
Krok 6: Konfiguracja praw dostępu
Teraz trzeba będzie ustawić podstawowe uprawnienia i prawa dostępu, aby nieco zabezpieczyć działanie serwera DNS i zabezpieczyć zwykłych użytkowników przed możliwością zmiany parametrów. Zróbmy to w standardowy sposób i przez SELinux.
- Wszystkie kolejne polecenia muszą być aktywowane w imieniu superużytkownika. Aby nie wprowadzać ciągle hasła, radzimy włączyć stały dostęp do roota dla bieżącej sesji terminala. Aby to zrobić, wejdź do konsoli
su
. - Wprowadź hasło dostępu.
- Następnie wprowadź kolejno następujące polecenia, aby utworzyć optymalne ustawienie dostępu:
chgrp o nazwie -R / var / named
chown -v root: nazwane /etc/named.conf
restorecon -rv / var / named
restorecon /etc/named.conf
Na tym kończy się ogólna konfiguracja głównego serwera DNS. Pozostaje tylko edytować kilka plików konfiguracyjnych i przetestować pod kątem błędów. Mając to wszystko na uwadze, proponujemy rozwiązać to w następnym kroku.
Krok 7: Testowanie pod kątem błędów i zakończenie konfiguracji
Zalecamy rozpoczęcie od sprawdzenia błędów, aby nie musieć zmieniać pozostałych plików konfiguracyjnych w przyszłości. Dlatego omówimy to wszystko w jednym kroku, a także podamy przykłady poprawnych wyników poleceń do testowania.
- Wejdź "Terminal"
named-checkconf /etc/named.conf
... Spowoduje to sprawdzenie parametrów globalnych. Jeśli w rezultacie nie nastąpiło żadne wyjście, wszystko jest skonfigurowane poprawnie. W przeciwnym razie przestudiuj wiadomość i zacznij od niej, rozwiąż problem. - Następnie musisz sprawdzić strefę bezpośrednią, wstawiając linię
named-checkzone unixmen.local /var/named/forward.unixmen
. - Przykładowe dane wyjściowe wyglądają następująco:
strefa unixmen.local / IN: załadowany serial 2011071001 OK
. - Wykonujemy w przybliżeniu to samo ze strefą odwrotną przez
named-checkzone unixmen.local /var/named/reverse.unixmen
. - Prawidłowe wyjście powinno wyglądać następująco:
strefa unixmen.local / IN: załadowany serial 2011071001 OK
. - Przejdźmy teraz do ustawień głównego interfejsu sieciowego. Będzie musiał dodać dane obecnego serwera DNS. Aby to zrobić, otwórz plik
/ etc / sysconfig / network-scripts / ifcfg-enp0s3
. - Upewnij się, że zawartość jest taka, jak pokazano poniżej. W razie potrzeby wklej parametry DNS.
TYPE = „Ethernet”
BOOTPROTO = „brak”
DEFROUTE = "tak"
IPV4_FAILURE_FATAL = "nie"
IPV6INIT = „tak”
IPV6_AUTOCONF = "tak"
IPV6_DEFROUTE = "tak"
IPV6_FAILURE_FATAL = "nie"
NAZWA = „enp0s3”
UUID = „5d0428b3-6af2-4f6b-9fe3-4250cd839efa”
ONBOOT = „tak”
HWADDR = „08: 00: 27: 19: 68: 73”
IPADDR0 = „192.168.1.101”
PREFIX0 = „24”
GATEWAY0 = „192.168.1.1”
DNS = „192.168.1.101”
IPV6_PEERDNS = "tak"
IPV6_PEERROUTES = "tak" - Po zapisaniu zmian przejdź do pliku
/etc/resolv.conf
. - Wystarczy dodać tutaj jedną linię:
serwer nazw 192.168.1.101
. - Po zakończeniu pozostaje tylko ponowne uruchomienie sieci lub komputera w celu zaktualizowania konfiguracji. Usługa sieciowa jest uruchamiana ponownie za pomocą polecenia
systemctl zrestartuj sieć
.
Krok 8: Sprawdzenie zainstalowanego serwera DNS
Na koniec konfiguracji pozostaje tylko sprawdzenie działania istniejącego serwera DNS po dodaniu go do globalnej usługi sieciowej. Ta operacja jest również wykonywana za pomocą specjalnych poleceń. Pierwsza z nich ma formę dig masterdns.unixmen.local
.
W rezultacie na ekranie powinno zostać wyświetlone wyjście, które wygląda podobnie do poniższej treści.
; <> DiG 9.9.4-RedHat-9.9.4-14.el7 <> masterdns.unixmen.local
;; opcje globalne: + cmd
;; Mam odpowiedź:
;; - >> HEADER << - kod operacji: QUERY, status: NOERROR, id: 25179
;; flagi: qr aa rd ra; PYTANIE: 1, ODPOWIEDŹ: 1, UPRAWNIENIA: 2, DODATKOWE: 2
;; OPCJA PSEUDOSEKCJA:
; EDNS: wersja: 0, flagi:; udp: 4096
;; PYTANIA:
; masterdns.unixmen.local. W
;; SEKCJA ODPOWIEDZI:
masterdns.unixmen.local. 86400 IN A 192.168.1.101
;; SEKCJA ORGANÓW:
unixmen.local. 86400 IN NS secondarydns.unixmen.local.
unixmen.local. 86400 IN NS masterdns.unixmen.local.
;; DODATKOWA SEKCJA:
seconddns.unixmen.local. 86400 IN A 192.168.1.102
;; Czas zapytania: 0 msec
;; SERWER: 192.168.1.101 # 53 (192.168.1.101)
;; KIEDY: środa, 20 sierpnia, 16:20:46, IST 2014
;; ROZMIAR MSG rcvd: 125
Dodatkowe polecenie pozwoli Ci dowiedzieć się o stanie działania lokalnego serwera DNS. Aby to zrobić, włóż do konsoli nslookup unixmen.local
i kliknij Wchodzić.
Powinno to wyświetlić trzy różne reprezentacje adresów IP i nazw domen.
Serwer: 192.168.1.101
Adres: 192.168.1.101 # 53
Nazwa: unixmen.local
Adres: 192.168.1.103
Nazwa: unixmen.local
Adres: 192.168.1.101
Nazwa: unixmen.local
Adres: 192.168.1.102
Jeśli dane wyjściowe są zgodne z tym, które wskazaliśmy, oznacza to, że konfiguracja została pomyślnie zakończona i można przystąpić do pracy po stronie klienta serwera DNS.
Konfigurowanie po stronie klienta serwera DNS
Nie będziemy dzielić tej procedury na osobne kroki, ponieważ jest ona wykonywana poprzez edycję tylko jednego pliku konfiguracyjnego. Konieczne jest dodanie informacji o wszystkich klientach, którzy będą podłączeni do serwera, a przykład takiego ustawienia wygląda następująco:
- Otwórz plik
/etc/resolv.conf
za pomocą dowolnego wygodnego edytora tekstu. - Dodaj tam linie
szukaj unixmen.local nameserver 192.168.1.101
iserwer nazw 192.168.1.102
, zastępując niezbędne adresy klientów. - Podczas zapisywania nie zmieniaj nazwy pliku, a po prostu naciśnij klawisz Wchodzić.
- Po wyjściu z edytora tekstu pamiętaj o ponownym uruchomieniu sieci globalnej za pomocą polecenia
systemctl zrestartuj sieć
.
To były główne punkty konfiguracji po stronie klienta serwera DNS, o których chcieliśmy porozmawiać. W razie potrzeby sugerujemy przestudiowanie wszystkich innych niuansów, czytając oficjalną dokumentację.
Testowanie serwera DNS
Ostatnim etapem naszego dzisiejszego materiału jest końcowe testowanie serwera DNS. Poniżej możesz zobaczyć kilka poleceń, które pozwolą ci poradzić sobie z wykonywanym zadaniem. Użyj jednego z nich, aktywując za pomocą "Terminal"... Jeśli na wyjściu nie ma błędów, cały proces przebiega poprawnie.
dig masterdns.unixmen.local
dig wtórnedns.unixmen.local
kop klient.unixmen.local
nslookup unixmen.local
Dziś dowiedziałeś się wszystkiego o konfigurowaniu głównego serwera DNS w dystrybucji CentOS. Jak widać, cała operacja skupia się na wpisywaniu komend terminala i edycji plików konfiguracyjnych, co może sprawiać pewne trudności początkującym użytkownikom. Jednak wszystko, co musisz zrobić, to dokładnie postępować zgodnie z instrukcjami i odczytać wyniki kontroli, aby wszystko przebiegło bez błędów.