rndc(remote name daemon control) 유틸리티
관리자용 rndc(remote name daemon control) 유틸리티가 사용하는 설정 파일로 named.conf와 비슷함
rndc.conf의 구성
options
server
key
server { };와 key { }; 구문은 여러 개 설정할 수 있다.
설정 내용을 수동으로 하나씩 입력하거나, rndc-confgen 유틸리티를 이용할 수 있다.
options {
default-server localhost;
default-key "rndckey";
};
server localhost {
keys "rndckey";
};
key "rndckey" {
algorithm hmac-md5;
secret "ZMuyJzOvfbkHarwLcKGPFGPYWmYujkYCxZinrurrnLoLlfqQrjTmiGXSVSrRz";
};
--------------------------------------------------------------------------------
aaa# pwd
/usr/local/bind/sbin
aaa# ls -F
dnssec-keygen* dnssec-signzone* named-checkconf* rndc-confgen*
dnssec-makekeyset* lwresd* named-checkzone* zz
dnssec-signkey* named* rndc*
aaa# ./rndc-confgen -h
Usage:
rndc-confgen [-a] [-b bits] [-c keyfile] [-k keyname] [-p port] [-r randomfile] [-s addr] [-t chrootdir] [-u user]
-a: generate just the key clause and write it to keyfile (/usr/local/bind/etc/rndc.key)
-b bits: from 1 through 512, default 128; total length of the secret
-c keyfile: specify an alternate key file (requires -a)
-k keyname: the name as it will be used in named.conf and rndc.conf
-p port: the port named will listen on and rndc will connect to
-r randomfile: a file containing random data
-s addr: the address to which rndc should connect
-t chrootdir: write a keyfile in chrootdir as well (requires -a)
-u user: set the keyfile owner to "user" (requires -a)
aaa# ./rndc-confgen -k ns_rndckey
aaa# ls -F
dnssec-keygen* dnssec-signzone* named-checkconf* rndc*
dnssec-makekeyset* lwresd* named-checkzone* rndc-confgen*
dnssec-signkey* named* ns_rndckey.key zz
aaa# cat ns_rndckey.key
# Start of rndc.conf
key "ns_rndckey" {
algorithm hmac-md5;
secret "sbDx+aLPxggYTzEV4blZ+w==";
};
options {
default-key "ns_rndckey";
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 "ns_rndckey" {
# algorithm hmac-md5;
# secret "sbDx+aLPxggYTzEV4blZ+w==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "ns_rndckey"; };
# };
# End of named.conf
aaa#
--------------------------------------------------------------------------------
options { }; 구문
1) rndc 명령을 사용할 경우 기본적으로 접속할 네임서버(default-server)와 기본키(default-key)를 설정한다.
2) 또한 네임서버가 rndc 제어 메시지를 받아들일 포트(default-port)를 설정할 수 있다.
3) 이 포트는 BIND 부트 설정 파일의 controls 구문에서 설정하녀, 기본 포트 953에서 네임서버가 listen한다.
server { }; 구문
1) rndc 유틸리티를 이용해 특정 네임서버를 제어하고자 할 때 접근하고자 하는 네임서버에 대한
keys를 설정하거나 기타행동에 대한 사항을 설정하는 구문이다.
2) 서브 옵션으로 keys 구문를 포함할 수 있다.
server ip_addr {
[ bogus yes_or_no; ]
[ provide-ixfr yes_or_no; ]
[ request-ixfr yes_or_no; ]
[ edns yes_or_no; ]
[ transfer number; ]
[ transfer-format ( one-answer | many-answers ); ]
[ keys { string; [ string; [...]] }; ]
};
여기서
ip_addr
제어 메시지를 보낼 원격의 IP 주소를 설정한다.(localhost도 포함)
즉, 이 IP 주소에 설정한 네임서버로 질의, 요청, 제어 메시지를 보낼 때
서브의 keys { } 구문을 이용해 해당 암호키로 인증하도록 설정한다.
keys { string; };
암호키 이름을 string에 설정한다.
이 암호키는 다음의 key { }; 구문에 설정한다.
key { }; 구문
rndc와 같은 관리자 유틸리티를 사용할 인증에 필요한 암호키 부분을 설정하는 구문이다.
named.conf 설정 파일의 controls 구문과 같이 rndc유틸리티를 사용하지 않는다면 역시 이 key 구문도 필요치 않다.
key 구문은 controls 구문외에도 server 구문과 연관된다.
key key_id {
algorithm string;
secret string;
};
/etc/rndc.key 파일을 보자
key "rndckey" {
algorithm hmac-md5;
secret "ZMuyJzOvfbkHarwLcKGPFGPYWmYujkYCxZinrurrnLoLlfqQrjTmiGXSVSrRz";
};
암호키 알고리즘은 트랜젝션 서명(TSIG:Transaction signature) 인증에 사용되는 hmac-md5 알고리즘을 사용한다.
secret 구문은 hmac-md5 암호를 설정하는 구문이다.
--------------------------------------------------------------------------------
hmac-md5 알고리즘 암호키를 만들어 보자.
암호키를 생성할 명령어는 dnssec-keygen 유틸리티를 이용한다.
aaa# ls -l dnssec-keygen
-rwxr-xr-x 1 root other 424724 6월 10일 09:58 dnssec-keygen
aaa# ./dnssec-keygen
Usage:
dnssec-keygen -a alg -b bits -n type [options] name
Required options:
-a algorithm: RSA | RSAMD5 | DH | DSA | HMAC-MD5
-b key size, in bits:
RSA: [512..4096]
DH: [128..4096]
DSA: [512..1024] and divisible by 64
HMAC-MD5: [1..512]
-n nametype: ZONE | HOST | ENTITY | USER
name: owner of the key
Other options:
-c class (default: IN)
-e use large exponent (RSA only)
-g use specified generator (DH only)
-t type: AUTHCONF | NOAUTHCONF | NOAUTH | NOCONF (default: AUTHCONF)
-p protocol value (default: 2 [email] for USER, 3 [dnssec] otherwise)
-s strength value this key signs DNS records with (default: 0)
-r randomdev (a file containing random data)
-v verbose level
Output:
K++.key, K++.private
aaa# ./dnssec-keygen -a hmac-md5 -b 512 -n HOST ns_rndckey
Kns_rndckey.+157+07177
aaa# ls K*
Kns_rndckey.+157+07177.key Kns_rndckey.+157+07177.private
aaa# cat Kns_rndckey.+157+07177.key
ns_rndckey. IN KEY 512 3 157 91QsIokS9pBy0n56ZbkkOa1vxmuT1IcMbaUksnG0HN+OIfdKBHCj3RUk gVs6xx+eOANbqz/0wdtrjivs2WsjZg==
aaa# cat Kns_rndckey.+157+07177.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: 91QsIokS9pBy0n56ZbkkOa1vxmuT1IcMbaUksnG0HN+OIfdKBHCj3RUkgVs6xx+eOANbqz/0wdtrjivs2WsjZg==
aaa#
여기서 157은 DNSSEC 알고리즘 번호로 HMAC-MD5를 의미함
07111은 암호키의 해시값임
생성된 두개의 파일 중 ***.private의 key: 부분이 있으므로 이 키를 복사하여 key 구문의 secret 구문에 위치시키면 된다.
/etc/rndc.key 파일을 다음과 같이 할 수 있다.
key "rndckey" {
algorithm hmac-md5;
secret "91QsIokS9pBy0n56ZbkkOa1vxmuT1IcMbaUksnG0HN+OIfdKBHCj3RUkgVs6xx+eOANbqz/0wdtrjivs2WsjZg=="
};
이 암호키는 rndc나 nsupdate와 같은 관리자 유틸리티를 이용해 원격의 네임서버를 컨트롤할 때 사용된다.
예를 들어, 원격의 네임서버(192.168.10.4)에서 로컬의 네임서버(192.168.10.3)를
이 암호키를 이용해 제어하려면 둘 다 똑같이 이 암호키를 설정해 주어야 한다.
【예제】로컬 네임 서버(192.168.10.3)의 /etc/named.conf
....
controls {
inet 127.0.0.1 allow { localhost; 192.168.10.4; } keys { ns_rndckey; }
};
.....
key "ns_rndckey" {
algorithm hmac-md5;
secret "91QsIokS9pBy0n56ZbkkOa1vxmuT1IcMbaUksnG0HN+OIfdKBHCj3RUkgVs6xx+eOANbqz/0wdtrjivs2WsjZg=="
};
【예제】원격 네임 서버(192.168.10.4)의 /etc/rndc.conf
....
server 192.168.10.3 {
key "ns_rndckey";
};
.....
key "ns_rndckey" {
algorithm hmac-md5;
secret "91QsIokS9pBy0n56ZbkkOa1vxmuT1IcMbaUksnG0HN+OIfdKBHCj3RUkgVs6xx+eOANbqz/0wdtrjivs2WsjZg=="
};
'네임서버' 카테고리의 다른 글
[NAMED] Bind9 Query Log (0) | 2013.10.14 |
---|---|
named hint(named.cache) 파일을 생성하는 방법 (0) | 2013.09.07 |
[네임서버] bind(named) error-ran out of space 에러 (0) | 2013.09.07 |
[네임서버] Powered by DNS (0) | 2013.09.07 |
[원도우] 이벤트 ID 4000 (0) | 2013.09.04 |