본문 바로가기
정보보안/이론

[KITRI] Day 19. rndc 원격제어

by 민-Zero 2020. 5. 24.

rndc(remote Name Domain Controller)

원격으로 DNS 서버 관리도구, TCP(953)사용 대칭키를 사용하여 인증한다. Client(관리자) --rndc명령-> Server 의 형태로 서버를 윈격으로 관리할 수 있게 해준다.

rndc를 사용하는 이유는 설정을 변경하거나 DNS Cache 제거시 service 명령을 이용하여 서비스 자체를 재시작하는 경우 서비스가 잠시 중단되어 가용성에 문제가 발생할 수 있다. 이때 rndc 명령어를 이용하면, 서비스 중단없이 named.conf 설정 재적용, ZONE 수정 재적용, DNS Cache 제거를 할 수 있다.

 

rndc 관련 설정파일 (Client)

/etc/rndc.conf

rndc 관련 설정파일 (Server)

/etc/named.conf

 

rndc-confgen 명령어를 사용해보면 rndc 설정 내용을 생성해 주는것을 볼 수 있다. 명령어를 사용할때마다 키값이 변경되는데 대칭키를 사용해 인증을 수행하려면 키값이 동일해야 하므로  해당 내용을 파일로 저장해 동일한 키값으로 저장되도록 rndc.conf named.conf에 입력하면 된다.

 

rndc를 사용한 로컬 제어

rndc를 통해 로컬에서 제어를 하기 때문에 클라이언트 설정파일인 rndc.conf 서버설정 파일인 named.conf를 동일 서버에서 수행한다. 클라이언트와 서버가 동일한 서버가 되는것이다.

rndc-confgen 명령어는 사용할때마다 인증을 위한 키값이 변경된다. 따라서 동일한 키값을 유지하기 위해 해당 명령어의 결과를 임의의 파일을 생성해 저장해 놓고 복사하여 사용한다. rndc-confgen -b 512 > rndc.tmp 512바이트 크기의 키를 생성

 

vi /etc/rndc.conf 에서 :r rndc.tmp 명령어를 통해 rndc.tmp의 내용을 불러오고 #End of rndc.conf 밑으로 다 지우면 rndc의 기본적인 설정이 완료된다. 여기서 options에

options {

default-key "rndckey";

default-server 127.0.0.1;

default-port 953;

};

설정 되어있는것이 rndc -s 127.0.0.1 -p 953 -k rndckey reload 를 rndc reload로만 사용할 수 있도록 기본값을 설정 해주는것이다.

 

vi /etc/named.conf 에서도 동일하게 필요한 부분만 남기고 지운다. 앞에 #공백 이 전부 붙어있는데 한번에 없애기 위해 :첫행,마지막행s/^# // 를통해 한번에 지운다.

 

그럼 rndc명령을 통해 서버를 재시작 하지 않기 때문에 서버의 가용성에 공백이 생기지 않도록 설정을 재적용할 수 있다.

이때 CentOS8 의 경우 rndc reload 하면 key가 존재한다고 에러가 뜨는데 정상적으로 reload가 수행되긴 하지만 에러가 뜨는것이 거슬릴 경우 이름을 rndc.key.old로 바꿔주면 오류가 나타나지 않는다.

 

rndc 원격지 서버 관리

그럼 centos5 (slave)에서 명령을 통해 centos8(master)을 원격으로 관리하려면 rndc-confgen을 통해 생성되는 내용을 서로 가지고 있으면 된다.

 

centos 8

rndc-confgen -b 512 -k 2ndkey -s 192.168.0.109 > rndc.temp 를 통해 512 byte의 크기로 2ndkey라는 이름을 가지는 rndc에서 사용할 키를 생성한다. 여기 내용중 rndc.conf centos8에 넣어야하고 named.conf centos5에 넣어야한다.

rndc.conf 에서 key값만 넣을것이다. 이유는 rndc 명령어를 사용할때 디폴트 값이 루프백으로 되도록하여 명령어의 간소화를 위함이다. options 까지 같이 넣으면 디폴트가 192.168.0.109가 되어 마스터를 설정할때 rndc -s 127.0.0.1 을 같이 작성해야 하기 때문이다.

그럼 이제 이 2ndkey는 centos5에서 8을 제어하기 위해 사용되는 키이다.

 

centos 5에는 named.conf의 설정을 위해 rndc.temp를 centos8에서 복사해서 가져오면 된다.

 

 

rndc 사용법
rndc -s 서버IP -p 953 -y 인증키 명령어

자주 사용하는 명령어
reload : 설정 내용과 zone 모두를 갱신
reconfig : 설정 내용만 갱신
reload 영역명 : 설정 내용과 특정 영역만 갱신
retransfer 영역명 : 특정 영역의 zone파일 전송 (영역전송)
dumpdb -all, -cache, -zone .. : 현재 서비스되고 있는 응답(캐쉬) 내용을 파일로 저장한다.
flush : 재귀질의 과정으로 획득한 캐쉬 제거

 

rndc -s 192.168.0.109 -p 953 -y 2ndkey flush , rndc -s ns1.kmy.co.ki -p 953 -y 2ndkey flush

이런식으로 원격으로 지정하려면 너무 길다. 자동으로 서버의 ip만으로도 포트와 키가 적용되게 하려면 rndc.conf 에 내용을 추가해야한다.

그러면 rndc -s 192.168.0.109 flush 만 수행해도 자동으로 된다. 하지만 도메인을 사용한 -s ns1.kmy.co.ki flush 는 안된다. 이름으로도 되게 하려면 위처럼 도메인 네임도 같이 설정해 주면 된다.

'정보보안 > 이론' 카테고리의 다른 글

[KITRI] DB 서버  (0) 2020.06.17
[KITRI] 리눅스 메일서버  (0) 2020.05.24
[KITRI] Day18. master, slave 복습  (0) 2020.05.19
[KITRI] Day17. 네임 서버 master, slave  (0) 2020.05.19
[KITRI] Day16. 네임 서버 구축  (0) 2020.05.15

댓글