호스트네임 변경
hostnamectl status hostnamectl set-hostname dns hostnamectl status
[root@rac1 ~]# hostnamectl status Static hostname: rac1 Icon name: computer-vm Chassis: vm Machine ID: 5554cd8ab5124283be4afd144783a884 Boot ID: 8075d1f529eb46f88fe2fc7927b8cdb9 Virtualization: kvm Operating System: Oracle Linux Server 7.6 CPE OS Name: cpe:/o:oracle:linux:7:6:server Kernel: Linux 4.14.35-1818.3.3.el7uek.x86_64 Architecture: x86-64 [root@rac1 ~]# hostnamectl set-hostname dns [root@rac1 ~]# hostnamectl status Static hostname: dns Icon name: computer-vm Chassis: vm Machine ID: 5554cd8ab5124283be4afd144783a884 Boot ID: 8075d1f529eb46f88fe2fc7927b8cdb9 Virtualization: kvm Operating System: Oracle Linux Server 7.6 CPE OS Name: cpe:/o:oracle:linux:7:6:server Kernel: Linux 4.14.35-1818.3.3.el7uek.x86_64 Architecture: x86-64
방화벽 중지 원본 펼치기
systemctl stop firewalld systemctl disable firewalld
[root@dns ~]# systemctl stop firewalld [root@dns ~]# systemctl disable firewalld
DNS 서비스 패키지 설치
cd <리눅스 설치 디스크 마운트 경로>/Packages rpm -ivh python-ply-*.noarch.rpm # rpm -ivh bind-license-*.el7.noarch.rpm # rpm -Uvh bind-utils-*.x86_64.rpm bind-libs-*.x86_64.rpm rpm -ivh bind-*.el7.x86_64.rpm rpm -ivh bind-chroot-*.x86_64.rpm cd eject
[root@dns ~]# cd /run/media/root/OL-7.6\ Server.x86_64/Packages [root@dns Packages]# rpm -ivh python-ply-3.4-11.el7.noarch.rpm 경고: python-ply-3.4-11.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 준비 중... ################################# [100%] Updating / installing... 1:python-ply-3.4-11.el7 ################################# [100%] [root@dns Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm 경고: bind-9.9.4-72.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 준비 중... ################################# [100%] Updating / installing... 1:bind-32:9.9.4-72.el7 ################################# [100%] [root@dns Packages]# rpm -ivh bind-chroot-9.9.4-72.el7.x86_64.rpm 경고: bind-chroot-9.9.4-72.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 준비 중... ################################# [100%] Updating / installing... 1:bind-chroot-32:9.9.4-72.el7 ################################# [100%] [root@dns Packages]# cd [root@dns ~]# eject
DNS 서비스 재설정 (named-chroot로 기동)
/usr/libexec/setup-named-chroot.sh /var/named/chroot on systemctl stop named systemctl disable named systemctl start named-chroot systemctl enable named-chroot
[root@dns ~]# /usr/libexec/setup-named-chroot.sh /var/named/chroot on [root@dns ~]# systemctl stop named [root@dns ~]# systemctl disable named [root@dns ~]# systemctl start named-chroot [root@dns ~]# systemctl enable named-chroot Created symlink from /etc/systemd/system/multi-user.target.wants/named-chroot.service to /usr/lib/systemd/system/named-chroot.service.
vi /var/named/chroot/etc/named.conf
// listen-on port 53 { 127.0.0.1; }; listen-on port 53 { 127.0.0.1; 10.0.1.150; }; // allow-query { localhost; }; allow-query { localhost; 10.0.1.0/24; };
[root@dns ~]# cat /var/named/chroot/etc/named.conf // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // // See the BIND Administrator's Reference Manual (ARM) for details about the // configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html options { listen-on port 53 { 127.0.0.1; 10.0.1.150; }; 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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { localhost; 10.0.1.0/24; }; /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion yes; dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
vi /var/named/chroot/etc/named.rfc1912.zones
zone "localdomain." IN { type master; file "localdomain.zone"; allow-update { none; }; }; zone "1.0.10.in-addr.arpa." IN { type master; file "1.0.10.in-addr.arpa"; allow-update { none; }; };
[root@dns ~]# cat /var/named/chroot/etc/named.rfc1912.zones // named.rfc1912.zones: // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind*/sample/ for example named configuration files. // zone "localdomain." IN { type master; file "localdomain.zone"; allow-update { none; }; }; zone "1.0.10.in-addr.arpa." IN { type master; file "1.0.10.in-addr.arpa"; allow-update { none; }; }; zone "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; }; 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 { type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; };
vi /var/named/chroot/var/named/localdomain.zone
$TTL 86400 @ IN SOA localhost root.localhost ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost localhost IN A 127.0.0.1 rac-scan IN A 10.0.1.191 rac-scan IN A 10.0.1.192 rac-scan IN A 10.0.1.193
vi /var/named/chroot/var/named/1.0.10.in-addr.arpa
$ORIGIN 1.0.10.in-addr.arpa. $TTL 1H @ IN SOA dns.localdomain. root.dns.localdomain. ( 2 3H 1H 1W 1H ) 1.0.10.in-addr.arpa. IN NS dns.localdomain. 191 IN PTR rac-scan.localdomain. 192 IN PTR rac-scan.localdomain. 193 IN PTR rac-scan.localdomain.
zone 파일 권한 설정 및 서비스 재기동
chown root:named /var/named/chroot/var/named/localdomain.zone chown root:named /var/named/chroot/var/named/1.0.10.in-addr.arpa systemctl restart named-chroot
[root@dns ~]# chown root:named /var/named/chroot/var/named/localdomain.zone [root@dns ~]# chown root:named /var/named/chroot/var/named/1.0.10.in-addr.arpa [root@dns ~]# systemctl restart named-chroot
정상 작동 여부 확인
nslookup rac-scan.localdomain nslookup 10.0.1.191 nslookup 10.0.1.192 nslookup 10.0.1.193
[root@dns ~]# nslookup rac-scan.localdomain Server: 127.0.0.1 Address: 127.0.0.1#53 Name: rac-scan.localdomain Address: 10.0.1.191 Name: rac-scan.localdomain Address: 10.0.1.192 Name: rac-scan.localdomain Address: 10.0.1.193 [root@dns ~]# nslookup rac-scan.localdomain Server: 127.0.0.1 Address: 127.0.0.1#53 Name: rac-scan.localdomain Address: 10.0.1.192 Name: rac-scan.localdomain Address: 10.0.1.191 Name: rac-scan.localdomain Address: 10.0.1.193 [root@dns ~]# nslookup rac-scan.localdomain Server: 127.0.0.1 Address: 127.0.0.1#53 Name: rac-scan.localdomain Address: 10.0.1.193 Name: rac-scan.localdomain Address: 10.0.1.192 Name: rac-scan.localdomain Address: 10.0.1.191 [root@dns ~]# nslookup 10.0.1.191 Server: 127.0.0.1 Address: 127.0.0.1#53 191.1.0.10.in-addr.arpa name = rac-scan.localdomain. [root@dns ~]# nslookup 10.0.1.192 Server: 127.0.0.1 Address: 127.0.0.1#53 192.1.0.10.in-addr.arpa name = rac-scan.localdomain. [root@dns ~]# nslookup 10.0.1.193 Server: 127.0.0.1 Address: 127.0.0.1#53 193.1.0.10.in-addr.arpa name = rac-scan.localdomain.
[root@rac1 ~]# nslookup rac-scan.localdomain Server: 10.0.1.150 Address: 10.0.1.150#53 Name: rac-scan.localdomain Address: 10.0.1.191 Name: rac-scan.localdomain Address: 10.0.1.193 Name: rac-scan.localdomain Address: 10.0.1.192 [root@rac1 ~]# nslookup rac-scan.localdomain Server: 10.0.1.150 Address: 10.0.1.150#53 Name: rac-scan.localdomain Address: 10.0.1.193 Name: rac-scan.localdomain Address: 10.0.1.191 Name: rac-scan.localdomain Address: 10.0.1.192 [root@rac1 ~]# nslookup rac-scan.localdomain Server: 10.0.1.150 Address: 10.0.1.150#53 Name: rac-scan.localdomain Address: 10.0.1.192 Name: rac-scan.localdomain Address: 10.0.1.193 Name: rac-scan.localdomain Address: 10.0.1.191 [root@rac1 ~]# nslookup 10.0.1.191 Server: 10.0.1.150 Address: 10.0.1.150#53 191.1.0.10.in-addr.arpa name = rac-scan.localdomain. [root@rac1 ~]# nslookup 10.0.1.192 Server: 10.0.1.150 Address: 10.0.1.150#53 192.1.0.10.in-addr.arpa name = rac-scan.localdomain. [root@rac1 ~]# nslookup 10.0.1.193 Server: 10.0.1.150 Address: 10.0.1.150#53 193.1.0.10.in-addr.arpa name = rac-scan.localdomain.
{}