19.4. rndcの使用
BIND には、localhost または a リモートホストから named デーモンのコマンドライン管理を可能にする rndc と呼ばれるユーティリティーが含まれています。
named デーモンへの不正アクセスを防ぐために、BIND は共有秘密鍵認証方法を使用して、ホストに特権を付与します。つまり、同じキーを
/etc/named.conf
と rndc 設定ファイル /etc/rndc.conf
の両方に存在する必要があります。
注記
bind-chroot
パッケージをインストールしている場合、BIND サービスは /var/named/chroot 環境で実行されます。すべての設定ファイルはそこに移動します。そのため、rndc.conf
ファイルは /var/named/chroot/etc/rndc.conf
にあります。
rndc ユーティリティーは chroot 環境で実行されないため、
/etc/rndc.conf
は /var/named/chroot/etc/rndc.conf
へのシンボリックリンクであることに注意してください。
19.4.1. /etc/named.conf
の設定
rndc が named サービスに接続するには、BIND サーバーの
/etc/named.conf
ファイルに control ステートメントが必要です。
以下の例のように、controls ステートメントにより、rndc がローカルホストから接続できるようになります。
controls { inet 127.0.0.1 allow { localhost; } keys { <key-name>; }; };
このステートメントは、ループバックアドレスのデフォルトの TCP ポート 953 をリッスンするように named に指示します。適切なキーが指定されている場合は、localhost からの rndc コマンドを許可します。< ;key-name> は、
/etc/named.conf
ファイル内の キー ステートメントの名前を指定します。次の例は、サンプルの キー ステートメントを示しています。
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
> ファイルにあります。
Warning
/etc/named.conf
は誰でも読み取り可能であるため、キー ステートメントを別のファイルに置き、root のみが読み取り可能にし、include ステートメントを使用して参照することができます。以下に例を示します。
include "/etc/rndc.key";
19.4.1.1. ファイアウォールによる通信のブロック
ファイアウォールが named デーモンから他のネームサーバーへの接続をブロックしている場合は、可能な限りファイアウォール設定を変更することが推奨されます。
警告:固定 UDP ソースポートの使用を回避
DNSSEC 検証を実行するように設定されていない、または DNSSEC によって保護されていない DNS ゾーンをクエリーする必要がある DNS リゾルバーは、16 ビットのトランザクション識別子(TXID)と宛先の UDP ポート番号を使用して、DNS データをクエリーするサーバーによって DNS 応答が送信されたかどうかを確認します。
以前は、BIND は DNS クエリーの送信時に、固定 UDP ソースポートを常に使用していました。BIND は、query-source (および query-source -v6)ディレクティブを使用して設定されたポート、または起動時にランダムに選択されたポートを使用していました。静的クエリーソースポートが使用されると、TXID はなりすましの応答に対する保護が十分にないため、攻撃者は キャッシュポイズニング攻撃を効率的に実行できるよう になります。この問題に対処するために、BIND は各 DNS クエリーにランダムに選択されたソースポートを使用できるように更新され、クエリーパケットが検出できない場合に攻撃者が偽装するのがより困難になりました。セキュリティー更新 [3] 影響を受けるすべての Red Hat Enterprise Linux バージョンに対してリリースされました。さらに、caching-nameserver パッケージが提供するデフォルト設定が更新され、固定クエリーソースポートが指定されなくなりました。
BIND を DNS リゾルバーとしてデプロイする場合は、前述の設定ディレクティブで BIND が強制的に実行されないようにし、固定クエリーソースポートを使用します。ファイアウォール設定では、ランダムなクエリーソースポートの使用も許可される必要があります。以前は、BIND がポート
53
をクエリーソースポートとして使用し、ファイアウォール上のそのポートからの DNS クエリーのみを許可するように BIND を設定することが一般的でした。