BIND(二)-dns관리,acl,forward,자역수권,view

BIND (2) - dns 관리, acl, forward, 하위 도메인 권한 부여,view


1、rndc


rndc(remote name domain controller)는 BIND 설치 패키지에서 제공하는 도메인 이름 서비스 실행을 제어하는 도구로, 다른 컴퓨터에서 실행되며 네트워크를 통해 DNS 서버와 연결한 다음 관리자의 명령에 따라named 프로세스를 원격 제어할 수 있으며, 이 경우 관리자는 DNS 서버의 루트 사용자 권한이 필요하지 않습니다.rndc를 사용하면 DNS 서버 작업을 멈추지 않고 데이터를 업데이트하여 수정된 프로필을 적용할 수 있습니다.실제 상황에서 DNS 서버는 매우 바빠서 어떠한 짧은 시간의 정지도 사용자의 사용에 영향을 미칠 수 있다.따라서 rndc 도구를 사용하면 DNS 서버가 사용자에게 더 좋은 서비스를 제공할 수 있다.
rndc와 DNS 서버가 연결될 때 전통적인 사용자 이름/비밀번호 방식이 아닌 디지털 인증서를 통해 인증해야 합니다.현재 버전에서 rndc와named는 HMAC-MD5 인증 알고리즘만 지원하고 통신 양쪽에서 공유 키를 사용합니다.rndc가 연결 채널에서 명령을 보낼 때 서버의 승인을 받은 키로 암호화해야 합니다.쌍방이 모두 인정하는 키를 만들기 위해 rndc-confgen 명령을 사용하여 키와 상응하는 설정을 만들고 이 설정을named에 각각 넣을 수 있습니다.conf 및 rndc 구성 파일 rndc.conf
// rndc.conf 
rndc-confgen > /etc/bind/rndc.conf
rndc.conf, :
key "rndc-key" {
algorithm hmac-md5;
secret "oYV+NSAXam5nY1xa++tElQ==";
};

[root@node128 ~]# cat /etc/rndc.key //rndc
key "rndc-key" {
algorithm hmac-md5;
secret "aNAICkyq0s4EIxnhj92ntQ==";
};

//
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};

[root@node128 ~]# cat /etc/named.root.key //named
managed-keys {
# DNSKEY for the root zone.
# Updates are published on root-dnssec-announce@icann.org
. initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=";
};
rndc953/tcp   

2. bind 관리

//  
[root@node128 ~]# rndc status
version: 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
CPUs found: 1
worker threads: 1
number of zones: 21
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
//0,1,2,3, ,  
[root@node128 ~]# rndc trace
[root@node128 ~]# rndc status
version: 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
CPUs found: 1
worker threads: 1
number of zones: 21
debug level: 2
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
// trace 
[root@node128 ~]# rndc notrace
rndc //  
rndc flush <domain-name> //
rndc reload // ,
rndc reconfig //

3. bind 액세스 제어 목록


//일반적인bind 제어 명령
allow-tranfer {}; 
allow-query {};
allow-recursion {}; //
allow-update {}; // DNS,ddns,
// ,  
[root@node128 ~]# vim /etc/named.conf
acl fulltransfer {
172.16.213.129;
};

[root@node128 ~]# vim /etc/named.rfc1912.zones
zone "test.com" IN {
type master;
notify yes;
file "test.com.zone";
allow-transfer { fulltransfer; };
also-notify { 172.16.213.129; };
};
// ACL  
[root@node128 ~]# rndc reload
server reload successful

[root@node128 ~]# dig -t axfr test.com @172.16.213.128
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> -t axfr test.com @172.16.213.128
;; global options: +cmd
; Transfer failed.

4. DNS 전달

//  
forward only | first
only:
first: , ,



- 네이티브 구문이 아닌 모든 요청을 전달

options { 
// listen-on port
53 { 127.0.0.1; };
// 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
; };

recursion yes
;
// dnssec-enable yes
;
// dnssec-validation yes;
// dnssec-lookaside auto
;

/* Path to ISC DLV key */
bindkeys-file
"/etc/named.iscdlv.key";

// managed-keys-directory
"/var/named/dynamic";
// Google DNS ,
forward only
;
forwarders {
8.8.8.8; };
}
;

- 도메인에만 전달

zone "google.com" IN { 
type forward;
forward only;
forwarders { 8.8.8.8; };
};

5. DNS 하위 도메인 인증


도메인 내: 하위 도메인 구분 권한 부여: 위임
test.comdev.test.com  dev.test.com. IN NS dns.dev.test.com.  dns.dev.test.com. IN A 172.16.213.129
ops.test.com
  ops.test.com. IN NS dns.ops.test.com.
  dns.ops.test.com. IN A 172.16.213.129 
구조: node128: 상위 node130: 하위 도메인
1
[root@node128 named]# vim /var/named/test.com.zone

dev IN NS dns.dev
dns.dev IN A 172.16.213.130
2
[root@node130 named]# vim /etc/named.rfc1912.zones
zone "dev.test.com" IN {
type master;
file "dev.test.com.zone";
};
[root@node130 named]# vim /var/named/dev.test.com.zone  
$TTL 1200
@ IN SOA dns.dev.test.com. admin.dev.test.com. (
20140601
1H
10M
3D
2H )
IN NS dns
IN MX 10 mail
dns
IN A 172.16.213.130
mail
IN A 192.168.1.100
www
IN A 192.168.1.101
www
IN A 192.168.1.102
www
IN A 192.168.1.103
[root@node130 named]# dig -t A www.dev.test.com @172.16.213.130 
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.dev.test.com. IN A

;; ANSWER SECTION:
www.dev.test.com. 1200 IN A 192.168.1.103
www.dev.test.com. 1200 IN A 192.168.1.101
www.dev.test.com. 1200 IN A 192.168.1.102

;; AUTHORITY SECTION:
dev.test.com. 1200 IN NS dns.dev.test.com.

;; ADDITIONAL SECTION:
dns.dev.test.com. 1200 IN A 172.16.213.130

6、view


같은 도메인을 다른 원본으로 해석하여 다른 결과를 되돌려줍니다.
view internal { 
match-clients { 172.16.213.128;
};


zone "." IN {
type hint;
file "named.ca";
};

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

zone "test.com" IN {
type master;
notify yes;
file "test.com.zone";
allow-transfer { fulltransfer; };
also-notify { 172.16.213.129; };
};

zone "test2.com" IN {
type master;
file "test2.com.zone"; };
};
view external { 
match-clients { 172.16.213.130;
};


zone "test.com" IN {
type master;
file "external.test.com.zone";
};

zone "test2.com" IN {
type master;
file "external.test2.com.zone";
};
};

//external www 192.168.1.0/24,130 192.168.1.0/24 //internal www 172.16.213.0/24172.16.213.0/24
//  
[root@node128 named]# dig -t A www.test.com @172.16.213.128
;; ANSWER SECTION:
www.test.com. 600 IN A 172.16.213.131
www.test.com. 600 IN A 172.16.213.130

[root@node130 named]# dig -t A www.test.com @172.16.213.128
;; ANSWER SECTION:
www.test.com. 600 IN A 192.168.1.130
www.test.com. 600 IN A 192.168.1.131

좋은 웹페이지 즐겨찾기