rndc.conf と rndc.key の設定

[サーバの実験室 Redhat/Fedora]

作成 : 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

[サーバの実験室 Redhat/Fedora]