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.

  1. 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..
  2. Przechodzenie do terminala, aby zainstalować Basic DNS na CentOS

  3. Tutaj musisz wprowadzić polecenie sudo yum install bind bind-utils -y i kliknij Wchodzić aby go aktywować.
  4. Polecenie do ustawienia podstawowego DNS na CentOS

  5. Ta akcja jest wykonywana w imieniu superużytkownika (sudo), więc będziesz musiał potwierdzić konto, wpisując hasło w wyświetlonym wierszu.
  6. Potwierdzanie instalacji podstawowego DNS na CentOS przez terminal

  7. Zaczekaj na zakończenie pobierania i instalacji pakietów.
  8. Czekam na zakończenie instalacji podstawowego DNS w CentOS

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.

  1. Do edycji obiektów konfiguracyjnych można użyć dowolnego edytora tekstu. Oferujemy instalację wygodnego nanowpisując w konsoli sudo yum zainstaluj nano.
  2. Polecenie do zainstalowania edytora tekstu przed edycją plików DNS w CentOS

  3. Wszystkie wymagane pakiety zostaną pobrane, a jeśli są już obecne w dystrybucji, otrzymasz powiadomienie "Nie ma nic do zrobienia".
  4. Pomyślna instalacja edytora tekstu przed edycją plików DNS w CentOS

  5. 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.
  6. Uruchomienie głównego pliku konfiguracyjnego DNS na CentOS w celu dalszej konfiguracji

  7. 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.
  8. Konfigurowanie głównego pliku konfiguracyjnego DNS na CentOS

  9. Następnie kliknij Ctrl + Oaby zarejestrować zmiany.
  10. Zapisywanie zmian po skonfigurowaniu głównego pliku konfiguracyjnego DNS na CentOS

  11. Nie musisz zmieniać nazwy pliku, po prostu kliknij Wchodzić.
  12. Cofnij zmianę nazwy pliku konfiguracyjnego DNS w CentOS

  13. Opuść edytor tekstu przez Ctrl + X.
  14. Zamykanie edytora tekstu po zmianie głównego pliku konfiguracyjnego DNS na CentOS

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.

  1. 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.
  2. Podczas konfigurowania DNS na CentOS przejdź do Utwórz plik strefy przesyłania

  3. 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

  4. Dodawanie konfiguracji dla pliku strefy Forward DNS w CentOS

  5. Zapisz zmiany i zamknij edytor tekstu.
  6. Zamykanie edytora tekstu po utworzeniu pliku strefy DNS do przodu w CentOS

  7. Teraz przejdźmy do strefy odwrotnej. Wymaga pliku /var/named/reverse.unixmen.
  8. Tworzenie pliku strefy odwrotnej do konfigurowania DNS na CentOS

  9. 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.

  10. Dodawanie zawartości do pliku strefy odwrotnej podczas konfigurowania DNS w CentOS

  11. Podczas zapisywania nie zmieniaj nazwy obiektu, wystarczy nacisnąć klawisz Wchodzić.
  12. Cofnij zmianę nazwy pliku podczas zapisywania strefy odwrotnego DNS w CentOS

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:

  1. W konsoli wejdź sudo systemctl włącz namedaby dodać serwer DNS do uruchamiania w celu automatycznego uruchamiania podczas uruchamiania systemu operacyjnego.
  2. Dodawanie usługi DNS na CentOS do uruchamiania systemu operacyjnego

  3. Potwierdź tę akcję, wprowadzając hasło superużytkownika.
  4. Potwierdzenie akcji dodania usługi DNS na CentOS do uruchomienia

  5. Zostaniesz powiadomiony o utworzeniu dowiązania symbolicznego, co oznacza, że ​​akcja się powiodła.
  6. Pomyślnie utwórz łącze symboliczne, aby automatycznie załadować usługę DNS na CentOS

  7. 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 na zatrzymać.
  8. Polecenie włączenia usługi DNS w CentOS

  9. Gdy pojawi się wyskakujące okienko uwierzytelniania, wprowadź hasło roota.
  10. Potwierdzenie polecenia włączenia usługi DNS na CentOS przez wprowadzenie hasła

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:

  1. Pierwsza ma formę firewall-cmd --permanent --add-port = 53 / tcp i jest odpowiedzialny za otwarcie portu TCP. Włóż go do konsoli i kliknij Wchodzić.
  2. Otwieranie portu DNS na CentOS przez standardową zaporę ogniową

  3. 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.
  4. Otwarcie drugiego portu DNS na CentOS przez standardową zaporę

  5. Wszystkie zmiany zostaną zastosowane dopiero po ponownym uruchomieniu zapory, co odbywa się za pomocą polecenia firewall-cmd --reload.
  6. Ponowne uruchomienie zapory po wprowadzeniu zmian w konfiguracji DNS na CentOS

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.

  1. 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.
  2. Włączanie praw superużytkownika w celu dalszej konfiguracji dostępu do DNS w CentOS

  3. Wprowadź hasło dostępu.
  4. Wprowadzenie hasła w celu aktywacji stałego roota podczas konfigurowania DNS w CentOS

  5. 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

  6. Wprowadzanie poleceń do konfiguracji dostępu DNS w CentOS

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.

  1. 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.
  2. Polecenie sprawdzenia głównego pliku konfiguracyjnego DNS na CentOS

  3. Następnie musisz sprawdzić strefę bezpośrednią, wstawiając linię named-checkzone unixmen.local /var/named/forward.unixmen.
  4. Polecenie sprawdzenia głównego pliku konfiguracyjnego DNS na CentOS

  5. Przykładowe dane wyjściowe wyglądają następująco: strefa unixmen.local / IN: załadowany serial 2011071001 OK.
  6. Wyświetlanie wyników testów dla strefy Forward DNS w CentOS

  7. Wykonujemy w przybliżeniu to samo ze strefą odwrotną przez named-checkzone unixmen.local /var/named/reverse.unixmen.
  8. Polecenie do sprawdzenia strefy odwrotnej podczas testowania DNS na CentOS

  9. Prawidłowe wyjście powinno wyglądać następująco: strefa unixmen.local / IN: załadowany serial 2011071001 OK.
  10. Wyświetlanie wyników testu strefy Reverse DNS w CentOS

  11. 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.
  12. Przejdź do edycji pliku WAN podczas konfigurowania DNS na CentOS

  13. 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"

  14. Edycja pliku WAN podczas konfigurowania DNS na CentOS

  15. Po zapisaniu zmian przejdź do pliku /etc/resolv.conf.
  16. Przejdź do edycji interfejsów podczas konfigurowania DNS w CentOS

  17. Wystarczy dodać tutaj jedną linię: serwer nazw 192.168.1.101.
  18. Edycja interfejsów WAN podczas konfigurowania DNS na CentOS

  19. 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ć.
  20. Ponowne uruchomienie WAN po pomyślnym skonfigurowaniu DNS na CentOS

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.

Polecenie do sprawdzania stanu DNS w CentOS

W rezultacie na ekranie powinno zostać wyświetlone wyjście, które wygląda podobnie do poniższej treści.

Wyjście polecenia kontroli stanu DNS w CentOS

; <> 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ć.

Polecenie do sprawdzenia poprawności stref DNS w CentOS

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

Wyjście polecenia sprawdzenia poprawności stref DNS w CentOS

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:

  1. Otwórz plik /etc/resolv.conf za pomocą dowolnego wygodnego edytora tekstu.
  2. Przejdź do konfiguracji klienta DNS w CentOS

  3. Dodaj tam linie szukaj unixmen.local nameserver 192.168.1.101 i serwer nazw 192.168.1.102, zastępując niezbędne adresy klientów.
  4. Konfigurowanie DNS po stronie klienta w CentOS podczas konfigurowania

  5. Podczas zapisywania nie zmieniaj nazwy pliku, a po prostu naciśnij klawisz Wchodzić.
  6. Zapisywanie zmian po skonfigurowaniu klienta DNS na CentOS

  7. Po wyjściu z edytora tekstu pamiętaj o ponownym uruchomieniu sieci globalnej za pomocą polecenia systemctl zrestartuj sieć.
  8. Ponowne uruchomienie sieci po skonfigurowaniu klienta DNS na CentOS

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

Globalna kontrola stanu DNS w CentOS

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.