Iùl ceum air cheum air stèidheachadh frithealaiche DNS BIND ann an àrainneachd chroot airson Red Hat (RHEL / CentOS) 7

Eadar-theangachadh den artaigil a chaidh ullachadh airson oileanaich cùrsa "Tèarainteachd Linux". A bheil ùidh agad ann an leasachadh a thaobh seo? Coimhead air a’ chlàradh de chraoladh prìomh chlas Ivan Piskunov "Tèarainteachd ann an Linux an coimeas ri Windows agus MacOS"

Iùl ceum air cheum air stèidheachadh frithealaiche DNS BIND ann an àrainneachd chroot airson Red Hat (RHEL / CentOS) 7

San artaigil seo, coisichidh mi thu tro na ceumannan gus frithealaiche DNS a stèidheachadh air RHEL 7 no CentOS 7. Chleachd mi Red Hat Enterprise Linux 7.4 airson an taisbeanadh. Is e ar n-amas aon chlàr A agus aon chlàr PTR a chruthachadh airson na sònaichean sgrùdaidh air adhart agus air ais, fa leth.

An toiseach, stàlaich na pasganan rpm riatanach airson an fhrithealaiche DNS.

NOTA: Airson RHEL feumaidh tu a bhith fo-sgrìobhadh RHN gnìomhach, no faodaidh tu stèidhich stòr ionadail far loidhne, leis an urrainn don mhanaidsear pacaid “yum” na pacaidean rpm agus na eisimeileachd riatanach a chuir a-steach.

# yum install bind bind-chroot caching-nameserver

Na roghainnean agam:

# 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 enp0s3

Leis gum bi sinn a’ cleachdadh chroot, feumaidh sinn an t-seirbheis a chur à comas.

# systemctl stop named
# systemctl disable named

An uairsin dèan lethbhreac de na faidhlichean riatanach a-steach don eòlaire chroot.
NOTA. Cleachd argamaid -p ann an sgioba cp gus còraichean agus sealbhadairean a ghleidheadh.

[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’

An uairsin dèan lethbhreac de na faidhlichean co-cheangailte ris an raon gu àite ùr.

[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
Теперь давайте посмотрим на основной файл конфигурации.
```bash
# cd /var/named/chroot/etc/

Glan susbaint ainmichte.conf agus cuir a-steach na leanas.

[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";
};

Feumar cur ri fiosrachadh sòn sònraichte /var/named/chroot/etc/named.rfc1912.zones. Cuir ris na h-inntrigidhean gu h-ìosal. Is e am faidhle example.zone am faidhle sòn sgrùdaidh adhartach, agus eisimpleir.rzone - faidhle sòn cùil.

NOTA CUDROMACH: Tha 1.168.192 anns an raon sgrùdaidh cùil oir is e an seòladh IP agam 192.168.1.7

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; };
};

Tha na faidhlichean co-cheangailte ris na sònaichean suidhichte an seo:

# cd /var/named/chroot/var/named/

An uairsin, cruthaichidh sinn faidhlichean airson na sònaichean air adhart agus air ais. Bidh na h-ainmean faidhle mar a tha gu h-àrd san fhaidhle ainmichte.rfc1912.zones. Tha grunn teamplaidean bunaiteach againn mu thràth as urrainn dhuinn a chleachdadh.

# cp -p named.localhost  example.zone
# cp -p named.loopback example.rzone

Mar a chì thu, buinidh na ceadan gnàthach air a h-uile faidhle agus clàr freumh.

[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

Atharraich ceadan a h-uile faidhle gus an neach-cleachdaidh a chomharrachadh mar an neach-seilbh freumh agus buidheann ainmichte.

# chown root:named *

Ach airson dàta feumaidh an sealbhadair a bhith ainmichte: ainmichte.

# 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 slaves

Cuir an susbaint a leanas ris an fhaidhle sòn air adhart agad. An seo bidh sinn a’ cruthachadh clàr A airson localhost (golinuxhub-client) agus fear eile airson an fhrithealaiche (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.7

An uairsin, cuir an susbaint ris an fhaidhle sòn cùil. An seo bidh sinn a’ cruthachadh clàr PTR airson golinuxhub-client agus airson 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.

Mus cuir sinn air bhog an t-seirbheis ainmichte-chroot, leig dhuinn sùil a thoirt air rèiteachadh an fhaidhle sòn.

[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
OK

Tha a h-uile dad a’ coimhead math. A-nis thoir sùil air an fhaidhle rèiteachaidh a’ cleachdadh an àithne a leanas.

[root@golinuxhub-client named]# named-checkconf -t /var/named/chroot/ /etc/named.conf

Mar sin, chaidh a h-uile càil a chrìochnachadh gu soirbheachail.

[root@golinuxhub-client named]# echo $?
0

NOTA CUDROMACH: Tha SELinux agam ann am modh ceadaichte

# getenforce
Permissive

Tha a h-uile dad a’ coimhead math, agus mar sin tha an t-àm ann ar seirbheis a chuir air bhog ainmichte-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 "Checking of zone files is disabled"; 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: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 0.in-addr.arpa/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.0.0.127.in-addr.arpa/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.168.192.in-addr.arpa/IN/my_resolver: loaded serial 1997022700
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone example/IN/my_resolver: loaded serial 1
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone localhost/IN/my_resolver: loaded serial 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: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone localhost.localdomain/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: all zones loaded
Feb 12 21:53:23 golinuxhub-client.example named[5330]: running
```bash
Убедитесь, что resolv.conf содержит ваш IP-адрес, чтобы он мог работать в качестве DNS-сервера.
```bash
# cat /etc/resolv.conf
search example
nameserver 192.168.1.7
```bash
Давайте проверим наш DNS-сервер для обратной зоны, используя 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
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40331
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 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 time: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; WHEN: Mon Feb 12 22:13:17 IST 2018
;; MSG SIZE  rcvd: 122

Mar a chì sibh, fhuair sinn deagh fhreagairt (FREAGAIRT) don iarrtas againn (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: 122

Faodaidh sinn sgrùdadh a dhèanamh air an raon dhìreach san aon dòigh.

[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.5

Tha an artaigil seo beagan seann-fhasanta oir ann an RHEL 7 chan fheum thu tuilleadh lethbhreac a dhèanamh de na faidhlichean rèiteachaidh ceangail a-steach don chroot. Oideachadh ceum air cheum: Dèan rèiteachadh air frithealaiche DNS le bhith a’ cleachdadh chroot ceangail (CentOS / RHEL 7).

Source: www.habr.com

Cuir beachd ann