TSIGについてまとめてみた(未整理)
TSIG って何
ゾーン転送における、スレイブサーバ側の、マスターサーバからのなりすまし防止のための仕組み。
スレーブ・サーバのゾーン転送とセキュリティ (3/3):実用 BIND 9で作るDNSサーバ(5) - @IT
http://www.tatsuyababa.com/NW-DNS/NW-200302-DNS07.pdf
https://jprs.jp/tech/material/rfc/RFC2845-ja.txt
TSIG(Transaction Signature)。
TSIGはサーバとクライアントで共通の秘密鍵を保有し、DNSメッセージ全体に署名を行うことでメッセージの完全性の保証やリクエスト認証を可能にします。
鍵生成コマンド
結構時間がかかる。中々結果が返らなくてもあせらない。
/usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n HOST example.com
# 結果 $ ll *key Kexample.com.+157+13212.key ( key の前の数字はランダム?) $ ll *private Kexample.com.+157+13212.private ( private の前の数字はランダム?)
bind への設定 (マスターサーバ・スレーブサーバ両方での設定)
生成された「Kexample.com.+157+*.key」ファイルを開くと以下のようになる。
cat Kexample.com.+157+13212.key example.com. IN KEY 512 3 157 jRRJA...(省略)
の 157 以降「jRRJA...(省略)」部分を /etc/bind/tsig-keys/example.com.key (bind:bind 600) で以下のように保存。
なお、本操作は root 権限での実施が望ましい。(というかじゃないと操作できなかったっぽい)
key example.com { algorithm hmac-md5; secret "jRRJA...(省略)"; };
bind への設定方法
http://www.tatsuyababa.com/NW-DNS/NW-200302-DNS07.pdf
に記載の通り。named.conf に以下のように記載する。
TSIG付きDNSダイナミックアップデートの設定(named.confファイル)
# 正引きゾーン sample zone "example.com" { type master; file "example.com.zone"; allow-update { key ddns.example.com.; }; }; # 逆引きゾーン sample zone "0.168.192.in-addr.arpa" { type master; file "0.168.192.in-addr.arpa.zone"; allow-update { key ddns.example.com.; }; }; # TSIG鍵の設定 sample key ddns.example.com. { algorithm hmac-md5; secret "iSUuKtizDJEK/9ptgewTHQ=="; };
セカンダリサーバにおけるゾーン転送の設定(named.confファイル)
// TSIGを使用するサーバの設定 server 192.168.0.10 { keys { axfr.example.com.; }; }; // TSIG鍵の設定 key axfr.example.com. { algorithm hmac-md5; secret "nAgPY1cTo8HJ/FXw1waaow=="; };