rndc.conf と rndc.key の設定
作成 : 2003/10/11
rndc.key の設定
# /etc/rndc.key
key rndc-key {
algorithm hmac-md5;
secret "bG4uCwl9gxmHHHEcoyWRQZ==";
};
key ステートメント
rndc がリモートにリクエストを送信するとき、メッセージにつける署名の生成に使用する鍵を定義する。 key_id には、鍵のユニークな名前を指定する。 この名前は、rndc.config や named.config で使用され、リモートサーバとクライアントサーバで鍵が一致したときだけ、リモートからの接続を許可するように設定することが可能。
key ステートメントで、algorithm クローズ(clause)と secret クローズの 2 つのクローズを設定する。
key key_id {
algorithm xxxxx;
secret "xxxxx";
};
algorithm クローズ
暗号化のアルゴリズムを指定する。 使用できるのは hmac-md5 方式のみ。
algorithm hmac-md5;
secret クローズ
暗号化の鍵を Base-64 エンコーディングの文字列で指定する。 文字列は、ダブルクォーテーションで囲む。 rndc-confgen -a で生成することができる。
secret "bG4uCwl9gxmHHHEcoyWRQZ==";
rndc.conf の設定
# /etc/rndc.conf
options {
default-server localhost;
default-key rndc-key;
};
server localhost {
key rndc-key;
};
include /etc/rndc.key;
options ステートメント
グローバルオプションを設定する。 rndc.conf では、default-server クローズ、default-key クローズ、default-port クローズの 3 つを設定することができる。 (default-port を指定しなくても、rndc はデフォルトで 953 番ポートを使用するようだ)
options {
default-server xxxxx;
default-key xxxxx;
default-port xxxxx;
};
default-server クローズ
rndc は、次のようなオプションをつけて実行することができる。
# rndc [-s server] [-k key-file] [-y key] [-p port] command
default-server クローズは、デフォルトで接続するネームサーバを指定する。 -s オプションでサーバを指定せずに rndc を実行したとき、default-server で指定したネームサーバに接続する。
default-server localhost;
default-key クローズ
default-server クローズは、デフォルトで使用する鍵の名前を指定する。 鍵の名前は、rndc.key ファイルの key ステートメントで指定した key_id を使用する。 -k オプションで鍵を含むファイル名を指定しなかったとき、または -y オプションで鍵を指定しなかったとき、default-key で指定した鍵を使用してネームサーバに接続する。
default-key rndc-key;
server ステートメント
リモートのネームサーバに関する特性を定義する。 ip_addr には、リモートネームサーバの IP アドレスを指定する。 ホスト名でも OK みたい。 複数のネームサーバをコントロールする場合、サーバごとに server ステートメントで使用する鍵を指定しておくと便利。
server ip_addr {
key xxxxx;
};
注意! server ステートメントでホスト名を指定した場合は、rndc の -s オプションでもホスト名を指定すること。 IP アドレスを指定した場合は、-s オプションでも IP アドレスを指定する。
key クローズ
server ステートメントで指定した ip_addr のネームサーバに接続するとき、使用する鍵の名前を指定する。 鍵の名前は、rndc.key ファイルの key ステートメントで指定した key_id を使用する。
key rndc-key;
include ステートメント
include ステートメントの場所に、指定したファイルの内容を挿入する。
include filename
複数のネームサーバをコントロールするときの rndc.conf
たとえば、localhost、host1、host2 という 3 つのネームサーバをコントロールしたいとする。 まず、ネームサーバごとに共有鍵を用意する。 (ここでは、サーバごとにファイルを分けているが、ひとつの rndc.key ファイルに複数の共有鍵を定義してもかまわない)
# /etc/localhost.key
### localhost の共有鍵
key localhost-key {
algorithm hmac-md5;
secret "xxxxxxxxxx";
};
# /etc/host1.key
### host1 の共有鍵
key host1-key {
algorithm hmac-md5;
secret "xxxxxxxxxx";
};
# /etc/host2.key
### host2 の共有鍵
key host2-key {
algorithm hmac-md5;
secret "xxxxxxxxxx";
};
rndc.conf で 3 つの共有鍵をインクルードする。 server ステートメントで、それぞれのネームサーバに接続するとき、どの鍵を使用するか指定する。
# /etc/rndc.conf
options {
default-server localhost;
default-key localhost-key;
};
server localhost {
keys localhost-key;
};
server host1 {
keys host1-key;
};
server host2 {
keys host2-key;
};
include /etc/localhost.key;
include /etc/host1.key;
include /etc/host2.key;
このように設定しておけば、-s オプションでホスト名を指定すると、そのリモートネームサーバの共有鍵を使用して接続してくれる。
# rndc -s [ localhost | host1 | host2 ] command