본문 바로가기

Linux/CentOS7

rndc on BIND

**** rndc ****
--rndc 개요--
rndc(Remote Name Daemon Control)는 BIND9에서 제공하는 
NameServer control utility로 TCP/953 포트 Socket 통신을 이용한다.
예전에는 서버 내부에서만 명령어를 사용할 수 있었지만, 
rndc는 외부 서버에서도 socket통신이 가능 하도록 설정 할 수 있어 외부에서도 데몬을 제어할 수 있다.
즉 원격(localhost포함)의 네임서버를 reload 하거나 refresh, stop, flush, status 등등의 명령어 메시지를 보내 제어하는 툴이다.
rndc 설정을 돕기 위해서 rndc-confgen 이라는 유틸리티가 제공이 된다. 

--rndc-confgen 파일 위치 확인--
which rndc-confgen
(결과 값 : /usr/sbin/rndc-confgen)

--rndc.conf 구성 파일 및 키 생성--
rndc-confgen > /etc/rndc.conf
(Redirection : 방향 재지정)

# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "cTYBAm9CRKOUnLcIXVqQ3w==";
};

options {
        default-key "rndc-key";
        default-server 127.0.0.1;
        default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
#       algorithm hmac-md5;
#       secret "cTYBAm9CRKOUnLcIXVqQ3w==";
# };
#
# controls {
#       inet 127.0.0.1 port 953
#               allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf

--/etc/named.conf에 rndc.key 참조 하기--
vi /etc/named.conf
// 추가할 내용(/etc/rndc.conf파일에 내용을 복사하여 사용할 것)
key "rndc-key" {
       algorithm hmac-md5;
       secret "cTYBAm9CRKOUnLcIXVqQ3w==";
 };

 controls {
       inet 192.168.111.135 port 953 //192.168.111.135는 BIND서버
               allow { 192.168.111.136; } keys { "rndc-key"; };
//192.168.111.136는 원격접속 허용할 주소
 };
//추가할 내용 끝

--named.conf 및 zone 파일 문법 검사--
# named-checkconf -z

--방화벽 열기
firewall-cmd --permanent --add-port=953/tcp
firewall-cmd --reload

--BIND 서버 재기동
systemctl restart named



****원격 시스템(192.168.111.136)에서 BIND 서버 관리하기****
--rndc.conf와 Key 생성
rndc-confgen > /etc/rndc.conf

--원격서버 IP 및 Key 설정--
vi /etc/rndc.conf
//etc/rndc.conf 내용임
# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "cTYBAm9CRKOUnLcIXVqQ3w==";
#이 키 값(cTYBAm9CRKOUnLcIXVqQ3w==)은 192.168.111.135에서 복사
};

options {
        default-key "rndc-key";
        default-server 192.168.111.135; #원격관리 서버 주소
        default-port 953;
};
# End of rndc.conf

--rndc 상태 질의하기
rndc status
또는
rndc -s 192.168.111.135 status

--zone 리로드하기
rndc -s 192.168.111.135 reload

rndc -s 192.168.111.135 reload infosec.local 

rndc notify infosec.local