Die Ăbersetzung des Artikels wurde fĂŒr die Studierenden des Kurses vorbereitet . Möchten Sie in diesem Bereich wachsen? Sehen Sie sich die Aufzeichnung des Workshops von Ivan Piskunov an

In diesem Artikel werde ich die Schritte zur Konfiguration eines DNS-Servers in RHEL 7 oder CentOS 7 erlĂ€utern. Zur Demonstration habe ich Red Hat Enterprise Linux 7.4 verwendet. Unser Ziel ist es, einen A-Eintrag und einen PTR-Eintrag fĂŒr die VorwĂ€rts- und RĂŒckwĂ€rtszone entsprechend zu erstellen.
ZunĂ€chst installieren Sie die benötigten RPM-Pakete fĂŒr den DNS-Server.
HINWEIS: FĂŒr RHEL benötigen Sie , oder Sie können , mit dem der Paketmanager âyumâ die benötigten RPM-Pakete und AbhĂ€ngigkeiten installieren kann.
# yum install bind bind-chroot caching-nameserverMeine Einstellungen:
# hostname
golinuxhub-client.example
ĐĐŸĐč IP-аЎŃĐ”Ń 192.168.1.7
# ip address | egrep 'inet.*enp0s3'
inet 192.168.1.7/24 brd 192.168.1.255 scope global dynamic enp0s3Da wir chroot verwenden werden, mĂŒssen wir den Dienst deaktivieren.
# systemctl stop named
# systemctl disable namedKopieren Sie dann die erforderlichen Dateien in das chroot-Verzeichnis.
HINWEIS. Verwenden Sie das Argument -p rcctl set servicename oomprotect -1000 cp um Berechtigungen und EigentĂŒmer zu erhalten.
[root@golinuxhub-client ~]# cp -rpvf /usr/share/doc/bind-9.9.4/sample/etc/* /var/named/chroot/etc/
â/usr/share/doc/bind-9.9.4/sample/etc/named.confâ -> â/var/named/chroot/etc/named.confâ
â/usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zonesâ -> â/var/named/chroot/etc/named.rfc1912.zonesâKopieren Sie dann die zonenbezogenen Dateien an den neuen Speicherort.
[root@golinuxhub-client ~]# cp -rpvf /usr/share/doc/bind-9.9.4/sample/var/named/* /var/named/chroot/var/named/
â/usr/share/doc/bind-9.9.4/sample/var/named/dataâ -> â/var/named/chroot/var/named/dataâ
â/usr/share/doc/bind-9.9.4/sample/var/named/my.external.zone.dbâ -> â/var/named/chroot/var/named/my.external.zone.dbâ
â/usr/share/doc/bind-9.9.4/sample/var/named/my.internal.zone.dbâ -> â/var/named/chroot/var/named/my.internal.zone.dbâ
â/usr/share/doc/bind-9.9.4/sample/var/named/named.caâ -> â/var/named/chroot/var/named/named.caâ
â/usr/share/doc/bind-9.9.4/sample/var/named/named.emptyâ -> â/var/named/chroot/var/named/named.emptyâ
â/usr/share/doc/bind-9.9.4/sample/var/named/named.localhostâ -> â/var/named/chroot/var/named/named.localhostâ
â/usr/share/doc/bind-9.9.4/sample/var/named/named.loopbackâ -> â/var/named/chroot/var/named/named.loopbackâ
â/usr/share/doc/bind-9.9.4/sample/var/named/slavesâ -> â/var/named/chroot/var/named/slavesâ
â/usr/share/doc/bind-9.9.4/sample/var/named/slaves/my.ddns.internal.zone.dbâ -> â/var/named/chroot/var/named/slaves/my.ddns.internal.zone.dbâ
â/usr/share/doc/bind-9.9.4/sample/var/named/slaves/my.slave.internal.zone.dbâ -> â/var/named/chroot/var/named/slaves/my.slave.internal.zone.dbâ
```bash
Jetzt schauen wir uns die Hauptkonfigurationsdatei an.
```bash
# cd /var/named/chroot/etc/Löschen Sie den Inhalt von named.conf und fĂŒgen Sie das Folgende ein.
[root@golinuxhub-client etc]# vim named.conf
options {
listen-on port 53 { 127.0.0.1; any; };
# listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; any; };
allow-query-cache { localhost; any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view my_resolver {
match-clients { localhost; any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};Die Informationen, die sich auf die Zone beziehen, mĂŒssen in /var/named/chroot/etc/named.rfc1912.zoneseingefĂŒgt werden. FĂŒgen Sie die folgenden EintrĂ€ge hinzu. Die Datei example.zone ist eine Datei fĂŒr die direkte Ansicht, und example.rzone ist die Datei fĂŒr die inverse Zone.
WICHTIGER HINWEIS: Die inverse Ansicht enthÀlt 1.168.192, da meine IP-Adresse 192.168.1.7 ist.
zone "example" IN {
type master;
file "example.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "example.rzone";
allow-update { none; };
};Die Dateien, die mit den Zonen verbunden sind, befinden sich hier:
# cd /var/named/chroot/var/named/Lassen Sie uns jetzt Dateien fĂŒr die direkte und inverse Zone erstellen. Die Dateinamen werden die gleichen sein wie oben in der Datei named.rfc1912.zones. Wir haben bereits einige Standardvorlagen, die wir verwenden können.
# cp -p named.localhost example.zone
# cp -p named.loopback example.rzoneWie Sie sehen können, gehören die aktuellen Berechtigungen fĂŒr alle Dateien und Verzeichnisse root.
[root@golinuxhub-client named]# ll
total 32
drwxr-xr-x. 2 root root 6 May 22 2017 data
-rw-r--r--. 1 root root 168 May 22 2017 example.rzone
-rw-r--r--. 1 root root 152 May 22 2017 example.zone
-rw-r--r--. 1 root root 56 May 22 2017 my.external.zone.db
-rw-r--r--. 1 root root 56 May 22 2017 my.internal.zone.db
-rw-r--r--. 1 root root 2281 May 22 2017 named.ca
-rw-r--r--. 1 root root 152 May 22 2017 named.empty
-rw-r--r--. 1 root root 152 May 22 2017 named.localhost
-rw-r--r--. 1 root root 168 May 22 2017 named.loopback
drwxr-xr-x. 2 root root 71 Feb 12 21:02 slavesĂndern Sie die Berechtigungen aller Dateien, indem Sie den Benutzer root und die Gruppe named.
# chown root:named *angeben. Doch fĂŒr data sollte der Besitzer named:named.
# chown -R named:named data
# ls -l
total 32
drwxr-xr-x. 2 named named 6 May 22 2017 data
-rw-r--r--. 1 root named 168 May 22 2017 example.rzone
-rw-r--r--. 1 root named 152 May 22 2017 example.zone
-rw-r--r--. 1 root named 56 May 22 2017 my.external.zone.db
-rw-r--r--. 1 root named 56 May 22 2017 my.internal.zone.db
-rw-r--r--. 1 root named 2281 May 22 2017 named.ca
-rw-r--r--. 1 root named 152 May 22 2017 named.empty
-rw-r--r--. 1 root named 152 May 22 2017 named.localhost
-rw-r--r--. 1 root named 168 May 22 2017 named.loopback
drwxr-xr-x. 2 root named 71 Feb 12 21:02 slavesFĂŒgen Sie den folgenden Inhalt in die Datei der direkten Zone ein. Hier erstellen wir einen A-Eintrag fĂŒr localhost (golinuxhub-client) und einen weiteren fĂŒr den Server (golinuxhub-server).
# vim example.zone
$TTL 1D
@ IN SOA example. root (
1 ; serial
3H ; refresh
15M ; retry
1W ; expire
1D ) ; minimum
IN NS example.
IN A 192.168.1.7
golinuxhub-server IN A 192.168.1.5
golinuxhub-client IN A 192.169.1.7FĂŒgen Sie als NĂ€chstes den Inhalt in die Datei der inversen Zone ein. Hier erstellen wir einen PTR-Eintrag fĂŒr golinuxhub-client und fĂŒr den Server golinuxhub-server.
# vim example.rzone
$TTL 1D
@ IN SOA example. root.example. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ) ; minimum
IN NS example.
5 IN PTR golinuxhub-server.example.
7 IN PTR golinuxhub-client.example.Bevor wir den Dienst named-chroot, starten, ĂŒberprĂŒfen wir die Konfiguration der Zonendatei.
[root@golinuxhub-client named]# named-checkzone golinuxhub-client.example example.zone
zone golinuxhub-client.example/IN: loaded serial 1
OK
[root@golinuxhub-client named]# named-checkzone golinuxhub-client.example example.rzone
zone golinuxhub-client.example/IN: loaded serial 1997022700
OKAlles sieht gut aus. ĂberprĂŒfen Sie nun die Konfigurationsdatei mit dem folgenden Befehl.
[root@golinuxhub-client named]# named-checkconf -t /var/named/chroot/ /etc/named.confSo, alles wurde erfolgreich ausgefĂŒhrt.
[root@golinuxhub-client named]# echo $?
0WICHTIGER HINWEIS: Ich habe SELinux im permissive-Modus.
# getenforce
PermissiveAlles sieht gut aus, also ist es Zeit, unseren Dienst zu starten. named-chroot .
[root@golinuxhub-client named]# systemctl restart named-chroot[root@golinuxhub-client named]# systemctl status named-chroot
â named-chroot.service - Berkeley Internet Name Domain (DNS)
Loaded: geladen (\/usr\/lib\/systemd\/system\/named-chroot.service; deaktiviert; Standardwert des Anbieters: deaktiviert)
Active: aktiv (lÀuft) seit Mo, 12. Feb. 2018 21:53:23 IST; vor 19s
Process: 5236 ExecStop=\/bin\/sh -c \/usr\/sbin\/rndc stop > \/dev\/null 2>&1 || \/bin\/kill -TERM $MAINPID (code=exited, status=0\/SUCCESS)
Process: 5327 ExecStart=\/usr\/sbin\/named -u named -c ${NAMEDCONF} -t \/var\/named\/chroot $OPTIONS (code=exited, status=0\/SUCCESS)
Process: 5325 ExecStartPre=\/bin\/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then \/usr\/sbin\/named-checkconf -t \/var\/named\/chroot -z "$NAMEDCONF"; else echo "ĂberprĂŒfung der Zonen-Dateien ist deaktiviert"; fi (code=exited, status=0\/SUCCESS)
Main PID: 5330 (named)
CGroup: \/system.slice\/named-chroot.service
ââ5330 \/usr\/sbin\/named -u named -c \/etc\/named.conf -t \/var\/named\/chroot
12. Feb 21:53:23 golinuxhub-client.example named[5330]: managed-keys-zone\/my_resolver: geladene Seriennummer 0
12. Feb 21:53:23 golinuxhub-client.example named[5330]: zone 0.in-addr.arpa\/IN\/my_resolver: geladene Seriennummer 0
12. Feb 21:53:23 golinuxhub-client.example named[5330]: zone 1.0.0.127.in-addr.arpa\/IN\/my_resolver: geladene Seriennummer 0
12. Feb 21:53:23 golinuxhub-client.example named[5330]: zone 1.168.192.in-addr.arpa\/IN\/my_resolver: geladene Seriennummer 1997022700
12. Feb 21:53:23 golinuxhub-client.example named[5330]: zone example\/IN\/my_resolver: geladene Seriennummer 1
12. Feb 21:53:23 golinuxhub-client.example named[5330]: zone localhost\/IN\/my_resolver: geladene Seriennummer 0
12. Feb 21:53:23 golinuxhub-client.example named[5330]: zone 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\/my_resolver: geladene Seriennummer 0
12. Feb 21:53:23 golinuxhub-client.example named[5330]: zone localhost.localdomain\/IN\/my_resolver: geladene Seriennummer 0
12. Feb 21:53:23 golinuxhub-client.example named[5330]: alle Zonen geladen
12. Feb 21:53:23 golinuxhub-client.example named[5330]: lÀuft
```bash
Stellen Sie sicher, dass resolv.conf Ihre IP-Adresse enthÀlt, damit sie als DNS-Server funktionieren kann.
```bash
# cat \/etc\/resolv.conf
search example
nameserver 192.168.1.7
```bash
Lassen Sie uns unseren DNS-Server fĂŒr die umgekehrte Zone mit dig ĂŒberprĂŒfen.
```bash
[root@golinuxhub-client named]# dig -x 192.168.1.5
; <> DiG 9.9.4-RedHat-9.9.4-50.el7 <> -x 192.168.1.5
;; globale Optionen: +cmd
;; Antwort erhalten:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40331
;; flags: qr aa rd ra; QUERY: 1, ANTWORT: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; FRAGEABSCHNITT:
;5.1.168.192.in-addr.arpa. IN PTR
;; ANTWORTABSCHNITT:
5.1.168.192.in-addr.arpa. 86400 IN PTR golinuxhub-server.example.
;; AUTHORITY ABSCHNITT:
1.168.192.in-addr.arpa. 86400 IN NS example.
;; ADDITIONALER ABSCHNITT:
example. 86400 IN A 192.168.1.7
;; Abfragezeit: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; WANN: Mo, 12. Feb 22:13:17 IST 2018
;; MSG GRĂSSE rcvd: 122Wie Sie sehen, haben wir eine positive Antwort (ANTWORT) auf unsere Anfrage (ANFRAGE) erhalten.
[root@golinuxhub-client named]# dig -x 192.168.1.7
; <> DiG 9.9.4-RedHat-9.9.4-50.el7 <> -x 192.168.1.7
;; globale Optionen: +cmd
;; Antwort erhalten:
;; ->>HEADER<<- Opcode: QUERY, Status: NOERROR, ID: 55804
;; Flags: qr aa rd ra; QUERY: 1, ANTWORT: 1, AUTORITĂT: 1, ZUSĂTZLICH: 2
;; OPT PSEUDOSECTION:
; EDNS: Version: 0, Flags:; UDP: 4096
;; FRAGESEKTION:
;7.1.168.192.in-addr.arpa. IN PTR
;; ANTWORTSEKTION:
7.1.168.192.in-addr.arpa. 86400 IN PTR golinuxhub-client.example.
;; AUTORITĂTSEKTION:
1.168.192.in-addr.arpa. 86400 IN NS example.
;; ZUSĂTZLICHE SEKTION:
example. 86400 IN A 192.168.1.7
;; Abfragezeit: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; BEI: Mo Feb 12 22:12:54 IST 2018
;; MSG GRĂSSE empfangen: 122Auf die gleiche Weise können wir die direkte Zone ĂŒberprĂŒfen.
[root@golinuxhub-client named]# nslookup golinuxhub-client.example
Server: 192.168.1.7
Adresse: 192.168.1.7#53
Name: golinuxhub-client.example
Adresse: 192.169.1.7
[root@golinuxhub-client named]# nslookup golinuxhub-server.example
Server: 192.168.1.7
Adresse: 192.168.1.7#53
Name: golinuxhub-server.example
Adresse: 192.168.1.5Dieser Artikel ist etwas veraltet, da in RHEL 7 jetzt keine Konfigurationsdateien von bind mehr in chroot kopiert werden mĂŒssen. .
Quelle: habr.com
