12.4. rndcの使用法

BINDには、rndcというユーティリティコマンドが含まれています。 それを使用することで、ローカルホスト又はリモートホストからのnamed デーモンのコマンドライン管理ができるようになります。

他のシステムの権限のないユーザーによってサーバーのBINDが制御されるのを防ぐため、共有秘密鍵方法を使用して、 特定のホストに明示的に特権を与えます。このことは、/etc/named.confrndcの 設定ファイルである/etc/rndc.confの両方で同一の鍵を所有する必要があることを意味します。

12.4.1. /etc/named.confの設定

rndcnamedサービスに接続される為には、 BINDサーバーの/etc/named.confファイルにcontrols ステートメントがなければなりません。

以下の例に示すcontrolsステートメントにより、ローカルホストから rndcが接続できるようになります。

controls {
  inet 127.0.0.1 allow { localhost; } keys { <key-name>; };
};

このステートメントはnamedにループバックアドレスのデフォルトTCPポート953をリッスンするように指示し、 適切な鍵が与えられた場合にローカルホストからのrndcコマンドを許可します。 <key-name>は、keyステートメントに関連しますが、 これも/etc/named.confファイル内にあります。次の例は、keyステートメントの サンプルを示します。

key "<key-name>" {
  algorithm hmac-md5;
  secret "<key-value>";
};

この場合、<key-value>はHMAC-MD5鍵です。 以下のコマンドを使用してHMAC-MD5鍵を生成することが出来ます:

dnssec-keygen -a hmac-md5 -b <bit-length> -n HOST <key-file-name>

鍵は256ビット長以上ある方がいいでしょう。<key-value>領域に 置くべき実際の鍵は、<key-file-name>にあります。

注意重要
 

/etc/named.confは、すべてが読み込めるファイルであるため、 keyステートメントを別のファイルの中に置いてrootのみの読み取り 可能して、次の例のようにincludeステートメントを使用して参照する のが良いでしょう:

include "/etc/rndc.key";

12.4.2. /etc/rndc.confの設定

key/etc/rndc.confの中で最も 重要なステートメントです。

key "<key-name>" {
  algorithm hmac-md5;
  secret "<key-value>";
};

<key-name><key-value>/etc/named.conf内での設定とまったく同じでなくてはなりません。

ターゲットサーバーの/etc/named.confに指定された鍵をテストするには 次の行を/etc/rndc.confに追加します。

options {
  default-server  localhost;
  default-key     "<key-name>";
};

このコマンドは、グローバルなデフォルト鍵を設定します。しかし、rndcコマンドは、 次の例にあるように、異なるサーバーには異なる鍵を使用できます:

server localhost {
  key  "<key-name>";
};

注意重要
 

rootユーザー以外は/etc/rndc.confファイルを 読み書きできないようにしてください。

12.4.3. コマンド行オプション

rndcコマンドは以下のような形態をとります。

rndc <options> <command> <command-options>

rndcを適切に設定されたローカルホストで実行する場合、以下のコマンドが利用できます。

ときには、/etc/rndc.confファイル内のデフォルト設定を上書きしたい場合があるかもしれません。 そのような場合には、以下のようなオプションが利用できます:

これらのオプションについてのさらに詳しい情報は、rndcmanページに記載されています。