12.4. rndcの使用法

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

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>は、/etc/named.confファイル内の keyステートメントで名前を指定します。 次の例は、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ファイルを 読み書きできないようにしてください。

/etc/rndc.confファイルに関する詳細は、rndc.confの man ページを参照してください。

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

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

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

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

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

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