安全なトランザクションは、共有秘密キー(TSIGキーとも呼ばれる)に基づくトランザクション署名(TSIG)を使用して実現できます。ここでは、このキーの生成方法と使用方法について説明します。
安全なトランザクションは、異なるサーバ間の通信、およびゾーンデータの動的アップデートに必要です。アクセス制御をキーに依存する方が、単にIPアドレスに依存するよりもはるかに安全です。
TSIGキーの生成には、次のコマンドを使用します(詳細については、mandnssec-keygenを参照)。
dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2
これにより、次のような形式の名前を持つファイルが2つ作成されます。
Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key
キー自体(ejIkuCyyGJwwuN3xAteKgg==のような文字列)は、両方のファイルにあります。キーをトランザクションで使用するには、2番目のファイル(Khost1-host2.+157+34265.key)を、できれば安全な方法で(たとえばscpを使用して)、リモートホストに転送する必要があります。host1とhost2の間で安全な通信ができるようにするには、リモートサーバでキーをファイル/etc/named.confに含める必要があります。
key host1-host2. {
algorithm hmac-md5;
secret ";ejIkuCyyGJwwuN3xAteKgg==;
};
警告: /etc/named.confのファイルパーミッション
/etc/named.confのファイルパーミッションが適切に制限されていることを確認してください。このファイルのデフォルトのパーミッションは0640で、オーナーがroot、グループがnamedです。この代わりに、パーミッションが制限された別ファイルにキーを移動して、そのファイルを/etc/named.conf内にインクルードすることもできます。外部ファイルをインクルードするには、次のようにします。
include "filename"
ここで、filenameには、キーを持つファイルへの絶対パスを指定します。
サーバhost1がhost2(この例では、アドレス10.1.2.3)のキーを使用できるようにするには、host1の/etc/named.confに次の規則が含まれている必要があります。
server 10.1.2.3 {
keys { host1-host2. ;};
};
同様のエントリがhost2の設定ファイルにも含まれている必要があります。
IPアドレスとアドレス範囲に対して定義されているすべてのACL (アクセス制御リスト―ACLファイルシステムと混同しないこと)にTSIGキーを追加してトランザクションセキュリティを有効にします。対応するエントリは、次のようになります。
allow-update { key host1-host2. ;};
このトピックについての詳細は、update-policyの下の『BIND Administrator Reference Manual』を参照してください。