TSIGによる署名
NSDが送出するNOTIFYへのTSIG署名
ns.example1.jpがns.example2.jp[10.2.0.3]に向けて送出する、example1.jpゾーンに関するNOTIFYにns.example1.jp-ns.example2.jpという鍵でTSIG署名してみます。
まずns.example2.jpの側で、example1.jpゾーンに関するNOTIFYについて署名を検証するように、named.confの
zone "example1.jp" IN {
:
:
};
にallow-notifyステートメントを追加し
zone "example1.jp" IN {
:
:
allow-notify {
key ns.example1.jp-ns.example2.jp;
};
:
:
};
のように変更します。
この設定で、ns.example1.jpでnsdc notifyを実行して(署名していない)NOTIFYを送出してみると、ns.example2.jpのnamed(BIND 9.3.1)は
Dec 27 15:38:47 ns.example2.jp named[89746]: notify: info: client 10.2.0.4#52528: received notify for zone 'example1.jp'
のようなメッセージをログに出力し、上のようなallow-notifyが設定されていても、署名されていないNOTIFYを受理しました。
続いてnsd.confの
zone:
name: example1.jp
:
:
notify: 10.2.0.3 NOKEY
を
zone:
name: example1.jp
:
:
notify: 10.2.0.3 ns.example1.jp-ns.example2.jp
に変更し、NOTIFYに署名するように設定します。この設定でNOTIFYを送出してみるとns.example2.jpのnamedは
Dec 27 15:29:17 ns.example2.jp named[89746]: notify: info: client 10.2.0.4#55308: received notify for zone 'example1.jp': TSIG 'ns.example1.jp-ns.example2.jp'
のようなメッセージをログに出力し、署名を検証した上でNOTIFYを受理したことがわかります。
間違った鍵(まぎらわしいですがns.example2.jp-ns.example1.jpで試してみました)で署名したNOTIFYを送出してみると、ns.example2.jpのnamedは
Dec 27 15:38:20 ns.example2.jp named[89746]: security: error: client 10.2.0.4#58731: request has invalid signature: TSIG ns.example2.jp-ns.example1.jp: tsig verify failure (BADKEY)
のようなメッセージをログに出力し、検証の結果、署名が不正だったことを理由にNOTIFYを破棄したことがわかります。
NSDが送出するゾーン転送要求へのTSIG署名
次に、ns.example1.jpがns.example2.jp[10.2.0.3]に向けて送出する、example2.jpゾーンに関するゾーン転送要求にns.example1.jp-ns.example2.jpという鍵でTSIG署名してみます。
NOTIFYのときと同様に、まずns.example2.jpの側でexample2.jpゾーンに関するゾーン転送要求を署名によりアクセス制限するように、named.confの
zone "example2.jp" IN {
:
:
};
にallow-transferステートメントを追加し
zone "example1.jp" IN {
:
:
allow-transfer {
key ns.example1.jp-ns.example2.jp;
};
:
:
};
のように変更します。
この設定で、example2.jpゾーンのデータを更新してns.example1.jpにNOTIFYを送出してみると、ns.example2.jpのnsdは署名していないゾーン転送要求を送出してくるので、ns.example2.jpのnamedは
Dec 27 16:37:53 ns.example2.jp named[89981]: security: error: client 10.2.0.4#50293: zone transfer 'example2.jp/IXFR/IN' denied
のようなメッセージをログに出力し、検証の結果、署名が不正だったことを理由にゾーン転送を拒否したことがわかります。
続いてnsd.confの
zone:
name: example2.jp
:
:
request-xfr: 10.2.0.3 NOKEY
:
:
を
zone:
name: example2.jp
:
:
request-xfr: 10.2.0.3 ns.example1.jp-ns.example2.jp
:
:
に変更し、ゾーン転送要求に署名するように設定します。この設定で、example2.jpゾーンのデータを更新してns.example1.jpにNOTIFYを送出してみると、ns.example2.jpのnamedは
Dec 27 16:48:09 ns.example2.jp named[89981]: xfer-out: info: client 10.2.0.4#65315: transfer of 'example2.jp/IN': AXFR-style IXFR started: TSIG ns.example1.jp-ns.example2.jp
のようなメッセージをログに出力し、署名を検証した上でゾーン転送要求に応じたことがわかります。
TSIGによる署名とその検証の準備|Up|TSIG署名の検証
Copyright(c) 2006, Koh-ichi Ito, All right reserved.
Last update: $Date: 2018-10-21 16:09:48 +0900 (Sun, 21 Oct 2018) $