2010/05/09

BIND の設定あれこれ

一年近く放置していた File Server たち。
FreeBSD 7.2-RELEASE-p3 から、FreeBSD 8.0-RELEASE-p2 まで、一気に上げたのでした。
ちなみに、Gateway Server は、7.2-RELEASE-p2 だったりしたのでした (汗

さて。
昔から頭を悩ませてきた BIND の問題。
少し解決したので、そのことを。


■ 起動時に、
named[749]: the working directory is not writable
と叫ぶ。

□ 気にするこっちゃない!
named.conf で指定する directory のことですけれど。
普通は、/etc/namedb あたりが指定されていますよね。
このディレクトリの owner が root:wheel にされていて、bind が書けないから叫んでいるこの警告。
"programmer inflected useless warnings" (プログラマの屈折した役に立たない警告) だそうで、「書けなかったからって、それが何か?」 と言うスタンスでいいそうです。
# つまり、この警告は無視してよい

何回、手で owner を書き換えても root に戻されちゃうのは、BIND の起動時に、/etc/mtree/BIND.chroot.dist の指定で設定されるからです。
この機能を抑制するには、/etc/rc.conf に named_chroot_autoupdate="NO" を指定します。
んが。
セキュリティ上の理由でこの設定が採用されているので、こんなことはしない方がよいでしょう。
ましてや、/etc/mtree/BIND/chroot.dist を書き換えるなんて、以ての外です。

どーしても! この警告を消したい方は、以下の対策をします。

1.working directory として、/etc/namedb/letskeepthisdirwritable を指定
2./etc/namedb/letskeepthisdirwritable の owner を bind:bind にし、permission は 0755 に
3.named.conf の中のファイル指定を、全部相対パスに変更
ex) named.root -> ../named.root,  master/empty.db -> ../master/empty.db

これで、この警告を消し去ることができます。
まぁ、面倒くさいので、この警告は無視した方がよいでしょうね。。。



■ Dynamic DNS を利用していると、
named[749]: dumping master file: master/tmp-hb9UYKWNAy: open: permission denied
などと叫ぶ。


□ Dynamic DNS の使い方が間違っている
 間違っても、master/ ディレクトリの owner を変えたり、permission を変えたりしないように。

master/ ディレクトリの owner, permission は、やっぱり起動時に /etc/mtree/BIND.chroot.dist の指定で設定し直されます。
これも、やはりセキュリティ上の理由からです。
master server の設定は、外部から変更されないべきであるため、この設定となっています。
Dynamic DNS を使うときは、dynamic/ ディレクトリを使います。
つまり、こんな指定になります。

zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "../dynamic/example.org";
};


■ Dynamic DNS を利用していると、

named[29217]: zone 'hogehoge' allows updates by IP address, which is insecure
などと叫ぶ。


□ なるべく TSIG (Transaction Signature) を使いましょうね
Dynamic DNS の update が可能な端末を IP Address だけで指定していると、こう言われます。
より secure に、TSIG を使って認証しなさい、と言う警告です。

TSIG が使えない環境の場合は、諦めるしかありませんねぇ。。。
クライアントが対応していないだけなら、DHCP server に DDNS 更新を依頼するといいかもしれません。