BIND9でゾーン転送失敗(permission denied)





BIND9で/var/log/messagesに次のようなログが出力されて、
ゾーン転送に失敗した。

May 13 15:29:54 test named[4082]: dumping master file: tmp-XXXXP5ekSR: open: permission denied
May 13 15:29:54 test named[4082]: transfer of 'test.example.com/IN' from 1.1.1.100#53: failed while receiving responses: permission denied
May 13 15:29:54 test named[4082]: transfer of 'test.example.com/IN' from 1.1.1.100#53: end of transfer

これは、スレーブのnamed.confのゾーンファイルの保存先の指定が原因。

ゾーン転送に失敗した時の設定(named.conf)
options {
	   directory "/var/named";
};

zone "test.example.com" {
	   type slave;
	   masters { 1.1.1.100; };
	   file "db.test.example.com";
};

/var/namedに書き込み権限がないため、拒否されてpermission deniedとなった。

単純に/var/namedの権限を変更しても同様のメッセージが出力された。

namedの再起動時に/var/namedの権限が書き換えられるので、
起動スクリプト(/etc/init.d/named)も修正したが結果は同じだった。

ゾーン転送に成功した時の設定(named.conf)
options {
	   directory "/var/named";
};

zone "test.example.com" {
	   type slave;
	   masters { 1.1.1.100; };
	   file "bak/db.test.example.com";
};

/var/named/bakにゾーンファイルを保存するようにした。
これで問題なくゾーン転送でもらってきたファイルを保存することが
できるようになった。

以下も同様の意味になります。
options {
	   directory "/var/named/bak";
};

zone "test.example.com" {
	   type slave;
	   masters { 1.1.1.100; };
	   file "db.test.example.com";
};