Diese Anleitung zeigt, wie ein DNS-Server in RHEL 8 / CentOS 8 nur im Caching-Modus oder als einzelner DNS-Server ohne Master-Slave-Konfiguration installiert und konfiguriert wird. Ein Beispiel für Rückwärts- und Vorwärtszonen wird bereitgestellt.
In diesem Tutorial lernen Sie:
- So installieren Sie einen DNS-Server in RHEL 8 / CentOS 8
- So konfigurieren Sie einen Server als nur zwischenspeichernden DNS-Server
- So konfigurieren Sie einen Server als einzelnen DNS-Server
Client, der eine Abfrage über den DNS-Server auflöst.
Softwareanforderungen und verwendete Konventionen
Kategorie | Vernetzung |
---|---|
System | RHEL 8 / CentOS 8 |
Software | binden |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Voraussetzungen
Vor dem Start wird angenommen, dass:
- Sie oder Ihre Organisation haben bereits ein Konto in Red Hat erstellt
- RHEL 8 / CentOS 8 wurde bereits heruntergeladen und installiert
- Das System wurde bereits über den Abonnement-
Manager
registriert - Sie haben bereits ein lokales oder entferntes Repository eingerichtet
DNS-Server-Installation
- Bind-Installation
Wir werden das Paket BIND, den berühmtesten Open-Source-DNS-Server, über dendnf
installieren Tool zu dem jetztyum
basiert.
Der auszuführende Befehl lautet:# dnf -y install bind*
Was alle diese Pakete installieren sollte:
Liste der Bind-Pakete
Allgemeine DNS-Serverkonfiguration
- Konfigurieren der Firewall
Wir müssen den DNS-Dienst aktivieren:# firewall-cmd --permanent --zone=public --add-service=dns
und laden Sie die Konfiguration neu:
# firewall-cmd --reload
- Hauptkonfigurationsdateien sichern
Es ist immer eine gute Angewohnheit, eine anfängliche Sicherungskopie der Hauptkonfigurationsdateien zu erstellen; auch vor jeder Änderung.# cp /etc/named.conf /etc/named.conf.org # cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.org
- Überprüfen der Netzwerkkonfiguration
Ein DNS-Server muss eine statische IP-Adresse haben, lassen Sie uns überprüfen, ob dies der Fall ist:$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s3|egrep -i "boot|ipaddr|mask|gateway"
Was zum Beispiel zu den folgenden Ergebnissen führt:
BOOTPROTO=static ONBOOT=yes IPADDR=10.0.0.63 NETMASK=255.255.255.0 GATEWAY=10.0.0.1
Natürlich kann Ihre Netzwerkkonfiguration anders sein, aber auch hier muss die IP-Adresse statisch sein.
- Auswahl des Domainnamens
Um einen vollqualifizierten Domainnamen oder FQDN festzulegen# hostnamectl set-host name dns-srv.vulcansys-local.com
Sie können natürlich einen anderen Namen wählen, hier habe ich einen Domainnamen erfunden, der anscheinend bei keiner Organisation registriert wurde.
- Resolver-Konfiguration
Wir werden dieresolv.conf
konfigurieren Datei. Die ersten Zeilen müssen sein:search vulcansys-local.com nameserver 10.0.0.63
Dies ist sowohl im Server als auch in jedem Client, der unser DNS abfragt; Natürlich müssen Sie einen zweiten Nameserver hinzufügen, um Internetseiten oder andere Domains aufzulösen.
- DNS-Autokonfiguration von Network Manager deaktivieren
Wir möchten nicht, dass der Network Manager dieresolv.conf
ändert Datei. Dazu fügen wir einfach die
Zeile hinzu:dns=none
in der Datei/etc/NetworkManager/NetworkManager.conf
, und wir laden den Dienst neu:# systemctl reload NetworkManager
- Den Bindungsdienst beim Start aktivieren
Wir müssen sicherstellen, dass der DNS-Dienst mit dem System gestartet wird, also:# systemctl enable named
DNS-Servertypen
Es ist möglich, einen DNS-Server so zu konfigurieren, dass er in einem der folgenden Modi arbeitet, jeweils nur in einem:
- Root-Server
- Einzelner Server
- Sekundärserver
- Nur-Caching-Server
- Weiterleitungsserver
In diesem Artikel beschreiben wir nur, wie man einen Nur-Caching-Server und einen Einzelserver einrichtet.
Ein Nur-Caching-DNS-Server hostet keine Zone und ist nicht autorisierend für eine bestimmte Domäne; Wenn der Server zum ersten Mal gestartet wird, hat er keine zwischengespeicherten Informationen und die Informationen werden im Laufe der Zeit abgerufen, wenn Client-Anfragen
erfüllt werden.
Ein primärer oder einzelner DNS-Server ist autorisierend für eine Domäne, aber wir haben keine hohe Verfügbarkeit und daher funktioniert keine DNS-Abfrage für die Domäne, wenn er ausgefallen oder nicht erreichbar ist, es sei denn, er wird in der statischen Datei /etc/hosts
.
Was wir bisher konfiguriert haben, ist üblich, egal welchen „Konfigurationsmodus“ wir wählen werden.
- Caching only DNS Server
Wir stellen sicher, dass die folgenden Zeilen in dernamed.conf
geändert/konfiguriert werden Datei:listen-on port 53 { 127.0.0.1; 10.0.0.63; }; #listen-on-v6 port 53 { ::1; }; allow-query { 127.0.0.1; 10.0.0.0/24; }; recursion yes; allow-recursion { 127.0.0.1; 10.0.0.0/24; };
Der Einfachheit halber wird der Server hier nicht auf eine IPv6-Adresse lauschen ( die entsprechende Zeile ist daher auskommentiert ). Um zu überprüfen, ob die Konfiguration in Ordnung ist, können wir den Befehl ausführen:
# named-checkconf
Wenn alles in Ordnung ist, wird keine Ausgabe zurückgegeben. Schließlich müssen wir den Dienst seine Konfiguration neu laden lassen:
# systemctl reload named
- Einzelner DNS-Server
Falls wir diesen Typ wählen, ist er unser autoritativer DNS-Server, der für jede Namensauflösung in der von uns gewählten Domain verantwortlich ist. Auch hier bearbeiten wir/etc/named.conf
:listen-on port 53 { localhost; 10.0.0.63; }; #listen-on-v6 port 53 { ::1; }; allow-query { 127.0.0.1; 10.0.0.0/24; }; recursion no;
In diesem Handbuch stellen wir der Einfachheit halber den Bindungsdienst nicht so ein, dass er eine IPv6-Adresse abhört.
Die Option
recursion no
stellt sicher, dass das DNS nicht die ganze Arbeit erledigt, um eine Antwort auf eine bestimmte Anfrage zu geben, sondern die Aufgabe für diese unbekannten Namen oder IPs bei Bedarf an die Root-Server und andere autoritative Server delegiert. Mit anderen Worten:Ein autoritativer Server darf nicht rekursiv sein .Danach müssen wir unsere Zonendateien spezifizieren; Hier konfigurieren wir eine Weiterleitungszone (um einen Namen in eine IP aufzulösen) und eine Reverse Zone (zur Auflösung in einen Namen bei gegebener IP-Adresse) jeweils in seiner spezifischen Datei, indem Sie die folgenden Zeilen an die Datei
named.rfc1912.zones
anhängen Datei:zone "vulcansys-local.com" IN { type master; file "forward.zone"; allow-update { none; }; }; zone "63.0.0.10.in-addr.arpa" IN { type master; file "reverse.zone"; allow-update { none; }; };
Die Option
allow-update
bezieht sich auf dynamische DNS-Updates, d. h. eine Anwendung in einem Host kann einen DNS-Eintrag hinzufügen; Aus Sicherheitsgründen ist dies standardmäßig deaktiviert und daher kann nur der Systemadministrator Datensätze manuell hinzufügen.Jetzt müssen wir die Dateien
forward.zone
erstellen undreverse.zone
. Normalerweise befinden sich die Zonendateien im
Verzeichnis/var/named
wie wir demdirectory
entnehmen können Option in dernamed.conf
Konfigurationsdatei.Unsere
forward.zone
Datei enthält:$TTL 1D @ IN SOA dns-srv.vulcansys-local.com. root.vulcansys-local.com. ( 2019022400 ; serial 3h ; refresh 15 ; retry 1w ; expire 3h ; minimum ) IN NS dns-srv.vulcansys-local.com. dns-srv IN A 10.0.0.63
Und die
reverse.zone
Datei:$TTL 1D @ IN SOA dns-srv.vulcansys-local.com. root.vulcansys-local.com. ( 2019022400 ; serial 3h ; refresh 15 ; retry 1w ; expire 3h ; minimum ) IN NS dns-srv.vulcansys-local.com. 63 IN PTR dns-srv.vulcansys-local.com
In den erwähnten Konfigurationsdateien
SOA
(Start Of Authority) definiert die globalen Parameter für die Zone (Domäne); Es kann nur ein Ressourceneintrag angegeben werden (die Zeile mit dem SOA-Schlüsselwort mit unserem vollständig qualifizierten Domänennamen). Die Time To Leave ($TTL) beträgt standardmäßig 1 Tag (oder 86400 Sekunden) und sollte vorübergehend verkürzt werden, wenn ein Eintrag in dieser Konfigurationsdatei geändert wird, da sie dem DNS-Server mitteilt, wie lange abgerufene Informationen zwischengespeichert werden sollen. Am wichtigsten ist es, daran zu denken, jeden vollständig qualifizierten Domänennamen in diesen Konfigurationsdateien mit einem Punkt zu beenden .Hier
root.vulcansys-local.com
ist die E-Mail-Adresse und2019022400
ein serielles Feld, das in der Praxis dazu dient, jede Änderung in der Zonendatei nachzuverfolgen, und üblicherweise die FormYYYYmmddss
hat , wobeiss
ist eine zweistellige Zahl.In der umgekehrten Datei haben Sie vielleicht bemerkt, dass bis auf die letzte Zeile alles gleich aussieht. Dort spezifizieren wir mit
PTR
eine Rückwärtssuche, die zu10.0.0.63
aufgelöst wird; Es muss nur die letzte Ziffer63
eingegeben werden der den Host identifiziert (als Netzmaske ist255.255.255.0
).Jetzt stellen wir sicher, dass wir die richtigen Berechtigungen haben:
# chgrp named /var/named/reverse.zone # chgrp named /var/named/forward.zone
Um zu überprüfen, ob die Zonendateien korrekt konfiguriert sind, können Sie die folgenden Befehle ausführen:
# named-checkzone vulcansys-local.com /var/named/forward.zone # named-checkzone 10.0.0.63 /var/named/reverse.zone
Und um die Gesamtkonfiguration zu überprüfen:
# named-checkconf -v
Wenn alles in Ordnung ist, können wir den Dienst neu laden:
# systemctl reload named
Client-Konfiguration
- Firewall konfigurieren
Wir müssen die Firewall wie oben beschrieben mit dem Server konfigurieren. Der Einfachheit halber gehe ich davon aus, dass der Client auch ein RHEL 7 oder 8 ist. - Resolver-Konfiguration
Der erste Nameserver muss unser Server-DNS sein, stellen Sie auch hier sicher, dass der Network Manager die resolv.conf-Datei nicht verändert. - Festlegen des Hostnamens
Aus Gründen der Konsistenz würde jedem Client in der Domäne ein FQDN-Hostname zugewiesen.
Schließlich überprüfen wir, ob unsere DNS-Konfiguration von einem Client aus funktioniert, indem wir versuchen, den DNS-Server nach Namen zu pingen.
Client, der eine Abfrage über den DNS-Server auflöst.Schlussfolgerung
Das Einrichten eines DNS-Servers ist eine Aufgabe, die jeder ernsthafte Administrator mindestens einmal durchgeführt haben sollte, und in RHEL 8 ist die Vorgehensweise nicht schwierig.