我在 FreeBSD 11.2 上运行 chrooted BIND 9.11 服务器,该服务器已配置 RPZ。它当前正在将 RPZ 命中记录到文件中,但我想(也)将它们发送到syslog
。
我可以看到来自 BIND /var/log/messages
(的默认目标syslog
)的其他日志条目(不是 RPZ),因此总体来说,记录到 syslog 是正常的(也可以从 chrooted 环境进行)。
看起来每一个互联网上的示例或教程是将 RPZ 命中记录到文件中...所以我甚至想知道 RPZ 是否有些特殊并且无法写入日志syslog
?
以下是我目前的配置的相关部分:
logging{
channel normal-log {
// Without a 'file' statement, logs go to syslog
syslog daemon;
severity warning;
};
[...]
channel named-rpz-file {
file "/var/log/rpz.log" versions 3 size 250k;
severity info;
print-time yes;
};
channel named-rpz-syslog {
syslog security;
severity info;
print-time yes;
};
category rpz {
named-rpz-file;
default_syslog;
};
// everything else
category default {
normal-log;
};
};
/var/log/rpz.log
由于我确实在默认syslog
目标 ( ) 中看到了日志条目和 BIND 条目/var/log/messages
,因此我假设这两个条目基本都在工作:syslog
和 RPZ。但出于某种奇怪的原因,RPZ 条目未显示在系统日志中。
是否有人使用(chrooted)BIND 9 成功记录了 RPZ 命中syslog
?或者是否有人知道如何调试(BIND 没有向 syslog 发送任何内容,还是 syslog“丢失”了消息)?
答案1
我认为现在我已经能够弄清楚这一点了。
显然,BIND 不知道security
syslog 工具!因此,它一直使用默认daemon
工具进行记录,而我的 syslog 配置确实抑制了这些消息。
参见“7.5.1. 日志语句”https://docstore.mik.ua/orelly/networking_2ndEd/dns/ch07_05.htm哪里security
不是后文提到syslog
:
logging {
[ channel channel_name {
( file path_name
[ versions ( number | unlimited ) ]
[ size size_spec ]
| syslog ( kern | user | mail | daemon | auth | syslog | lpr |
news | uucp | cron | authpriv | ftp |
local0 | local1 | local2 | local3 |
local4 | local5 | local6 | local7 )
| stderr
| null );
[ severity ( critical | error | warning | notice |
info | debug [ level ] | dynamic ); ]
[ print-category yes_or_no; ]
[ print-severity yes_or_no; ]
[ print-time yes_or_no; ]
}; ]
[ category category_name {
channel_name; [ channel_name; ... ]
}; ]
...
};
改变后
channel named-rpz-syslog {
syslog security;
severity info;
print-time yes;
};
到
channel named-rpz-syslog {
syslog local5;
severity info;
print-time yes;
};
日志行突然出现。