如何为 chrooted BIND 设置日志记录子句?

如何为 chrooted BIND 设置日志记录子句?

这个问题有点类似于这个但似乎最有帮助的答案是 Ubuntu 特有的,并且运行在 OSX 10.6.8 上。

使用此日志子句:

logging {
         category default {
                 _default_log;
         };

         channel _default_log  {
                 file "/var/chroot/named/var/log/query.log";
                 severity info;
                 print-time yes;
         };
 };

我在 system.log 中收到此错误:

isc_log_open ‘/var/chroot/named/var/log/query.log’ 失败:找不到文件

这篇文章介绍了 conf 文件中 bind9 的日志记录子句说:

文件“path_name”是一个带引号的字符串,定义日志文件的绝对路径,例如“/var/log/named/namedlog.log”。

但是 conf 位于 jail 内/var/chroot/named/etc/named.conf,我希望将日志写入/var/chroot/named/var/log/query.logjail 内或/Library/Logs/named.logjail 外的 (即日志在 chrooting 之前指向的位置)。无论我使用哪个都可以。

任何帮助深表感谢!

答案1

由于您的绑定是在监狱 chroot 内运行,因此您的路径应该与它相关。

对于您的 chrooted bind,/目录从 开始/var/chroot/named,因此您应该将文件名更改为/var/log/query.log并确保 bind 具有写入 的权限/var/log

另外,您可以将日志写入两个文件。如果上述更改有效,您可以在 chroot 之外使用以下命令将两个文件(/var/chroot/named/var/log/query.log和)链接为一个:/Library/Logs/named.log

$ ln /var/chroot/named/var/log/query.log /Library/Logs/named.log

这样做会在两个位置提供相同的内容。但是,请注意,删除一个文件不会删除另一个文件,但清空该文件会同时删除两个文件。因此,如果您使用logrotate或类似程序,则需要轮换两个文件并确保每次都重新创建链接。

答案2

将指令中的文件名更改为 /var/log/query.log.....您位于以 /var/chroot/named 作为其根的 chroot 区域。

相关内容