เช
เชญเซเชฏเชพเชธเชเซเชฐเชฎเชจเชพ เชตเชฟเชฆเซเชฏเชพเชฐเซเชฅเซเช เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเชฐเซเชฒ เชฒเซเชเชจเซ เช
เชจเซเชตเชพเชฆ
เช เชฒเซเชเชฎเชพเช, เชนเซเช เชคเชฎเชจเซ RHEL 7 เช เชฅเชตเชพ CentOS 7 เชชเชฐ DNS เชธเชฐเซเชตเชฐ เชธเซเชฏเซเชเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชชเชเชฒเชพเชเช เชฆเซเชตเชพเชฐเชพ เชฒเช เชเชเชถ. เชฎเซเช เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเชพเชเซ Red Hat Enterprise Linux 7.4 เชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชเซ. เช เชฎเชพเชฐเซ เชงเซเชฏเซเชฏ เชซเซเชฐเชตเชฐเซเชก เช เชจเซ เชฐเชฟเชตเชฐเซเชธ เชฒเซเชเช เชช เชเซเชจ เชฎเชพเชเซ เช เชจเซเชเซเชฐเชฎเซ เชเช A เชฐเซเชเซเชฐเซเชก เช เชจเซ เชเช PTR เชฐเซเชเซเชฐเซเชก เชฌเชจเชพเชตเชตเชพเชจเซ เชเซ.
เชชเซเชฐเชฅเชฎ, DNS เชธเชฐเซเชตเชฐ เชฎเชพเชเซ เชเชฐเซเชฐเซ rpm เชชเซเชเซเชเซ เชธเซเชฅเชพเชชเชฟเชค เชเชฐเซ.
เชจเซเชเชง: RHEL เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชนเซเชตเซเช เชเชตเชถเซเชฏเช เชเซ
# 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/
เชเชเชณ, เช เชฎเซ เชซเซเชฐเชตเชฐเซเชก เช เชจเซ เชฐเชฟเชตเชฐเซเชธ เชเซเชจ เชฎเชพเชเซ เชซเชพเชเชฒเซ เชฌเชจเชพเชตเซเชถเซเช. เชซเชพเชเชฒเชจเชพ เชจเชพเชฎเซ เชซเชพเชเชฒเชฎเชพเช เชเชชเชฐเชจเซ เชเซเชฎ เช เชนเชถเซ name.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
เชคเชฎเชพเชฐเซ เชซเซเชฐเชตเชฐเซเชก เชเซเชจ เชซเชพเชเชฒเชฎเชพเช เชจเซเชเซเชจเซ เชธเชพเชฎเชเซเชฐเซ เชเชฎเซเชฐเซ. เช เชนเซเช เชเชชเชฃเซ เชฒเซเชเชฒเชนเซเชธเซเช (golinuxhub-client) เชฎเชพเชเซ A เชฐเซเชเซเชฐเซเชก เช เชจเซ เชธเชฐเซเชตเชฐ (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
เชเชเชณ, เชฐเชฟเชตเชฐเซเชธ เชเซเชจ เชซเชพเชเชฒเชฎเชพเช เชธเชพเชฎเชเซเชฐเซ เชเชฎเซเชฐเซ. เช เชนเซเช เช เชฎเซ 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.
เช เชฎเซ เชธเซเชตเชพ เชถเชฐเซ เชเชฐเซเช เชคเซ เชชเชนเซเชฒเชพเช name-chroot, เชเชพเชฒเซ เชเซเชจ เชซเชพเชเชฒเชจเซเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชคเชชเชพเชธเซเช.
[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
เชฌเชงเซเช เชธเชพเชฐเซเช เชฒเชพเชเซ เชเซ, เชคเซเชฅเซ เช เชฎเชพเชฐเซ เชธเซเชตเชพ เชถเชฐเซ เชเชฐเชตเชพเชจเซ เชธเชฎเชฏ เชเซ name-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
เชเซเชฎ เชคเชฎเซ เชเซเช เชถเชเซ เชเซ, เช เชฎเชจเซ เช เชฎเชพเชฐเซ เชตเชฟเชจเชเชคเซ (QUERY) เชฎเชพเชเซ เชนเชเชพเชฐเชพเชคเซเชฎเช เชชเซเชฐเชคเชฟเชธเชพเชฆ (ANSWER) เชฎเชณเซเชฏเซ เชเซ.
[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 เชฎเชพเช เชฌเชพเชเชจเซเชก เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเซเชจเซ เชจเชเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ.
เชธเซเชฐเซเชธ: www.habr.com