DNS i DHCP w CentOS 7 - sieci SMB

Indeks ogólny serii: Sieci komputerowe dla MŚP: Wprowadzenie

Witajcie przyjaciele! W tym artykule pokażemy, jak wdrożyć ważne usługi sieciowe DNS i DHCP w systemie CentOS Linux, a konkretnie w wersji 7.2.

  • Niektóre artykuły o DNS odnoszą się do faktu, że implementacja tej usługi jest nieco niejasna i trudna. Niezbyt zgadzam się z tym stwierdzeniem. Powiedziałbym raczej, że jest nieco koncepcyjny i że wiele jego plików konfiguracyjnych ma skomplikowaną składnię. Na szczęście mamy narzędzia do sprawdzania, krok po kroku, składni każdego modyfikowanego przez nas pliku konfiguracyjnego. Dlatego postaramy się, aby lektura tego posta była jak najbardziej przyjemna i przyjemna..

Tym, którzy szukają podstaw obu usług, zdecydowanie zalecamy rozpoczęcie poszukiwań na Wikipedii, zarówno w jej hiszpańskiej, jak i angielskiej wersji. Nie mniej prawdą jest, że artykuły w języku angielskim są prawie zawsze bardziej kompletne i spójne. Mimo to Wikipedia jest bardzo dobrym punktem wyjścia.

Tym, którzy naprawdę chcą zgłębić tajniki DNS i BIND, radzimy przeczytać książkę „ OReilly – DNS and BIND 4th ed ” autorstwa Paula Albitza i Cricketa Liu , lub jej późniejsze wydanie, które z pewnością istnieje.

Opublikowaliśmy już artykuł na ten temat zatytułowany „ DNS i DHCP w openSUSE 13.2 Harlequin – sieci SME ” dla osób preferujących środowisko graficzne. Jednak w dalszej części artykułu znajdą Państwo artykuły na ten temat – ale nie inne – napisane z wykorzystaniem terminala lub emulatora konsoli. Innymi słowy, w klasycznym stylu używanym przez administratorów systemów UNIX®/Linux.

Jeśli chcesz dowiedzieć się więcej na temat tytułu tego artykułu, „ Sieci MŚP ”, możesz odwiedzić stronę „ Sieci MŚP: Pierwsze Wirtualne Wydanie ” na tym samym blogu . Znajdziesz tam linki do wielu innych opublikowanych artykułów.

  • Po zakończeniu instalacji systemu operacyjnego CentOS 7 z polecanymi przez nas pakietami, el katalogu /usr/share/doc/bind-9.9.4/ Zawiera dużą ilość dokumentacji, z którą zalecamy zapoznanie się przed rozpoczęciem wyszukiwania w Internecie bez uprzedniej wiedzy, że w zasięgu ręki i we własnym domu możesz znaleźć to, czego szukasz.

Instalacja systemu podstawowego

Ogólne dane domeny i serwera DNS

Nazwa domeny: desdelinux.wentylator
Nazwa serwera DNS: dns.desdelinux.wentylator
Adres IP: 192.168.10.5
Maska podsieci: 255.255.255.0

instalacja

Zaczynamy od nowej, czystej instalacji systemu operacyjnego CentOS 7, zgodnie z opisem w poprzednim artykule „ CentOS 7 Hypervisor I – SME Networks ”. Musimy jedynie wprowadzić następujące zmiany:

  • W Imagen 22 «WYBÓR OPROGRAMOWANIA«, Zalecamy wybór w lewej kolumnie«Środowisko podstawowe»Opcja odpowiadająca«Serwer infrastruktury«, W prawej kolumnie«Wtyczki dla wybranego środowiska»Zaznacz pole wyboru«Serwer nazw DNS«. Później zainstalujemy serwer DHCP.
  • Pamiętajmy o deklaracji dodatkowych repozytoriów, jak pokazano w Imagen 23, po ustawieniu «SIEĆ I NAZWA ZESPOŁU".
  • Obrazy odnoszące się do partycji, które utworzymy na naszym dysku twardym, są podane tylko jako wskazówki. Możesz swobodnie wybierać partycje według własnego uznania, praktyki i dobrej oceny.
  • Wreszcie w Zdjęcie 13 «SIEĆ I NAZWA ZESPOŁU», musimy zmienić wartości zgodnie z ogólnymi parametrami zadeklarowanej domeny i serwera DNS, nie zapominając o podaniu nazwy hosta - w tym przypadku «dns«- po zakończeniu konfiguracji sieci. To pozytywne świst -z innego hosta- na podany adres IP po aktywowaniu sieci:

DNS i DHCP na CentOS

Jest naprawdę niewiele i bardzo oczywistych zmian, które musimy wprowadzić w stosunku do poprzedniego artykułu.

Wstępne kontrole i regulacje

Po zainstalowaniu systemu operacyjnego musimy przejrzeć przynajmniej poniższe pliki iw tym celu rozpoczynamy sesję przez SSH z naszego komputera administrator systemu.desdelinux.wentylator:

buzz @ sysadmin: ~ $ ssh 192.168.10.5
[email chroniony]Hasło użytkownika: Ostatnie logowanie: Sob. 28 stycznia 2017 09:48:05 z adresu 192.168.10.1
[buzz @ dns ~] $

Powyższa operacja może potrwać dłużej niż zwykle, a wynika to głównie z faktu, że nie mamy jeszcze DNS w sieci LAN. Sprawdź ponownie później, czy DNS działa.

[buzz @ dns ~] $ cat / etc / hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6

[buzz @ dns ~] $ cat / etc / hostname
dns

[buzz @ dns ~] $ cat / etc / sysconfig / network-scripts / ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=946f5ac9-238a-4a94-9acb-9e3458c680fe
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.5
PREFIX=24
GATEWAY=192.168.10.1
DNS1=127.0.0.1
DOMAIN=desdelinux.fan

[buzz @ dns ~] $ cat /etc/resolv.conf 
# Wygenerowane przez wyszukiwanie NetworkManager desdelinuxSerwer nazw .fan 127.0.0.1

Główne konfiguracje odzwierciedlają nasze wybory. Należy pamiętać, że nawet na serwerze Red Hat 7 – CentOS 7 , NetworkManager jest domyślnie skonfigurowany do zarządzania interfejsami sieciowymi, zarówno przewodowymi, jak i bezprzewodowymi (WiFi), połączeniami VPN, połączeniami PPPoE i dowolnymi innymi połączeniami sieciowymi.

[buzz @ dns ~] $ sudo systemctl status networkmanager
[sudo] hasło dla buzz: ● networkmanager.service Loaded: not-found (Przyczyna: brak takiego pliku lub katalogu) Active: nieaktywne (dead)

[buzz @ dns ~] $ sudo systemctl status Menedżer sieci
● NetworkManager.service - Menedżer sieci załadowany: załadowany (/usr/lib/systemd/system/NetworkManager.service; włączony; ustawienie wstępne dostawcy: włączone) Aktywny: aktywny (działa) od sob. 2017 01:28:12 EST; 23 min temu Główny PID: 59 (NetworkManager) CGroup: /system.slice/NetworkManager.service └─12 / usr / sbin / NetworkManager --no-daemon

Red Hat – CentOS umożliwia również łączenie i rozłączanie interfejsów sieciowych za pomocą klasycznych poleceń `ifup` i `ifdown` . Uruchommy następujące polecenia w konsoli serwera:

[root @ dns ~] # ifdown eth0
Urządzenie „eth0” zostało pomyślnie odłączone.

[root @ dns ~] # ifup eth0
Połączenie zostało aktywowane pomyślnie (aktywna ścieżka D-Bus: / org / freedesktop / NetworkManager / ActiveConnection / 1)
  • Sugerujemy nie zmieniaj domyślnych ustawień, które oferuje CentOS 7 w odniesieniu do Menedżer sieci.

Ostatecznie deklarujemy repozytoria, z których będziemy korzystać iw razie potrzeby aktualizujemy system operacyjny:

[buzz @ dns ~] $ su Hasło: [root @ dns buzz] # cd /etc/yum.repos.d/
[root @ dns yum.repos.d] # ls -l
łącznie 28 -rw-r - r--. 1 root root 1664 9 grudnia 2015 CentOS-Base.repo -rw-r - r--. 1 root root 1309 9 grudnia 2015 CentOS-CR.repo -rw-r - r--. 1 root root 649 grudnia 9 2015 CentOS-Debuginfo.repo -rw-r - r--. 1 root root 290 9 grudnia 2015 CentOS-fasttrack.repo -rw-r - r--. 1 root root 630 9 grudnia 2015 CentOS-Media.repo -rw-r - r--. 1 root root 1331 9 grudnia 2015 CentOS-Sources.repo -rw-r - r--. 1 root root 1952 9 grudnia 2015 CentOS-Vault.repo

Zdrowo jest przeczytać zawartość oryginalnych plików deklaracji repozytoriów zalecanych przez CentOS. Zmiany, które tutaj wprowadzamy wynikają z tego, że nie mamy dostępu do Internetu, a pracujemy z lokalnymi repozytoriami pobranymi z WWW Village, przez kolegów, którzy trochę ułatwiają nam życie. 

[root @ dns yum.repos.d] # mkdir oryginał
[root @ dns yum.repos.d] # mv CentOS- * original /

[root @ dns yum.repos.d] # nano centos-repos.repo
[centos-base]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/base/
gpgcheck=0
enabled=1

[centos-updates]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/updates/x86_64/
gpgcheck=0
enabled=1

[root @ dns yum.repos.d] # yum clean all
Wczytane wtyczki: najszybszy mirror, langpacks Czyszczenie repozytoriów: centos-base centos-updates Czyszczenie wszystkiego

[root @ dns yum.repos.d] # aktualizacja yum
Wczytane wtyczki: najszybszy mirror, paczki językowe bazujące na centos | 3.4 kB 00:00 centos-aktualizacje | 3.4 kB 00:00 (1/2): centos-base / primary_db | 5.3 MB 00:00 (2/2): centos-updates / primary_db | 9.1 MB 00:00 Określanie najszybszych serwerów lustrzanych Brak pakietów oznaczonych do aktualizacji

Komunikat „Brak pakietów oznaczonych do aktualizacji” oznacza , że ​​zainstalowano najnowsze pakiety, ponieważ podczas instalacji zadeklarowano najnowsze repozytoria dostępne w systemie.

O kontekście SELinux i firewallu

W tym artykule skupimy się - zasadniczo - na implementacji usług DNS i DHCP, co jest jego głównym celem.

Jeśli któryś z czytelników wybrał politykę bezpieczeństwa podczas procesu instalacji, tak jak pokazano na Rysunku 06 w artykule referencyjnym „ CentOS 7 Hypervisor I – SME Networks ” używanym do instalacji tego serwera DNS-DHCP, i stwierdzi, że nie wie, jak prawidłowo skonfigurować SELinux i zaporę CentOS, sugerujemy uruchomienie następującego polecenia:

Zmodyfikuj plik /etc/sysconfig/selinux i zmień SELINUX=enforcing na SELINUX=disable

[root @ dns ~] # nano / etc / sysconfig / selinux
# Ten plik kontroluje stan SELinux w systemie. # SELINUX = może przyjąć jedną z trzech wartości: # Egzekwowanie - wymuszana jest polityka bezpieczeństwa SELinuksa. # permissive - SELinux drukuje ostrzeżenia zamiast wymuszać. # disabled - Żadna polityka SELinux nie jest załadowana.
SELINUX = wyłączony
# SELINUXTYPE = może przyjąć jedną z trzech wartości: # target - docelowe procesy są chronione, # minimum - modyfikacja docelowej polityki. Tylko wybrane procesy są pr $ # mls - ochrona wielopoziomowa. SELINUXTYPE = kierowany

Następnie uruchom następujące polecenia

[root @ dns ~] # setenforce 0
[root @ dns ~] # usługa firewalld stop
Przekierowywanie do / bin / systemctl stop firewalld.service

[root @ dns ~] # systemctl wyłącz firewalld
Usunięto dowiązanie symboliczne /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Usunięto dowiązanie symboliczne /etc/systemd/system/basic.target.wants/firewalld.service.

Jeśli wdrażasz serwer DNS skierowany do Internetu, NIE powinieneś postępować zgodnie z powyższymi instrukcjami. Zamiast tego, poprawnie skonfiguruj kontekst SELinux i zaporę sieciową. Zapoznaj się z dokumentem „Configuring Servers with GNU/Linux” Joela Barriosa Dueñasa lub dokumentacją CentOS/Red Hat.

Skonfigurujemy plik BIND - named

  • El katalogu /usr/share/doc/bind-9.9.4/ Zawiera dużą ilość dokumentacji, z którą zalecamy skonsultowanie się przed rozpoczęciem wyszukiwania w Internecie bez uprzedniej wiedzy, że na wyciągnięcie ręki i we własnym domu możesz znaleźć to, czego szukasz

W wielu dystrybucjach usługa DNS instalowana za pośrednictwem pakietu BIND nosi nazwę named ( Name Daemon ). W systemie CentOS 7 jest ona domyślnie instalowana jako wyłączona, co widać w wynikach poniższego polecenia, które informuje, że jej stan to „ wyłączona ”, a stan ten jest predefiniowany przez dostawcę – vendor preset . Należy pamiętać, że BIND jest wolnym oprogramowaniem.

Włączanie nazwanej usługi

[root @ dns ~] # status systemctl o nazwie
● named.service - Załadowano domenę nazw internetowych Berkeley (DNS): załadowano (/usr/lib/systemd/system/named.service; niepełnosprawny; ustawienie dostawcy: wyłączone) Aktywny: nieaktywny (martwy)

[root @ dns ~] # systemctl włącz nazwany
Utworzono dowiązanie symboliczne z /etc/systemd/system/multi-user.target.wants/named.service do /usr/lib/systemd/system/named.service.

[root @ dns ~] # systemctl start named

[root @ dns ~] # status systemctl o nazwie
● named.service - Załadowano domenę nazw internetowych Berkeley (DNS): załadowano (/usr/lib/systemd/system/named.service; włączony; ustawienie dostawcy: wyłączone)
   Aktywny: aktywny (uruchomiony) od 2017 01:28:13 EST; 22 minut temu Proces: 38 ExecStart = / usr / sbin / named -u o nazwie $ OPTIONS (kod = wyjście, stan = 5 / SUKCES) Proces: 1990 ExecStartPre = / bin / bash -c if [! "$ DISABLE_ZONE_CHECKING" == "tak"]; następnie / usr / sbin / named-checkconf -z /etc/named.conf; else echo "Sprawdzanie plików stref jest wyłączone"; fi (code = exited, status = 0 / SUCCESS) Główny PID: 1988 (nazwany) CGroup: /system.slice/named.service └─0 / usr / sbin / named -u nazwany 1993 stycznia 1993:28:13 dns nazwany [22]: błąd (sieć nieosiągalna) rozstrzyganie './NS/IN': 45: 1993: 2001f :: f # 500 2 stycznia 53:28:13 dns o nazwie [22]: błąd (sieć nieosiągalna) rozwiązywanie './ DNSKEY / IN ': 47: 1993: 2001 :: 500 # 3 42 stycznia 53:28:13 dns o nazwie [22]: błąd (sieć nieosiągalna) rozwiązywanie' ./NS/IN ': 47: 1993: 2001 :: 500 # 3 42 stycznia 53:28:13 dns o nazwie [22]: błąd (sieć nieosiągalna) rozwiązywanie „./DNSKEY/IN”: 47: 1993: 2001d :: d # 500 2 stycznia 53:28:13 dns o nazwie [22 ]: błąd (sieć nieosiągalna) rozstrzyganie './NS/IN': 47: 1993: 2001d :: d # 500 2 stycznia 53:28:13 dns o nazwie [22]: błąd (sieć nieosiągalna) rozwiązywanie './DNSKEY/ IN ': 47: dc1993 :: 2001 # 3 35 stycznia 53:28:13 dns o nazwie [22]: błąd (sieć nieosiągalna) rozstrzyganie' ./NS/IN ': 47: dc1993 :: 2001 # 3 35 stycznia 53: 28:13 dns o nazwie [22]: błąd (sieć nieosiągalna) rozwiązywanie „./DNSKEY/IN”: 47: 1993fe :: 2001 # 7 53 stycznia 53:28:13 dns o nazwie [22]: błąd (sieć nieosiągalna) res olving './NS/IN': 47: 1993fe :: 2001 # 7 53 stycznia 53:28:13 nazwany dns [22]: managed-keys-zone: Nie można pobrać zestawu DNSKEY '.': przekroczono limit czasu

[root @ dns ~] # restart systemctl o nazwie

[root @ dns ~] # status systemctl o nazwie
● named.service - Berkeley Internet Name Domain (DNS) Loaded: załadowano (/usr/lib/systemd/system/named.service; włączone; ustawienie dostawcy: wyłączone)
   Aktywny: aktywny (uruchomiony) od sob. 2017 01:28:13 EST; 29 s temu Proces: 41 ExecStop = / bin / sh -c / usr / sbin / rndc stop> / dev / null 1> & 1449 || / bin / kill -TERM $ MAINPID (kod = wyjście, status = 2 / SUKCES) Proces: 1 ExecStart = / usr / sbin / named -u nazwane $ OPCJE (kod = wyjście, status = 0 / SUKCES) Proces: 1460 ExecStartPre = / bin / bash -c jeśli [! "$ DISABLE_ZONE_CHECKING" == "tak"]; następnie / usr / sbin / named-checkconf -z /etc/named.conf; else echo "Sprawdzanie plików stref jest wyłączone"; fi (code = exited, status = 0 / SUCCESS) Główny PID: 1457 (nazwany) CGroup: /system.slice/named.service └─0 / usr / sbin / named -u nazwany 1463 stycznia 1463:28:13 dns named [29]: managed-keys-zone: plik dziennika jest nieaktualny: usuwanie pliku dziennika 41 stycznia 1463:28:13 nazwany dns [29]: managed-keys-zone: wczytano numer seryjny 41 stycznia 1463 2:28:13 dns nazwany [29]: strefa 41.in-addr.arpa/IN: załadowano numer seryjny 1463 0 stycznia 0:28:13 nazwany dns [29]: strefa localhost.localdomain / IN: załadowano numer seryjny 41 1463 stycznia 0:28:13 dns o nazwie [29]: strefa 41.in-addr.arpa/IN: załadowano numer seryjny 1463 1.0.0.127 stycznia 0:28:13 nazwano dns [29]: strefa 41 .1463.ip1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.arpa / IN: załadowany serial 6 0 stycznia 28:13:29 nazwany dns [41]: strefa localhost / IN: załadowany serial 1463 0 stycznia 28 : 13: 29 o nazwie dns [41]: załadowano wszystkie strefy 1463 stycznia 28:13:29 nazwano dns [41]: uruchomiono 1463 stycznia 28:13:29 dns systemd [41]: uruchomiono domenę nazw internetowych Berkeley (DNS).

Po pierwszym włączeniu i uruchomieniu usługi o podanej nazwie , polecenie `systemctl status named` wyświetla komunikaty o błędach. Po ponownym uruchomieniu usługi, usługa named domyślnie tworzy wszystkie pliki konfiguracyjne niezbędne do prawidłowego działania. Dlatego po ponownym uruchomieniu polecenia `systemctl status named` nie pojawiają się już żadne komunikaty o błędach.

  • Drogi, drogi i wymagający Czytelniku: jeśli chcesz dowiedzieć się -przynajmniej- która ścieżka prowadzi na koniec króliczej nory, to proszę, spokojnie przeczytaj szczegółowe wyniki każdego polecenia.  Z pewnością artykuł będzie wydawał się trochę przydługi, ale nie zaprzeczycie, że zyskuje na wyjaśnieniu i przejrzystości.

Modyfikujemy plik /etc/named.conf

Wiele komentarzy czytelników wyraża – i nie jestem jedynym, który to zauważa – zwyczaj, jaki mają opiekunowie różnych dystrybucji Linuksa, umieszczając pliki konfiguracyjne systemu w folderach o różnych nazwach w zależności od dystrybucji. Mają rację. Ale co my, zwykli użytkownicy tych dystrybucji, możemy zrobić? Dostosować się! 😉

Nawiasem mówiąc, w FreeBSD, klonie UNIX® „The Origin”, plik znajduje się w /usr/local/etc/namedb/named.conf ; natomiast w Debianie, oprócz podziału na cztery pliki: named.conf, named.conf.options, named.conf.default-zones i named.conf.local , znajduje się on również w folderze /etc/bind/ . Osoby chcące dowiedzieć się, gdzie znajduje się on w openSUSE, powinny przeczytać artykuł „ DNS i DHCP w openSUSE 13.2 Harlequin – SME Networks ”. Czytelnicy mają rację! 😉

I jak zawsze: przed modyfikacją czegokolwiek zapisujemy oryginalny plik konfiguracyjny pod inną nazwą.

[root @ dns ~] # cp /etc/named.conf /etc/named.conf.original

Aby ułatwić sobie zadanie, zamiast generować klucz TSIG do dynamicznych aktualizacji DNS za pośrednictwem DHCP, kopiujemy ten sam klucz rndc.key , co klucz dhcp.key.

[root @ dns ~] # cp /etc/rndc.key /etc/dhcp.key

[root @ dns ~] # nano /etc/dhcp.key
klucz „dhcp-key” {algorytm hmac-md5; tajny "OI7Vs + TO83L7ghUm2xNVKg =="; };

Aby wskazany użytkownik mógł odczytać nowo skopiowany plik, modyfikujemy jego grupę właścicieli:

[root @ dns ~] # chown root: o nazwie /etc/dhcp.key [root @ dns ~] # ls -l /etc/rndc.key /etc/dhcp.key -rw-r -----. 1 root o nazwie 77 28 stycznia 16:36 /etc/dhcp.key -rw-r -----. 1 root o nazwie 77 Jan 28 13:22 /etc/rndc.key

Drobne szczegóły, takie jak poprzednia, są tym, co może doprowadzić nas do szaleństwa, próbując się dowiedzieć, teraz ... gdzie jest problem ...? z innymi przymiotnikami, których nie piszemy z szacunku dla Szanowanych.

Teraz wreszcie zmodyfikowaliśmy plik /etc/named.conf . Zmiany lub uzupełnienia, które wprowadziliśmy w porównaniu z oryginałem, są pogrubione . Zwróć uwagę, że jest ich tylko kilka.

[root @ dns ~] # nano /etc/named.conf
// // named.conf // // Dostarczony przez pakiet Red Hat bind do skonfigurowania serwera ISC BIND nazwanego (8) DNS // jako buforującego tylko serwer nazw (tylko jako lokalny resolver DNS). // // Zobacz / usr / share / doc / bind * / sample / na przykład nazwane pliki konfiguracyjne. //

// Lista kontroli dostępu określająca, które sieci będą mogły się konsultować
// mój nazwany serwer
acl wyglądał {
 127.0.0.0 / 8;
 192.168.10.0 / 24;
};

opcje {
 // Deklaruję, że nazwany demon również nasłuchuje interfejsu
 // eth0 z adresem IP: 192.168.10.5
    port nasłuchu 53 {127.0.0.1; 192.168.10.5; };
    port nasłuchiwania na 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";

 // Instrukcja przekazująca
 // spedytorzy {
 // 0.0.0.0;
 // 1.1.1.1;
 //};
    // najpierw do przodu;

    // Zezwalam tylko na zapytania do mojej miredowej listy ACL
    zezwolenie-zapytanie {mired; }; // Aby sprawdzić za pomocą polecenia dig desdelinux.fan axfr // tylko ze stacji roboczej SysAdmin i hosta lokalnego // Nie mamy podrzędnych serwerów DNS. Nie potrzebujemy tego... aż do teraz.
 zezwolić na transfer {localhost; 192.168.10.1; };

    / * - Jeśli budujesz AUTORYTATYWNY serwer DNS, NIE włączaj rekursji. - Jeśli budujesz REKURSYWNY (buforujący) serwer DNS, musisz włączyć rekursję. - Jeśli Twój rekurencyjny serwer DNS ma publiczny adres IP, MUSISZ włączyć kontrolę dostępu, aby ograniczyć zapytania do swoich uprawnionych użytkowników. Jeśli tego nie zrobisz, Twój serwer stanie się częścią ataków polegających na wzmocnieniu DNS na dużą skalę. Wdrożenie BCP38 w Twojej sieci znacznie zmniejszyłoby taką powierzchnię ataku * /
    // Chcemy serwera AUTHORITY dla naszej sieci LAN - SME
    rekurencja nie;

    dnssec-enable tak; dnssec-validation tak; / * Ścieżka do klucza ISC DLV * / bindkeys-file "/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 {file "data / named.run"; nasilenie dynamiczne; }; }; strefa "." IN {podpowiedź typu; plik "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";

// Dołączamy klucz TSIG do dynamicznych aktualizacji DNS // przez DHCP
include "/etc/dhcp.key";

// Deklaracja nazwy, typu, lokalizacji i uprawnienia do aktualizacji
// stref rekordów DNS // obie strefy to MASTERS
strefa"desdelinux.wentylator" {
 typ master;
 plik „dynamic/db.desdelinux.wentylator";
 allow-update {klucz dhcp-key; };
};

zone "10.168.192.in-addr.arpa" {
 typ master;
 plik „dynamic / db.10.168.192.in-addr.arpa”;
 allow-update {klucz dhcp-key; };
};

Sprawdzamy składnię

[root @ dns ~] # named-checkconf 
[root @ dns ~] #

Ponieważ poprzednie polecenie nic nie zwraca, składnia jest poprawna. Jeśli jednak uruchomimy to samo polecenie, ale z opcją -z , wynik będzie następujący:

[root @ dns ~] # named-checkconf -z
strefa localhost.localdomain/IN: załadowany serial 0 strefa localhost/IN: załadowany serial 0 strefa 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 .ip6.arpa/IN: załadowana linia szeregowa 0 1.0.0.127.in-addr.arpa/IN: załadowana linia szeregowa 0 0.in-addr.arpa/IN: załadowana strefa szeregowa 0 desdelinux.fan/IN: ładowanie z pliku głównego dynamic/db.desdelinux.fan nie powiódł się: nie znaleziono pliku w strefie desdelinux.fan/IN: nie załadowano z powodu błędów. _domyślny/desdelinux.fan/IN: nie znaleziono pliku strefa 10.168.192.in-addr.arpa/IN: ładowanie z pliku głównego dynamic/db.10.168.192.in-addr.arpa nie powiodło się: nie znaleziono pliku strefa 10.168.192.in- adres.arpa/IN: nie załadowano z powodu błędów. _default/10.168.192.in-addr.arpa/IN: nie znaleziono pliku

Oczywiście są to błędy, które występują, ponieważ nie utworzyliśmy jeszcze stref rekordów DNS dla naszej domeny.

  • Więcej informacji o poleceniu nazwane-checkconf, biegać człowiek o nazwie checkconf, zanim zaczniesz szukać innych informacji w Internecie. Zapewniam, że pozwoli to zaoszczędzić sporo czasu.

Tworzymy plik Direct Zone desdelinux.wentylator

…ale nie bez odrobiny teorii. 

Jako szablon do utworzenia pliku danych strefy możemy użyć /var/named/named.empty lub /usr/share/doc/bind-9.9.4/sample/var/named/named.empty . Oba są identyczne.

[root @ dns ~] # cat /var/named/named.empty 
$ TTL 3H @ IN SOA @ rname.invalid. (0; serial 1D; odśwież 1 godz; ponów 1 W; wygaśnięcie 3 godz.); minimalny lub ujemny czas buforowania do życia NS @ A 127.0.0.1 AAAA :: 1

Czas życia - Czas żyć TTL Rekord SOA

Poświęćmy chwilę na wyjaśnienie TTL (Time to Live) rekordu SOA (Start of Authority) dla strefy głównej. Zrozumienie ich znaczenia jest przydatne, gdy chcemy zmodyfikować dowolną z ich wartości.

$TTL : Czas życia – czas życia wszystkich rekordów w pliku następujących po deklaracji (ale poprzedzających każdą inną deklarację $TTL) i które nie mają jawnej deklaracji TTL.

Serial : Numer seryjny danych strefy. Za każdym razem, gdy ręcznie modyfikujemy rekord DNS w strefie, musimy zwiększyć ten numer o 1, zwłaszcza jeśli mamy serwery podrzędne lub pomocnicze. Za każdym razem, gdy serwer podrzędny lub pomocniczy kontaktuje się z serwerem głównym, wysyła zapytanie o numer seryjny danych serwera głównego. Jeśli numer seryjny serwera podrzędnego jest niższy, dane dla tej strefy na serwerze podrzędnym są nieaktualne i serwer podrzędny wykonuje transfer strefy w celu ich aktualizacji.

refresh : Informuje serwer podrzędny o odstępie czasu, co jaki serwer powinien sprawdzić, czy jego dane są aktualne w stosunku do danych serwera nadrzędnego.

retry : Jeżeli serwer główny jest niedostępny dla serwera podrzędnego (np. z powodu awarii), po upływie określonego czasu odświeżania opcja retry informuje serwer podrzędny, jak długo ma czekać przed ponowną próbą nawiązania kontaktu z serwerem głównym.

Wygaśnięcie : Jeśli serwer podrzędny nie może skontaktować się z serwerem głównym przez określony czas , relacja między strefą podrzędną a nadrzędną zostaje zerwana, a serwer podrzędny nie ma innego wyjścia, jak tylko wygasić daną strefę. Wygaśnięcie strefy przez serwer DNS podrzędny oznacza, że ​​przestanie on odpowiadać na zapytania DNS dotyczące tej strefy, ponieważ dostępne dane są zbyt stare, aby były przydatne.

  • Powyższe uczy nas pośrednio i przepełnione wielkim zdrowym rozsądkiem - najmniej pospolitym ze zmysłów - że jeśli nie potrzebujemy podrzędnych serwerów DNS do działania naszego MŚP, to nie wdrażamy tego, chyba że są one bezwzględnie konieczne. Zawsze starajmy się przejść od prostego do złożonego.

Minimum : W wersjach wcześniejszych niż BIND 8.2 ostatni rekord SOA wskazuje również domyślny czas życia (ang. default time to live) i negatywny czas życia w buforze (ang. negative caching time to live) dla strefy. Ten czas odnosi się do wszystkich negatywnych odpowiedzi udzielonych przez serwer autorytatywny dla strefy.

Plik strefy /var/named/dynamic/db.desdelinux.wentylator

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.wentylator
$TTL 3H @ IN SOA dns.desdelinux.wentylator. root.dns.desdelinux.wentylator. (1; serial 1D; odświeżenie 1H; ponowna próba 1W; ważność 3H); minimalne lub ; Ujemny czas życia buforowania; @IN NS dns.desdelinux.wentylator. @ IN MX 10 e-mail.desdelinux.wentylator. @ IN TXT "FromLinux, twój blog poświęcony wolnemu oprogramowaniu"; sysadmin W 192.168.10.1 ad-dc W 192.168.10.3 serwer plików W 192.168.10.4 dns W 192.168.10.5 proxyweb W 192.168.10.6 blog W 192.168.10.7 ftpserver W 192.168.10.8. 192.168.10.9 poczta W XNUMX

Sprawdzamy /var/named/dynamic/db.desdelinux.wentylator

[root@dns ~]# nazwana strefa kontrolna desdelinux.fan /var/named/dynamic/db.desdelinux.wentylator
strefa desdelinux.fan/IN: załadowano serial 1 OK

Tworzymy plik Reverse Zone 10.168.192.in-addr.arpa

  • Rekord SOA tej strefy jest taki sam, jak rekord strefy bezpośredniej bez uwzględnienia rekordu MX..
[root @ dns ~] # nano /var/named/dynamic/db.10.168.192.in-addr.arpa
$TTL 3H @ IN SOA dns.desdelinux.wentylator. root.dns.desdelinux.wentylator. (1; serial 1D; odświeżenie 1H; ponowna próba 1W; ważność 3H); minimalne lub ; Ujemny czas życia buforowania; @IN NS dns.desdelinux.wentylator. ; 1 W administratorze systemu PTR.desdelinux.wentylator. 3 IN PTR ad-dc.desdelinux.wentylator. Serwer plików 4 IN PTR.desdelinux.wentylator. 5 W PTR dns.desdelinux.wentylator. 6 W PTR proxyweb.desdelinux.wentylator. 7 W blogu PTR.desdelinux.wentylator. Serwer ftp 8 IN PTR.desdelinux.wentylator. 9 W poczcie PTR.desdelinux.wentylator.

[root @ dns ~] # named-checkzone 10.168.192.in-addr.arpa /var/named/dynamic/db.10.168.192.in-addr.arpa 
strefa 10.168.192.in-addr.arpa/IN: załadowany serial 1 OK

Przed ponownym uruchomieniem nazwanego sprawdzamy jego konfigurację

  • Dopóki nie będziemy pewni, że pliki konfiguracyjne o nazwie named.conf oraz pliki stref nie są poprawnie skonfigurowane, sugerujemy nie restartować demona o nazwie. Jeśli to zrobimy, a później zmodyfikujemy plik strefy, musimy zwiększyć numer seryjny zmodyfikowanej strefy o 1.
  • Spójrzmy na „.” na końcu nazwy domeny i hosta.
[root @ dns ~] # named-checkconf 
[root @ dns ~] # named-checkconf -z
strefa localhost.localdomain/IN: załadowany serial 0 strefa localhost/IN: załadowany serial 0 strefa 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 .ip6.arpa/IN: załadowana linia szeregowa 0 1.0.0.127.in-addr.arpa/IN: załadowana linia szeregowa 0 0.in-addr.arpa/IN: załadowana strefa szeregowa 0 desdelinux.fan/IN: załadowana linia szeregowa 1 10.168.192.in-addr.arpa/IN: załadowana linia szeregowa 1

Cała bieżąca nazwana konfiguracja

Dla jasności i mimo że artykuł będzie długi, podajemy pełny wynik polecenia named-checkconf -zp :

[root @ dns ~] # named-checkconf -zp
strefa localhost.localdomain/IN: załadowany serial 0 strefa localhost/IN: załadowany serial 0 strefa 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 .ip6.arpa/IN: załadowana linia szeregowa 0 1.0.0.127.in-addr.arpa/IN: załadowana linia szeregowa 0 0.in-addr.arpa/IN: załadowana strefa szeregowa 0 desdelinux.fan/IN: załadowana linia szeregowa 1 10.168.192.in-addr.arpa/IN: załadowana opcja szeregowa 1 { plik-bindkeys "/etc/named.iscdlv.key"; plik-klucza sesji "/run/named/session.key"; katalog "/var/nazwany"; plik-zrzutu "/var/named/data/cache_dump.db"; port nasłuchiwania 53 { 127.0.0.1/32; 192.168.10.5/32; }; port nasłuchiwania na v6 53 { ::1/128; }; katalog kluczy zarządzanych „/var/named/dynamic”; plik-memstatistics "/var/named/data/named_mem_stats.txt"; plik-pid "/run/named/named.pid"; plik-statystyki "/var/named/data/named_stats.txt"; Włącz dnssec tak; weryfikacja dnssec tak; rekurencja nie; zezwolenie-zapytanie { "obserwowałem"; }; zezwolenie na transfer { 192.168.10.1/32; }; }; acl „oglądałem” { 127.0.0.0/8; 192.168.10.0/24; }; logowanie { kanał "default_debug" { plik "data/named.run"; dotkliwość dynamiczna; }; }; klucz „dhcp-key” {algorytm „hmac-md5”; sekret "OI7Vs+TO83L7ghUm2xNVKg=="; }; strefa "." IN { wpisz podpowiedź; plik „named.ca”; }; strefa „localhost.localdomain” IN { wpisz master; plik „named.localhost”; zezwolenie na aktualizację { "brak"; }; }; strefa „localhost” IN { wpisz master; plik „named.localhost”; zezwolenie na aktualizację { "brak"; }; }; strefa „1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” IN { wpisz master; plik „nazwany.loopback”; zezwolenie na aktualizację { "brak"; }; }; strefa „1.0.0.127.in-addr.arpa” IN { wpisz master; plik „nazwany.loopback”; zezwolenie na aktualizację { "brak"; }; }; strefa „0.in-addr.arpa” IN { wpisz master; plik "nazwany.pusty"; zezwolenie na aktualizację { "brak"; }; }; strefa"desdelinux.fan" { wpisz master; plik "dynamic/db.desdelinux.fan"; zezwolenie-update { klucz "klucz-dhcp"; }; }; strefa "10.168.192.in-addr.arpa" { wpisz master; plik "dynamic/db.10.168.192.in-addr.arpa "; zezwolenie na aktualizację { klucz "dhcp-key"; }; }; zarządzane klucze { "." klucz początkowy 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO 8g 0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD F6dsV6DoBQzgul68sGIcGOYl0OyQdXfZ1relS Qageu+ipAdTTJ9AsRTAoub7ONGcLmqrAm RLKBP6dfwhYB3N5knNnulq QxA +Uk2ihz8="; };
  • Postępując zgodnie z procedurą modyfikowania pliku nazwa.conf Zgodnie z naszymi potrzebami i sprawdź i utwórz każdy plik strefy i sprawdź go, wątpimy, że będziemy musieli zmierzyć się z poważnymi problemami konfiguracyjnymi. W końcu zdajemy sobie sprawę, że jest to gra dla chłopców, z wieloma koncepcjami i wymyślną składnią. 

Sprawdzenia dały zadowalające wyniki, możemy zatem ponownie uruchomić BIND o nazwie.

Ponownie uruchamiamy nazwany i sprawdzamy jego status

[root @ dns ~] # systemctl zrestartuj named.service
[root @ dns ~] # status systemctl named.service

Jeśli w wynikach ostatniego polecenia pojawią się jakiekolwiek błędy, należy ponownie uruchomić usługę named.service i ponownie sprawdzić jej status . Jeśli błędy zniknęły, usługa została uruchomiona pomyślnie. W przeciwnym razie należy dokładnie przejrzeć wszystkie zmodyfikowane i utworzone pliki, a następnie powtórzyć procedurę.

Prawidłowe wyjście statusu powinno wyglądać następująco:

[root @ dns ~] # status systemctl named.service
● named.service - Berkeley Internet Name Domain (DNS) Loaded: załadowano (/usr/lib/systemd/system/named.service; włączone; ustawienie dostawcy: wyłączone) Aktywne: aktywny (bieg) od niedzieli 2017-01-29 10:05:32 EST; 2 minuty 57 s temu Proces: 1777 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (kod=zakończono, status=0/SUCCESS) Proces: 1788 ExecStart=/usr/sbin/named -u o nazwie $OPTIONS (kod=zakończono, status=0/SUCCESS) Proces: 1786 ExecStartPre =/bin/bash -c jeśli [ ! "$DISABLE_ZONE_CHECKING" == "tak"]; następnie /usr/sbin/named-checkconf -z /etc/named.conf; else echo "Sprawdzanie plików strefy jest wyłączone"; fi (kod=wyjście, status=0/SUCCESS) Główny PID: 1791 (nazwany) CGroup: /system.slice/named.service └─1791 /usr/sbin/named -u nazwany 29 stycznia 10:05:32 dns nazwany [1791]: strefa 1.0.0.127.in-addr.arpa/IN: załadowano serial 0 sty 29 10:05:32 dns o nazwie[1791]: strefa 10.168.192.in-addr.arpa/IN: załadowano serial 1 stycznia 29 10:05:32 dns o nazwie[1791]: strefa 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN : załadowano serial 0 29 stycznia 10:05:32 dns o nazwie [1791]: strefa desdelinux.fan/IN: załadowano serial 1 stycznia 29 10:05:32 dns nazwany[1791]: strefa localhost.localdomain/IN: załadowano serial 0 stycznia 29:10:05 dns nazwany[32]: strefa localhost/IN: załadowano serial 1791 0 stycznia 29:10:05 dns o nazwie [32]: załadowano wszystkie strefy
29 stycznia 10:05:32 o nazwie dns [1791]: bieganie
29 stycznia 10:05:32 dns systemd [1]: Uruchomiono Berkeley Internet Name Domain (DNS). 29 stycznia 10:05:32 o nazwie dns [1791]: strefa 10.168.192.in-addr.arpa/IN: wysyłanie powiadomień (serial 1)

Czeki

Testy można przeprowadzić na tym samym serwerze lub na komputerze podłączonym do sieci LAN. Wolimy robić je od zespołu administrator systemu.desdelinux.wentylator na którą wyraziliśmy wyraźną zgodę na dokonywanie transferów strefowych. Plik / Etc / resolv.conf tego zespołu są następujące:

buzz @ sysadmin: ~ $ cat /etc/resolv.conf 
# Wygenerowane przez wyszukiwanie NetworkManager desdelinuxSerwer nazw .fan 192.168.10.5

buzz@sysadmin:~$ dig desdelinux.fan axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> desdelinux.fan axfr ;; opcje globalne: +cmd
desdelinux.wentylator. 10800 W SOA dns.desdelinux.wentylator. root.dns.desdelinux.wentylator. 1 86400 3600 604800 10800
desdelinux.wentylator. 10800 W NS dns.desdelinux.wentylator.
desdelinux.wentylator. Adres e-mail 10800 IN MX 10.desdelinux.wentylator.
desdelinux.wentylator. 10800 IN TXT „FromLinux, twój blog poświęcony wolnemu oprogramowaniu” ad-dc.desdelinux.wentylator. 10800 W blogu 192.168.10.3.desdelinux.wentylator. 10800 W 192.168.10.7 dns.desdelinux.wentylator. Serwer plików 10800 IN DO 192.168.10.5.desdelinux.wentylator. 10800 W serwerze ftp 192.168.10.4.desdelinux.wentylator. 10800 W poczcie 192.168.10.8.desdelinux.wentylator. 10800 W sieci proxy 192.168.10.9.desdelinux.wentylator. 10800 W administratorze systemu 192.168.10.6.desdelinux.wentylator. 10800 DO 192.168.10.1
desdelinux.wentylator. 10800 W SOA dns.desdelinux.wentylator. root.dns.desdelinux.wentylator. 1 86400 3600 604800 10800 ;; Czas zapytania: 0 ms ;; SERWER: 192.168.10.5#53(192.168.10.5) ;; KIEDY: niedziela 29 stycznia, 11:44:18 EST 2017;; Rozmiar XFR: 13 rekordów (wiadomości 1, bajty 385)

buzz @ sysadmin: ~ $ dig 10.168.192.in-addr.arpa axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> 10.168.192.in-addr.arpa axfr ;; opcje globalne: +cmd 10.168.192.in-addr.arpa. 10800 W SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800 10.168.192.in-addr.arpa. 10800 W NS dns.desdelinux.wentylator. 1.10.168.192.in-addr.arpa. 10800 W administratorze systemu PTR.desdelinux.wentylator. 3.10.168.192.in-addr.arpa. 10800 IN PTR ad-dc.desdelinux.wentylator. 4.10.168.192.in-addr.arpa. Serwer plików 10800 IN PTR.desdelinux.wentylator. 5.10.168.192.in-addr.arpa. 10800 W PTR dns.desdelinux.wentylator. 6.10.168.192.in-addr.arpa. 10800 W sieci proxy PTR.desdelinux.wentylator. 7.10.168.192.in-addr.arpa. 10800 W blogu PTR.desdelinux.wentylator. 8.10.168.192.in-addr.arpa. Serwer ftp 10800 IN PTR.desdelinux.wentylator. 9.10.168.192.in-addr.arpa. 10800 W poczcie PTR.desdelinux.wentylator. 10.168.192.in-addr.arpa. 10800 W SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800 ;; Czas zapytania: 0 ms ;; SERWER: 192.168.10.5#53(192.168.10.5) ;; KIEDY: niedziela, 29 stycznia, 11:44:57 EST 2017;; Rozmiar XFR: 11 rekordów (wiadomości 1, bajty 352)

buzz@sysadmin:~$ kop w SOA desdelinux.wentylator
buzz@sysadmin:~$ wykop IN MX desdelinux.fan buzz@sysadmin:~$ wykop w TXT desdelinux.wentylator
buzz @ sysadmin: ~ $ host dns
dns.desdelinux.fan ma adres 192.168.10.5
buzz @ sysadmin: ~ $ host sysadmin
administrator systemu.desdelinux.fan ma adres 192.168.10.1 ... I wszelkie inne potrzebne kontrole
  • Póki co mamy podstawy dla serwera DNS w naszej sieci MŚP. Mamy nadzieję, że podobała Ci się cała procedura, która była dość prosta, prawda? 

Instalujemy i konfigurujemy DHCP

[root @ dns ~] # yum install dhcp
Wczytane wtyczki: najszybszy mirror, paczki językowe bazujące na centos | 3.4 kB 00:00:00 centos-aktualizacje | 3.4 kB 00:00:00 Ładowanie szybkości serwerów lustrzanych z buforowanego pliku hosta Rozwiązywanie zależności -> Uruchomiony test transakcji ---> Pakiet dhcp.x86_64 12: Należy zainstalować 4.2.5-42.el7.centos -> Rozwiązywanie zależności zakończone Rozwiązane zależności =============================================== ================================================ =================================== Architektura pakietu Wersja repozytorium Rozmiar repozytorium =========== ================================================ =================================================== ====================== Instalowanie: dhcp x86_64 12: 4.2.5-42.el7.centos centos-base 511 k Podsumowanie transakcji ==== =================================================== =================================================== ============================ Zainstaluj 1 pakiet Całkowity rozmiar do pobrania: 511 KB Zainstalowany rozmiar: 1.4 mln Czy wszystko w porządku [y / d / N]: y Pobieranie pakietów: dhcp-4.2.5-42.el7.centos.x86_64.rpm | 511 kB 00:00:00 Sprawdzanie transakcji Wykonywanie testu transakcji Test transakcji zakończony sukcesem Trwa uruchamianie transakcji Instalowanie: 12: dhcp-4.2.5-42.el7.centos.x86_64 1/1 Sprawdzanie: 12: dhcp-4.2.5-42. el7.centos.x86_64 1/1 Zainstalowano: dhcp.x86_64 12: 4.2.5-42.el7.centos Gotowe!

[root @ dns ~] # nano /etc/dhcp/dhcpd.conf
# # Plik konfiguracyjny serwera DHCP. # zobacz /usr/share/doc/dhcp*/dhcpd.conf.example # zobacz stronę podręcznika dhcpd.conf(5) # ddns-update-style tymczasowe; aktualizacje ddns włączone; nazwa-domeny ddns "desdelinux.fan."; ddns-rev-domainname "in-addr.arpa."; ignoruj ​​aktualizacje klienta; autorytatywny; opcja przekazywania ip wyłączona; opcja nazwa-domeny "desdelinux.fan"; # opcja ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org; dołącz "/etc/dhcp.key" ; strefa desdelinux.wentylator. {podstawowy 127.0.0.1; klucz klucz DHCP; } strefa 10.168.192.in-addr.arpa. {podstawowy 127.0.0.1; klucz klucz DHCP; } sieć współdzielona redlocal { podsieć 192.168.10.0 maska ​​sieci 255.255.255.0 { opcja routery 192.168.10.1; opcja maska ​​podsieci 255.255.255.0; opcja adres rozgłoszeniowy 192.168.10.255; opcja serwery nazw domen 192.168.10.5; opcja netbios-name-servers 192.168.10.5; zakres 192.168.10.30 192.168.10.250; } } # KONIEC dhcpd.conf

[root @ dns ~] # dhcpd -t
Konsorcjum Internet Systems Serwer DHCP 4.2.5 Copyright 2004-2013 Konsorcjum Internet Systems. Wszelkie prawa zastrzeżone. Aby uzyskać informacje, odwiedź https://www.isc.org/software/dhcp/ Nie wyszukuje LDAP, ponieważ ldap-server, ldap-port i ldap-base-dn nie zostały określone w pliku konfiguracyjnym

[root @ dns ~] # systemctl włącz dhcpd
Utworzono dowiązanie symboliczne z /etc/systemd/system/multi-user.target.wants/dhcpd.service do /usr/lib/systemd/system/dhcpd.service.

[root @ dns ~] # systemctl start dhcpd

[root @ dns ~] # systemctl status dhcpd
● dhcpd.service - Załadowano demona serwera DHCPv4: załadowano (/usr/lib/systemd/system/dhcpd.service; włączone; ustawienie dostawcy: wyłączone) Aktywne: aktywne (działa) od dnia 2017 01:29:12 ITS T; 04 s temu Dokumenty: człowiek: dhcpd (59) człowiek: dhcpd.conf (23) Główny PID: 8 (dhcpd) Status: „Wysyłanie pakietów ...” CGroup: /system.slice/dhcpd.service └─5 / usr / sbin / dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid 2381 stycznia 2381:29:12 dns dhcpd [04]: Internet Systems Consortium DHCP Server 59 2381 stycznia 4.2.5 : 29: 12 dns dhcpd [04]: Copyright 59-2381 Internet Systems Consortium. 2004 stycznia 2013:29:12 dns dhcpd [04]: Wszelkie prawa zastrzeżone. 59 stycznia 2381:29:12 dns dhcpd [04]: Aby uzyskać informacje, odwiedź stronę https://www.isc.org/software/dhcp/ 59 stycznia 2381:29:12 dns dhcpd [04]: nie wyszukuje LDAP od ldap -server, ldap-port i ldap-base-dn nie zostały określone w pliku konfiguracyjnym 59 stycznia 2381:29:12 dns dhcpd [04]: napisano 59 dzierżaw do pliku dzierżaw. 2381 stycznia 0:29:12 dns dhcpd [04]: Słuchanie na LPF / eth59 / 2381: 0: 52: 54: 00: 12 / redlocal 17 stycznia 04:29:12 dns dhcpd [04]: wysyłanie na LPF / eth59 / 2381: 0: 52: 54: 00: 12 / redlocal 17 stycznia 04:29:12 dns dhcpd [04]: Wysyłanie na Socket / fallback / fallback-net 59 stycznia 2381:29:12 dns systemd [04]: Rozpoczęto Demon serwera DHCPv59.

Co pozostało do zrobienia?

Prosty. Uruchom klienta Windows 7 lub innego z wolnym oprogramowaniem i zacznij testować i sprawdzać. Zrobiliśmy to z dwoma klientami: siedem.desdelinux.wentylator y suuse-desktop.desdelinux.wentylator. Kontrole były następujące:

buzz @ sysadmin: ~ $ host siedem
siedem.desdelinux.fan ma adres 192.168.10.30

buzz@sysadmin:~$ gospodarz siedem.desdelinux.wentylator
siedem.desdelinux.fan ma adres 192.168.10.30

buzz@sysadmin:~$ wykop w TXT siedem.desdelinux.wentylator
.... ;; SEKCJA PYTań: ;siedem.desdelinux.wentylator. W TXT ;; CZĘŚĆ ODPOWIEDZI: siedem.desdelinux.wentylator. 3600 W TXT”31b7228ddd3a3b73be2fda9e09e601f3e9„…

Zmieniamy nazwę zespołu z „siedem” na „LAGER” i uruchamiamy ponownie. Po restarcie nowego LAGERA sprawdzamy:

buzz @ sysadmin: ~ $ host siedem
Nie znaleziono hosta siedem: 5 (ODMOWA)

buzz@sysadmin:~$ gospodarz siedem.desdelinux.wentylator
Gospodarz siódmy.desdelinuxNie znaleziono .fan: 3(NXDOMAIN)

brzęczenie@sysadmin: ~ $ host lager
piwo.desdelinux.fan ma adres 192.168.10.30

brzęczenie@sysadmin:~$Lager hosta.desdelinux.wentylator
piwo.desdelinux.fan ma adres 192.168.10.30

buzz@sysadmin:~$ wykop w TXT lager.desdelinux.wentylator
.... ;; SEKCJA PYTań: ;lager.desdelinux.wentylator. W TXT ;; SEKCJA ODPOWIEDZI: lager.desdelinux.wentylator. 3600 W TXT”31b7228ddd3a3b73be2fda9e09e601f3e9„…

Odnośnie klienta suse-desktop:

buzz @ sysadmin: ~ $ host suse-dektop
Nie znaleziono hosta suse-dektop: 5 (ODMOWA)

buzz @ sysadmin: ~ $ host suse-desktop
suuse-desktop.desdelinux.fan ma adres 192.168.10.33

buzz@sysadmin:~$ host suse-desktop.desdelinux.wentylator
suuse-desktop.desdelinux.fan ma adres 192.168.10.33

buzz @ sysadmin: ~ $ host 192.168.10.33
33.10.168.192.in-addr.arpa wskaźnik nazwy domeny suse-desktop.desdelinux.wentylator.

buzz @ sysadmin: ~ $ host 192.168.10.30
30.10.168.192.in-addr.arpa wskaźnik nazwy domeny LAGER.desdelinux.wentylator.
buzz @ sysadmin: ~ $ dig -x 192.168.10.33
.... ;; SEKCJA PYTANIA: ;33.10.168.192.in-addr.arpa. W PTR ;; SEKCJA ODPOWIEDZI: 33.10.168.192.in-addr.arpa. 3600 IN PTR suuse-desktop.desdelinux.wentylator. ;; SEKCJA ORGANÓW: 10.168.192.in-addr.arpa. 10800 W NS dns.desdelinux.wentylator. ;; SEKCJA DODATKOWA: dns.desdelinux.wentylator. 10800 DO 192.168.10.5 ....

buzz@sysadmin:~$ wykop w TXT suse-desktop.desdelinux.wentylator....
;suse-desktop.desdelinux.wentylator. W TXT ;; SEKCJA ODPOWIEDZI: suse-desktop.desdelinux.wentylator. 3600 W TXT "31b78d287769160c93e6dca472e9b46d73"

;; SEKCJA AUTORYTETOWA:
desdelinux.wentylator. 10800 W NS dns.desdelinux.wentylator. ;; SEKCJA DODATKOWA: dns.desdelinux.wentylator. 10800 DO 192.168.10.5
....

Uruchommy również następujące polecenia

[root@dns ~]# wykop desdelinux.fan axfr
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> desdelinux.fan axfr ;; opcje globalne: +cmd
desdelinux.wentylator. 10800 W SOA dns.desdelinux.wentylator. root.dns.desdelinux.wentylator. 6 86400 3600 604800 10800
desdelinux.wentylator. 10800 W NS dns.desdelinux.wentylator.
desdelinux.wentylator. Adres e-mail 10800 IN MX 10.desdelinux.wentylator.
desdelinux.wentylator. 10800 IN TXT „FromLinux, twój blog poświęcony wolnemu oprogramowaniu” ad-dc.desdelinux.wentylator. 10800 W blogu 192.168.10.3.desdelinux.wentylator. 10800 W 192.168.10.7 dns.desdelinux.wentylator. Serwer plików 10800 IN DO 192.168.10.5.desdelinux.wentylator. 10800 W serwerze ftp 192.168.10.4.desdelinux.wentylator. 10800 W DUŻYM 192.168.10.8.desdelinux.wentylator. 3600 W TXT”31b7228ddd3a3b73be2fda9e09e601f3e9„LAGER.desdelinux.wentylator.   3600 W e-mailu o adresie 192.168.10.30.desdelinux.wentylator. 10800 W sieci proxy 192.168.10.9.desdelinux.wentylator. 10800 W 192.168.10.6 Suuse-Desktop.desdelinux.wentylator. 3600 W TXT”31b78d287769160c93e6dca472e9b46d73"suse-desktop.desdelinux.wentylator. 3600 W administratorze systemu 192.168.10.33.desdelinux.wentylator. 10800 DO 192.168.10.1
desdelinux.wentylator. 10800 W SOA dns.desdelinux.wentylator. root.dns.desdelinux.wentylator. 6 86400 3600 604800 10800

W poprzednim przykładzie wyróżniliśmy pogrubioną czcionką wartości TTL (w sekundach) dla urządzeń z adresami IP przypisanymi przez usługę DHCP, które mają jawną deklarację wartości TTL 3600, podaną przez DHCP. Statyczne adresy IP są regulowane przez wartość TTL 3H (3 godziny = 10800 sekund) zadeklarowaną w rekordzie SOA każdego pliku strefy.

W ten sam sposób mogą sprawdzić strefę odwrotną.

[root @ dns ~] # dig 10.168.192.in-addr.arpa axfr

Inne niezwykle interesujące polecenia to:

[root@dns ~]# nazwany-journalprint /var/named/dynamic/db.desdelinux.fan.jnl
[root @ dns ~] # named-journalprint /var/named/dynamic/db.10.168.192.in-addr.arpa.jnl
[root @ dns ~] # journalctl -f

Ręczna modyfikacja plików stref

Gdy DHCP przejmie dynamiczną aktualizację plików strefy serwera nazw , jeśli kiedykolwiek zajdzie potrzeba ręcznej modyfikacji pliku strefy, musimy wykonać następującą procedurę, ale nie wcześniej niż po zapoznaniu się z tym, jak narzędzie rndc kontroluje serwer nazw.

[root @ dns ~] # man rndc
....
       zamroź [strefa [klasa [widok]]]
           Zawieś aktualizacje strefy dynamicznej. Jeśli nie określono żadnej strefy, wszystkie strefy są zawieszone. Dzięki temu można ręcznie edytować strefę, która jest normalnie aktualizowana przez aktualizację dynamiczną. Powoduje również synchronizację zmian w pliku dziennika z plikiem głównym. Wszystkie próby dynamicznej aktualizacji będą odrzucane, gdy strefa jest zamrożona.

       odwilż [strefa [klasa [widok]]]
           Włącz aktualizacje zamrożonej strefy dynamicznej. Jeśli nie określono żadnej strefy, wszystkie zamrożone strefy są włączone. Powoduje to, że serwer ponownie ładuje strefę z dysku i ponownie włącza aktualizacje dynamiczne po zakończeniu ładowania. Po odblokowaniu strefy aktualizacje dynamiczne nie będą już odrzucane. Jeśli strefa uległa zmianie i jest używana opcja ixfr-from-Difference, plik dziennika zostanie zaktualizowany, aby odzwierciedlić zmiany w strefie. W przeciwnym razie, jeśli strefa uległa zmianie, istniejący plik dziennika zostanie usunięty. ....

A co, myślałeś, że przepiszę całą instrukcję?... kawałek i jadą samochodem. Resztę pozostawiam Tobie. 

Zasadniczo:

  • rndc freeze [strefa [klasa [widok]]], zawiesza dynamiczną aktualizację strefy. Jeśli nie zostanie określony, wszystkie zamarzną. Polecenie umożliwia ręczną edycję zamrożonej strefy lub wszystkich stref. Każda dynamiczna aktualizacja zostanie zablokowana.
  • rndc odwilż [strefa [klasa [widok]]], umożliwia dynamiczne aktualizacje wcześniej zamrożonej strefy. Serwer DNS ponownie ładuje plik strefy z dysku, a aktualizacje dynamiczne są ponownie włączane po zakończeniu ponownego ładowania.

Jakie środki ostrożności należy podjąć podczas ręcznej edycji pliku strefy? Takie same, jak podczas jego tworzenia, pamiętając o zwiększeniu numeru seryjnego o 1 przed zapisaniem pliku z ostatecznymi zmianami.

przykład:

[root @ dns ~] # rndc zamrozić desdelinux.wentylator

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.wentylator
Modyfikuję plik strefy z dowolnego powodu, koniecznego lub nie. Zapisuję zmiany

[root @ dns ~] # rndc thaw desdelinux.wentylator
Rozpoczęto przeładowanie i rozmrażanie strefy. Sprawdź dzienniki, aby zobaczyć wynik.

[root @ dns ~] # journalctl -f
29 stycznia 14:06:46 dns o nazwie[2257]: strefa rozmrażania 'desdelinux.fan/IN': sukces
29 stycznia 14:06:46 dns o nazwie[2257]: strefa desdelinux.fan/IN: numer linii (6) bez zmian. Strefa może nie zostać przesłana do urządzeń podrzędnych.
29 stycznia 14:06:46 dns o nazwie[2257]: strefa desdelinux.fan/IN: załadowano serial 6

Błąd w poprzednim wyjściu, który pojawia się na konsoli na czerwono, wynika z tego, że „zapomniałem” zwiększyć numer seryjny o 1. Gdybym poprawnie wykonał procedurę, wynik wyglądałby tak:

[root @ dns ~] # journalctl -f
-- Dzienniki rozpoczynają się w niedzielę 2017 o godzinie 01:29:08 EST. -- 31 stycznia 32:29:14 dns o nazwie[06]: strefa desdelinux.fan/IN: załadowano serial 6 stycznia 29 14:10:01 dns systemd[1]: Rozpoczęto sesję 43 użytkownika root. 29 stycznia 14:10:01 dns systemd[1]: Rozpoczęcie sesji 43 użytkownika root. 29 stycznia 14:10:01 dns CROND[2693]: (root) CMD (/usr/lib64/sa/sa1 1 1) 29 stycznia 14:10:45 dns nazwany[2257]: otrzymano polecenie kanału sterującego „zamrożenie” desdelinux.fan' 29 stycznia 14:10:45 dns o nazwie[2257]: strefa zamrażania 'desdelinux.fan/IN': sukces 29 stycznia 14:10:58 dns o nazwie [2257]: otrzymano polecenie kanału sterującego „thaw” desdelinux.fan' 29 stycznia 14:10:58 dns o nazwie[2257]: strefa rozmrażania 'desdelinux.fan/IN': sukces 29 stycznia 14:10:58 dns o nazwie[2257]: strefa desdelinux.fan/IN: plik dziennika jest nieaktualny: usuwanie pliku dziennika 29 stycznia 14:10:58 dns o nazwie[2257]: strefa desdelinux.fan/IN: załadowano serial 7
  • Przyjaciele czytelnicy, powtarzam, że trzeba uważnie przeczytać wyjścia poleceń. Na coś, co jego programiści poświęcili tyle pracy na programowanie każdego polecenia, bez względu na to, jakie jest proste.

streszczenie

Do tej pory zajmowaliśmy się wdrażaniem pary DNS - DHCP, usługami ważnymi i kluczowymi dla dobrego działania naszej sieci SME, dotyczącymi nadawania adresów dynamicznych poprzez DHCP oraz rozwiązywania nazw komputerów i domen przez DNS.

Mamy wielką nadzieję, że podobała Ci się cała procedura, tak jak my. Chociaż korzystanie z konsoli może wydawać się trudniejsze, znacznie łatwiejsze i bardziej pouczające jest wdrożenie usługi w systemie UNIX® / Linux z jej pomocą.

Wybacza się mi wszelkie błędne interpretacje koncepcji wymyślonych, stworzonych, napisanych, poprawionych, przepisanych i opublikowanych w języku Szekspira, a nie Cervantesa. 

Następna dostawa

Myślę, że trochę więcej tego samego - z teoretycznymi dodatkami do rekordów DNS - ale w Debianie. Nie możemy zapomnieć o tej dystrybucji, prawda?


Dodaj jako preferowane źródło w Google