DNS-06 - 보안 설정

5511 단어 dns

DNS-06 - 보안 설정


실험 환경
ns1.magedu.com 172.18.71.101/24 CentOS-6.7-x86_64           
ns1.dev.magedu.com 172.18.71.102/24 CentOS-7.2-x86_64       
localhost.localdomain 172.18.71.103/24 CentOS-7.2-x86_64  
iptablesSELinux는 모두 폐쇄 상태에 있다.
설치bind
[root@ns1 ~]# yum install -y bind bind-libs bind-utils

우선 두 노드 호스트의 메인 프로필/etc/named.conf을 각각 수정하고 본 기기의 조회 요청과dnssec만 허용하고 감청 주소 목록에 각각 외부에 서비스를 제공하는 주소IP를 추가한다.
options {
    listen-on port 53 { 127.0.0.1; 172.18.71.101; };
    ...
    //allow-query     { localhost; };
    ...

    //dnssec-enable yes;
    //dnssec-validation yes;
    //dnssec-lookaside auto;
    ...
};

시간 동기화


일반적으로 다중 노드의 협동 작업은 우선 시간을 교정하여 시간을 동기화시키는 것이다.네트워킹 상태에서는 ntpdate 명령을 사용하여 일괄적으로 시간센터 교정을 찾을 수 있고, 네트워킹에서는 사용할 수 없음date 명령을 수동으로 교정할 수 없다.

귀속 조회의 안전 설정


먼저, DNS-05 - 전달을 참조하여 상위 및 하위 도메인 서버를 구성하고 하위 도메인에서 글로벌 전송을 설정하여 비도메인 내 해결 요청을 모두 상위 도메인 서버에 전달합니다.
테스트기에서 dig 명령 테스트를 사용하면 해석할 수 있습니다.
[root@localhost ~]# dig -t A www.baidu.com @172.18.71.102

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.baidu.com @172.18.71.102
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26725
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.            IN    A

;; ANSWER SECTION:
www.baidu.com.        1197    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    296    IN    A    61.135.169.121
www.a.shifen.com.    296    IN    A    61.135.169.125

;; Query time: 1 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN:   4  09 02:58:41 CST 2016
;; MSG SIZE  rcvd: 101

부모 서버 주 프로필 /etc/named.conf 에서 모든 호스트에 귀속 조회를 허용하지 않도록 설정합니다.
options {
    ...
    allow-recursion { none; };
    ...    
};

구성 파일 다시 로드
[root@ns1 named]# rndc reload
server reload successful

부모 도메인과 하위 도메인의 캐시를 비웁니다.
[root@ns1 named]# rndc flush

다시 테스트해보니 해석이 불가능합니다.
[root@localhost ~]# dig -t A www.baidu.com @172.18.71.102

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.baidu.com @172.18.71.102
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 23120
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.            IN    A

;; Query time: 2 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN:   4  09 03:01:25 CST 2016
;; MSG SIZE  rcvd: 42

부모 서버 주 프로필/etc/named.confACL 목록internel_network을 추가하여 하위 서버IP 주소를 이 목록에 추가하고 이 목록의 호스트만 귀속 조회를 할 수 있도록 설정합니다.
options {
    ...
    allow-recursion {
            internal_network;
    };
    ...    
};

acl internal_network {
    172.18.71.102;
    172.18.71.0/24;
};

구성 파일 다시 로드
[root@ns1 named]# rndc reload
server reload successful

다시 한 번 테스트하면 또 해석할 수 있다.
[root@localhost ~]# dig -t A www.baidu.com @172.18.71.102

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.baidu.com @172.18.71.102
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49036
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.            IN    A

;; ANSWER SECTION:
www.baidu.com.        1200    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    300    IN    A    61.135.169.125
www.a.shifen.com.    300    IN    A    61.135.169.121

;; Query time: 2560 msec
;; SERVER: 172.18.71.102#53(172.18.71.102)
;; WHEN:   4  09 03:08:43 CST 2016
;; MSG SIZE  rcvd: 101

결론


위의 설정을 통해 액세스 제어 목록acl에 있는 호스트만 특정 운영 명령을 실행할 수 있도록 제한할 수 있습니다.액세스 제어 명령은 다음과 같습니다.
allow-query  {};   ; ;
allow-transfer {};   ; ; ;
allow-recursion {};  DNS ; ;
allow-update {}; DDNS, ;
acl 호스트나 네트워크를 지정할 수 있는 것 외에 4개의 내장형none, any, local, localnet이 있다.실제로acl는 액세스 제어를 위한 것이 아니라 호스트 집합일 뿐이며 보기match-clients {};에서도 사용할 수 있다.

좋은 웹페이지 즐겨찾기