Red Hat (RHEL/CentOS) 7 ಗಾಗಿ chroot ಪರಿಸರದಲ್ಲಿ BIND DNS ಸರ್ವರ್ ಅನ್ನು ಹೊಂದಿಸಲು ಹಂತ ಹಂತದ ಮಾರ್ಗದರ್ಶಿ

ಕೋರ್ಸ್ ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಸಿದ್ಧಪಡಿಸಿದ ಲೇಖನದ ಅನುವಾದ "ಲಿನಕ್ಸ್ ಭದ್ರತೆ". ಈ ದಿಕ್ಕಿನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಆಸಕ್ತಿ ಇದೆಯೇ? ಇವಾನ್ ಪಿಸ್ಕುನೋವ್ ಅವರ ಮಾಸ್ಟರ್ ವರ್ಗದ ಪ್ರಸಾರದ ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಿ "Windows ಮತ್ತು MacOS ಗೆ ಹೋಲಿಸಿದರೆ Linux ನಲ್ಲಿ ಭದ್ರತೆ"

Red Hat (RHEL/CentOS) 7 ಗಾಗಿ chroot ಪರಿಸರದಲ್ಲಿ BIND DNS ಸರ್ವರ್ ಅನ್ನು ಹೊಂದಿಸಲು ಹಂತ ಹಂತದ ಮಾರ್ಗದರ್ಶಿ

ಈ ಲೇಖನದಲ್ಲಿ, RHEL 7 ಅಥವಾ CentOS 7 ನಲ್ಲಿ DNS ಸರ್ವರ್ ಅನ್ನು ಹೊಂದಿಸುವ ಹಂತಗಳ ಮೂಲಕ ನಾನು ನಿಮಗೆ ತಿಳಿಸುತ್ತೇನೆ. ನಾನು ಪ್ರದರ್ಶನಕ್ಕಾಗಿ Red Hat Enterprise Linux 7.4 ಅನ್ನು ಬಳಸಿದ್ದೇನೆ. ನಮ್ಮ ಗುರಿಯು ಕ್ರಮವಾಗಿ ಫಾರ್ವರ್ಡ್ ಮತ್ತು ರಿವರ್ಸ್ ಲುಕಪ್ ವಲಯಗಳಿಗೆ ಒಂದು A ದಾಖಲೆ ಮತ್ತು ಒಂದು PTR ದಾಖಲೆಯನ್ನು ರಚಿಸುವುದು.

ಮೊದಲು, DNS ಸರ್ವರ್‌ಗೆ ಅಗತ್ಯವಾದ rpm ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಿ.

ಗಮನಿಸಿ: RHEL ಗಾಗಿ ನೀವು ಹೊಂದಿರಬೇಕು ಸಕ್ರಿಯ RHN ಚಂದಾದಾರಿಕೆ, ಅಥವಾ ನೀವು ಮಾಡಬಹುದು ಸ್ಥಳೀಯ ಆಫ್‌ಲೈನ್ ರೆಪೊಸಿಟರಿಯನ್ನು ಹೊಂದಿಸಿ, ಇದರೊಂದಿಗೆ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ "yum" ಅಗತ್ಯ rpm ಪ್ಯಾಕೇಜುಗಳು ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸಬಹುದು.

# yum install bind bind-chroot caching-nameserver

ನನ್ನ ಸೆಟ್ಟಿಂಗ್‌ಗಳು:

# 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

ನಾವು chroot ಅನ್ನು ಬಳಸುತ್ತಿರುವುದರಿಂದ, ನಾವು ಸೇವೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬೇಕಾಗಿದೆ.

# systemctl stop named
# systemctl disable named

ನಂತರ ಅಗತ್ಯವಿರುವ ಫೈಲ್‌ಗಳನ್ನು chroot ಡೈರೆಕ್ಟರಿಗೆ ನಕಲಿಸಿ.
ಸೂಚನೆ. ವಾದವನ್ನು ಬಳಸಿ -p ಒಂದು ತಂಡದಲ್ಲಿ cp ಹಕ್ಕುಗಳು ಮತ್ತು ಮಾಲೀಕರನ್ನು ಸಂರಕ್ಷಿಸಲು.

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

ನಂತರ ವಲಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ಹೊಸ ಸ್ಥಳಕ್ಕೆ ನಕಲಿಸಿ.

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

name.conf ನ ವಿಷಯಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ ಮತ್ತು ಕೆಳಗಿನವುಗಳನ್ನು ಅಂಟಿಸಿ.

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

ವಲಯ ನಿರ್ದಿಷ್ಟ ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸಬೇಕು /var/named/chroot/etc/named.rfc1912.zones. ಕೆಳಗಿನ ನಮೂದುಗಳನ್ನು ಸೇರಿಸಿ. example.zone ಫೈಲ್ ಫಾರ್ವರ್ಡ್ ಲುಕಪ್ ಝೋನ್ ಫೈಲ್ ಆಗಿದೆ, ಮತ್ತು example.rzone - ಹಿಮ್ಮುಖ ವಲಯ ಫೈಲ್.

ಪ್ರಮುಖ ಸೂಚನೆ: ರಿವರ್ಸ್ ಲುಕಪ್ ವಲಯವು 1.168.192 ಅನ್ನು ಒಳಗೊಂಡಿದೆ ಏಕೆಂದರೆ ನನ್ನ IP ವಿಳಾಸವು 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; };
};

ವಲಯಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಫೈಲ್‌ಗಳು ಇಲ್ಲಿವೆ:

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

ಮುಂದೆ, ನಾವು ಫಾರ್ವರ್ಡ್ ಮತ್ತು ರಿವರ್ಸ್ ವಲಯಗಳಿಗಾಗಿ ಫೈಲ್ಗಳನ್ನು ರಚಿಸುತ್ತೇವೆ. ಫೈಲ್ ಹೆಸರುಗಳು ಫೈಲ್‌ನಲ್ಲಿ ಮೇಲಿನಂತೆಯೇ ಇರುತ್ತದೆ ಹೆಸರಿನ.rfc1912.zones. ನಾವು ಈಗಾಗಲೇ ಬಳಸಬಹುದಾದ ಹಲವಾರು ಡೀಫಾಲ್ಟ್ ಟೆಂಪ್ಲೇಟ್‌ಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ.

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

ನೀವು ನೋಡುವಂತೆ, ಎಲ್ಲಾ ಫೈಲ್‌ಗಳು ಮತ್ತು ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿನ ಪ್ರಸ್ತುತ ಅನುಮತಿಗಳು ಸೇರಿವೆ ಬೇರು.

[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

ಬಳಕೆದಾರರನ್ನು ಮಾಲೀಕರೆಂದು ಸೂಚಿಸಲು ಎಲ್ಲಾ ಫೈಲ್‌ಗಳ ಅನುಮತಿಗಳನ್ನು ಬದಲಾಯಿಸಿ ಬೇರು ಮತ್ತು ಗುಂಪು ಹೆಸರಿಸಲಾಗಿದೆ.

# chown root: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 slaves

ನಿಮ್ಮ ಫಾರ್ವರ್ಡ್ ಝೋನ್ ಫೈಲ್‌ಗೆ ಈ ಕೆಳಗಿನ ವಿಷಯವನ್ನು ಸೇರಿಸಿ. ಇಲ್ಲಿ ನಾವು ಲೋಕಲ್ ಹೋಸ್ಟ್ (ಗೋಲಿನಕ್ಸ್‌ಹಬ್-ಕ್ಲೈಂಟ್) ಮತ್ತು ಸರ್ವರ್ (ಗೋಲಿನಕ್ಸ್‌ಹಬ್-ಸರ್ವರ್) ಗಾಗಿ ಎ ದಾಖಲೆಯನ್ನು ರಚಿಸುತ್ತೇವೆ.

# 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

ಮುಂದೆ, ರಿವರ್ಸ್ ಝೋನ್ ಫೈಲ್‌ಗೆ ವಿಷಯವನ್ನು ಸೇರಿಸಿ. ಇಲ್ಲಿ ನಾವು golinuxhub-client ಮತ್ತು golinuxhub-server ಗಾಗಿ PTR ದಾಖಲೆಯನ್ನು ರಚಿಸುತ್ತೇವೆ.

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

ನಾವು ಸೇವೆಯನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಹೆಸರಿನ-ಕ್ರೂಟ್, ವಲಯ ಫೈಲ್‌ನ ಸಂರಚನೆಯನ್ನು ಪರಿಶೀಲಿಸೋಣ.

[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

ಎಲ್ಲವೂ ಚೆನ್ನಾಗಿ ಕಾಣುತ್ತದೆ. ಈಗ ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ.

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

ಆದ್ದರಿಂದ, ಎಲ್ಲವನ್ನೂ ಯಶಸ್ವಿಯಾಗಿ ಪೂರ್ಣಗೊಳಿಸಲಾಯಿತು.

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

ಪ್ರಮುಖ ಸೂಚನೆ: ನಾನು SELinux ಅನ್ನು ಅನುಮತಿ ಮೋಡ್‌ನಲ್ಲಿ ಹೊಂದಿದ್ದೇನೆ

# getenforce
Permissive

ಎಲ್ಲವೂ ಉತ್ತಮವಾಗಿ ಕಾಣುತ್ತದೆ, ಆದ್ದರಿಂದ ನಮ್ಮ ಸೇವೆಯನ್ನು ಪ್ರಾರಂಭಿಸುವ ಸಮಯ ಹೆಸರಿನ-ಕ್ರೂಟ್ .

[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

ನೀವು ನೋಡುವಂತೆ, ನಮ್ಮ ವಿನಂತಿಗೆ (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

ನಾವು ನೇರ ವಲಯವನ್ನು ಅದೇ ರೀತಿಯಲ್ಲಿ ಪರಿಶೀಲಿಸಬಹುದು.

[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

ಈ ಲೇಖನವು RHEL 7 ನಲ್ಲಿ ಸ್ವಲ್ಪ ಹಳೆಯದಾಗಿದೆ, ನೀವು ಇನ್ನು ಮುಂದೆ ಬೈಂಡ್ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳನ್ನು chroot ಗೆ ನಕಲಿಸಬೇಕಾಗಿಲ್ಲ. ಹಂತ-ಹಂತದ ಟ್ಯುಟೋರಿಯಲ್: ಬೈಂಡ್ ಕ್ರೂಟ್ ಬಳಸಿ DNS ಸರ್ವರ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ (CentOS/RHEL 7).

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ