De vertaling van het artikel is voorbereid voor studenten van de cursus Ben je geĂŻnteresseerd in de ontwikkeling in deze richting? Bekijk de opname van de masterclass van Ivan Piskunov

In dit artikel zal ik de stappen uitleggen voor het configureren van een DNS-server op RHEL 7 of CentOS 7. Voor de demonstratie heb ik Red Hat Enterprise Linux 7.4 gebruikt. Ons doel is om één A-record en één PTR-record voor de respectievelijke rechtstreekse en omgekeerde weergavezone te creëren.
Begin met het installeren van de benodigde rpm-pakketten voor de DNS-server.
OPMERKING: Voor RHEL moet je een , of je kunt , waarmee de pakketbeheerder 'yum' de benodigde rpm-pakketten en afhankelijkheden kan installeren.
# yum install bind bind-chroot caching-nameserverMijn instellingen:
# 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 enp0s3Aangezien we chroot zullen gebruiken, moet de service worden uitgeschakeld.
# systemctl stop named
# systemctl disable namedKopieer vervolgens de benodigde bestanden naar de chroot-directory.
OPMERKING. Gebruik de parameter -p in het commando cp om de rechten en eigenaren te behouden.
[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âKopieer vervolgens de zone-gerelateerde bestanden naar de nieuwe locatie.
[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
Laten we nu eens kijken naar het hoofdconfiguratiebestand.
```bash
# cd /var/named/chroot/etc/Maak de inhoud van named.conf leeg en plak het volgende.
[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";
};Informatie met betrekking tot de zone moet worden toegevoegd aan /var/named/chroot/etc/named.rfc1912.zones. Voeg de onderstaande record toe. Het bestand example.zone is het directe zichtbestandsbestand, en example.rzone is het omgekeerde zonebestand.
BELANGRIJKE OPMERKING: Het omgekeerde zicht bevat 1.168.192, aangezien mijn IP-adres 192.168.1.7 is.
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; };
};De bestanden gerelateerd aan de zones bevinden zich hier:
# cd /var/named/chroot/var/named/Laten we nu bestanden maken voor de directe en omgekeerde zone. De bestandsnamen zullen hetzelfde zijn als hierboven in het bestand named.rfc1912.zones. We hebben al enkele standaard sjablonen die we kunnen gebruiken.
# cp -p named.localhost example.zone
# cp -p named.loopback example.rzoneZoals u kunt zien, zijn de huidige rechten op alle bestanden en mappen eigendom van 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 slavesVerander de rechten van alle bestanden door gebruiker op te geven als root en groep named.
# chown root:named *Maar voor data moet de eigenaar zijn 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 slavesVoeg de onderstaande inhoud toe aan het directe zonebestand. Hier maken we een A-record voor localhost (golinuxhub-client) en nog een voor de 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.7Voeg vervolgens de inhoud toe aan het omgekeerde zonebestand. Hier creëren we een PTR-record voor golinuxhub-client en voor 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.Voordat we de dienst named-chroot, controleren we de configuratie van het zonebestand.
[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 ziet er goed uit. Controleer nu het configuratiebestand met de volgende opdracht.
[root@golinuxhub-client named]# named-checkconf -t /var/named/chroot/ /etc/named.confDus, alles is succesvol afgerond.
[root@golinuxhub-client named]# echo $?
0BELANGRIJKE OPMERKING: mijn SELinux staat in permissive modus
# getenforce
PermissiveAlles ziet er goed uit, dus het is tijd om onze service te 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: loaded (/usr/lib/systemd/system/named-chroot.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2018-02-12 21:53:23 IST; 19s ago
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 "Controleren van zonebestanden is uitgeschakeld"; 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
Feb 12 21:53:23 golinuxhub-client.example named[5330]: managed-keys-zone/my_resolver: geladen serie 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 0.in-addr.arpa/IN/my_resolver: geladen serie 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.0.0.127.in-addr.arpa/IN/my_resolver: geladen serie 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.168.192.in-addr.arpa/IN/my_resolver: geladen serie 1997022700
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone example/IN/my_resolver: geladen serie 1
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone localhost/IN/my_resolver: geladen serie 0
Feb 12 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: geladen serie 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone localhost.localdomain/IN/my_resolver: geladen serie 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: alle zones geladen
Feb 12 21:53:23 golinuxhub-client.example named[5330]: aan het draaien
```bash
Zorg ervoor dat resolv.conf uw IP-adres bevat, zodat het kan functioneren als DNS-server.
```bash
# cat /etc/resolv.conf
search example
nameserver 192.168.1.7
```bash
Laten we onze DNS-server controleren voor de omgekeerde zone met dig.
```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 opties: +cmd
;; Ontvangen antwoord:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40331
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: versie: 0, flags:; udp: 4096
;; QUESTION SECTION:
;5.1.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
5.1.168.192.in-addr.arpa. 86400 IN PTR golinuxhub-server.example.
;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 86400 IN NS example.
;; ADDITIONAL SECTION:
example. 86400 IN A 192.168.1.7
;; Query tijd: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; WANNEER: Mon Feb 12 22:13:17 IST 2018
;; MSG GROOTTE ontvangen: 122Zoals je kunt zien, hebben we een positieve respons (ANSWER) ontvangen op onze aanvraag (QUERY).
[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
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55804
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;7.1.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
7.1.168.192.in-addr.arpa. 86400 IN PTR golinuxhub-client.example.
;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 86400 IN NS example.
;; ADDITIONAL SECTION:
example. 86400 IN A 192.168.1.7
;; Query time: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; WHEN: Mon Feb 12 22:12:54 IST 2018
;; MSG SIZE rcvd: 122Op dezelfde manier kunnen we de directe zone controleren.
[root@golinuxhub-client named]# nslookup golinuxhub-client.example
Server: 192.168.1.7
Address: 192.168.1.7#53
Name: golinuxhub-client.example
Address: 192.169.1.7
[root@golinuxhub-client named]# nslookup golinuxhub-server.example
Server: 192.168.1.7
Address: 192.168.1.7#53
Name: golinuxhub-server.example
Address: 192.168.1.5Dit artikel is enigszins verouderd, aangezien je in RHEL 7 nu geen configuratiebestanden van bind meer naar chroot hoeft te kopiëren. .
Bron: habr.com
