我的 BIND9 在 chroot jail 下运行,然而,我在尝试记录所有查询时遇到了困难。
/var/chroot/bind9/
我在创建目录的地方绑定了/var/chroot/bind9/var/log/
。我希望将查询日志放在正常的 /var/log/ 目录下,因此我将以下内容添加到我的目录中,named.conf.local
然后执行了此操作:
# touch /var/log/query.log
# ln -s /var/log/query.log /var/chroot/bind9/var/log/query.log
# chown -R bind:bind /var/chroot/bind9/var/log/
logging {
channel query.log {
file "/var/log/query.log";
severity debug 3;
};
category queries { query.log; };
};
但我一直得到这样的信息:named[2270]: isc_log_open '/var/log/query.log' failed: invalid file
‘任何帮助都将不胜感激。’
答案1
确保/var/chroot/bind9/var/log/
由以该身份运行的用户拥有绑定。
看来你在 ubuntu 上。按照这个或禁用 apparmor
答案2
您不能在 chroot jail 中使用指向 jail 外部的符号链接 - 符号链接是相对于新的根目录进行解释的。
所以你的链接:
# ln -s /var/log/query.log /var/chroot/bind9/var/log/query.log
当运行chroot('/var/chroot/bind9')
最终指向其自身时!