GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Einrichtung eines ungebundenen Nur-Cache-DNS-Servers unter RHEL 7 Linux

Einführung

Unbound ist ein validierender, rekursiver und zwischenspeichernder DNS-Server. Allerdings kann der ungebundene DNS-Server nicht als autoritativer DNS-Server verwendet werden, was bedeutet, dass er nicht zum Hosten benutzerdefinierter Domänennameneinträge verwendet werden kann. Wenn es Ihr Ziel ist, einen Nur-Cache- oder Weiterleitungs-DNS-Server zu erstellen, ist Unbound daher möglicherweise Ihre bevorzugte Wahl, da es genau das tut und es gut macht.

Ziel

Ziel ist es, eine schnell und einfach zu befolgende Installations- und Konfigurationsanleitung für den Unbound-Cache-Only-DNS-Server auf Redhat 7 Linux bereitzustellen. Am Ende dieses Handbuchs können Sie den ungebundenen DNS-Server von allen Clients in Ihrem lokalen Netzwerk verwenden.

Anforderungen

Privilegierter Zugriff auf Ihren RedHat 7 Linux-Server mit konfigurierten Standard-RedHat-Repositories.

Schwierigkeit

MITTEL

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

Anleitung

Ungebundene und DNS-Tools-Installation

Im ersten Schritt installieren wir den eigentlichen ungebundenen DNS-Server sowie DNS-Tools, die schließlich zum Testen Ihrer reinen DNS-Cache-Serverkonfiguration verwendet werden. Vorausgesetzt, Sie haben Ihr Redhat-Repository richtig konfiguriert, können Sie beide installieren, indem Sie den folgenden Linux-Befehl ausführen:

# yum install unbound bind-utils

Grundlegende ungebundene Konfiguration

Jetzt werden wir eine grundlegende Konfiguration des Nur-Caching-Servers für ungebundenes DNS durchführen. Dazu bearbeiten Sie die Konfigurationsdatei von Unbound /etc/unbound/unbound.conf entweder mit einem Texteditor oder mit einem der folgenden sed Befehle. Suchen Sie zunächst mit Ihrem bevorzugten Texteditor die Zeile # interface: 0.0.0.0 und kommentieren Sie es aus, indem Sie das vorangestellte # entfernen Schild. Verwenden Sie alternativ den folgenden sed Befehl:

# sed -i '/interface: 0.0.0.0$/s/#//' /etc/unbound/unbound.conf

Die obige Konfiguration weist den ungebundenen DNS-Server an, auf allen lokalen Netzwerkschnittstellen zu lauschen. Erlauben Sie als Nächstes Ihren LAN-Clients, den Cache von Unbound abzufragen. Suchen Sie die entsprechende Zeile und ändern Sie die Standard-Loopback-IP-Adresse 127.0.0.0/8 an Netzwerkadresse Ihres LAN zB. 10.0.0.0/24 :

FROM:
access-control: 127.0.0.0/8 allow
TO
access-control: 10.0.0.0/24 allow

Das Obige kann auch mit sed durchgeführt werden Befehl:

# sed -i 's/127.0.0.0\/8 allow/10.0.0.0\/24 allow/' /etc/unbound/unbound.conf

DNSSEC-Unterstützung einrichten

Als Nächstes weisen wir den ungebundenen DNS-Server an, RSA-Schlüssel zu generieren, um DNSSEC-Unterstützung bereitzustellen:

# unbound-control-setup 
setup in directory /etc/unbound
generating unbound_server.key
Generating RSA private key, 1536 bit long modulus
.................++++
.........++++
e is 65537 (0x10001)
generating unbound_control.key
Generating RSA private key, 1536 bit long modulus
.........++++
..................................++++
e is 65537 (0x10001)
create unbound_server.pem (self signed certificate)
create unbound_control.pem (signed client certificate)
Signature ok
subject=/CN=unbound-control
Getting CA Private Key
Setup success. Certificates created. Enable in unbound.conf file to use

Alles, was bleibt, ist die Konfiguration von Unbound zu überprüfen:

# unbound-checkconf
unbound-checkconf: no errors in /etc/unbound/unbound.conf

Unbound-Server aktivieren und starten

In diesem Stadium aktivieren wir den ungebundenen DNS-Server, um beim Booten zu starten:

# systemctl enable unbound
Created symlink from /etc/systemd/system/multi-user.target.wants/unbound.service to /usr/lib/systemd/system/unbound.service.

und starten Sie den eigentlichen Dienst:

# service unbound start
Redirecting to /bin/systemctl start  unbound.service

Stellen Sie sicher, dass der ungebundene DNS-Server läuft, indem Sie seinen Status überprüfen:

[root@localhost unbound]# service unbound status
Redirecting to /bin/systemctl status  unbound.service
● unbound.service - Unbound recursive Domain Name Server
   Loaded: loaded (/usr/lib/systemd/system/unbound.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2016-12-07 10:32:58 AEDT; 6s ago
  Process: 2355 ExecStartPre=/usr/sbin/unbound-anchor -a /var/lib/unbound/root.key -c /etc/unbound/icannbundle.pem (code=exited, status=0/SUCCESS)
  Process: 2353 ExecStartPre=/usr/sbin/unbound-checkconf (code=exited, status=0/SUCCESS)
 Main PID: 2357 (unbound)
   CGroup: /system.slice/unbound.service
           └─2357 /usr/sbin/unbound -d

Dec 07 10:32:57 localhost.localdomain systemd[1]: Starting Unbound recursive Domain Name Server...
Dec 07 10:32:57 localhost.localdomain unbound-checkconf[2353]: unbound-checkconf: no errors in /etc/unbound/unbound.conf
Dec 07 10:32:58 localhost.localdomain systemd[1]: Started Unbound recursive Domain Name Server.
Dec 07 10:32:58 localhost.localdomain unbound[2357]: Dec 07 10:32:58 unbound[2357:0] warning: increased limit(open files) from 1024 to 8266
Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] notice: init module 0: validator
Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] notice: init module 1: iterator
Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] info: start of service (unbound 1.4.20).

DNS-Firewall-Port öffnen

Damit Ihre lokalen LAN-Clients eine Verbindung zu Ihrem neuen ungebundenen Cache-Only-DNS-Server herstellen können, müssen Sie einen DNS-Port öffnen:

# firewall-cmd --permanent --add-service dns
success
# firewall-cmd --reload
success

Alles fertig, wir sind jetzt bereit zum Testen.

Testen

Schließlich sind wir an einem Punkt angelangt, an dem wir einige grundlegende Tests unseres neuen ungebundenen DNS-Cache-Only-Servers durchführen können. Dafür verwenden wir dig Befehl, der ein Teil der zuvor installierten bind-utils ist Paket, um einige DNS-Abfragen durchzuführen. Führen Sie zuerst eine DNS-Abfrage auf dem tatsächlichen DNS-Server aus:

# dig @localhost example.com

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @localhost example.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53485
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            86400   IN      A       93.184.216.34

;; Query time: 817 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 07 10:40:46 AEDT 2016
;; MSG SIZE  rcvd: 56

Beachten Sie, dass die Abfragezeit mehr als 817 ms beträgt. Da wir einen Nur-Cache-DNS-Server konfiguriert haben, wird diese Abfrage jetzt zwischengespeichert, sodass jede nachfolgende DNS-Abfrageauflösung desselben Domänennamens ziemlich sofort erfolgt:

# dig @localhost example.com

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @localhost example.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34443
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            86272   IN      A       93.184.216.34

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 07 10:42:54 AEDT 2016
;; MSG SIZE  rcvd: 56

Schließlich können Sie jetzt die Konfiguration des Ubound-DNS-Servers von Ihren lokalen LAN-Clients aus testen, indem Sie sie auf die IP-Adresse von Unbound verweisen, z. 10.1.1.45:

$ dig @10.1.1.45 example.com

; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> @10.1.1.45 example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 50494
;; flags: qr rd ad; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; Query time: 0 msec
;; SERVER: 10.1.1.45#53(10.1.1.45)
;; WHEN: Wed Dec 07 10:45:43 AEDT 2016
;; MSG SIZE  rcvd: 12

Linux
  1. So installieren Sie den DNS-Server unter RHEL 8 / CentOS 8 Linux

  2. Einrichtung des WebDAV-Servers unter Ubuntu Linux

  3. SysLog-Server auf CentOS 6 / RHEL 6 einrichten

  4. So richten Sie einen SysLog-Server unter CentOS 7 / RHEL 7 ein

  5. OpenVPN-Server auf Rocky Linux 8 einrichten

Kali HTTP-Server einrichten

So richten Sie den NFS-Server unter CentOS 8 / RHEL 8 ein

So richten Sie einen Linux-Server auf Amazon AWS ein

Richten Sie den ungebundenen DNS-Resolver auf dem Ubuntu 20.04-Server ein

Wie richte ich die MySQL-Master-Slave-Replikation auf RHEL 7 ein?

So installieren und konfigurieren Sie den DNS-Server unter Linux