我正在尝试让 bind 9.11(CentOS 8 上的默认设置)记录查询,但无法回答,或者列出不断查询服务器但不允许的客户端。
最后我想用这个日志来提供给fail2ban并阻止那些“白痴”。
该服务器是主要的 NS,负责回答有关其所持有的域的查询,但仅此而已。
首先,我尝试记录所有内容,如https://kb.isc.org/docs/aa-01526甚至在完整的调试级别下,也从未发现包含“拒绝”或类似单词的日志行,除非有人要求进行完整的区域传输(肯定只允许从辅助 NS 进行),如下所示:
2020 年 8 月 27 日 11:40:47.317 客户端 @0x7fd284052510 94.102.208.167#51041 (somedomain.com):区域传输 'somedomain.com/AXFR/IN' 被拒绝
当向服务器查询不负责的名称时,客户端会得到:
dig @ns.mydomain.com www.disney.com 非权威答案: *** 找不到 www.disney.com:无答案
什么是正确的,但是 bind 只记录如下内容:
2020 年 8 月 27 日 11:43:27.741 查询:信息:客户端 @0x7fd2840bf440 1.2.3.4#34369 (www.disney.com): 询问:www.disney.com在 A + (xxxx)
这让我不知道向客户发送了什么样的答案。
当前配置是:
logging {
channel "my_queries" {
file "/var/log/named.queries" versions 600 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity dynamic;
};
channel "security_file" {
file "/var/log/named.security";
severity dynamic;
print-time yes;
};
category "queries" { "my_queries"; };
category client { "security_file"; };
category security { "security_file"; };
category lame-servers { null; };
};
那么:我该如何为首先不允许询问服务器的客户端创建日志条目?
答案1
就我而言,我看到的是:
27-Aug-2020 13:33:17.170 security: info: client @0x7f88b57bdf90 192.168.10.165#18237 (www.google.com): view 192.168.10.0/24: query (cache) 'www.google.com/AAAA/IN' denied
27-Aug-2020 13:33:17.170 query-errors: info: client @0x7f88b57bdf90 192.168.10.165#18237 (www.google.com): view 192.168.10.0/24: query failed (REFUSED) for www.google.com/IN/AAAA at ../../../bin/named/query.c:7144
我的配置是(在/etc/bind/named.conf.options
):
logging {
channel replace_syslog {
file "/var/log/bind/named.log" versions 5 size 2m;
severity info;
print-time yes;
print-category yes;
print-severity yes;
};
category default { replace_syslog; default_debug; default_syslog ; };
category lame-servers { null; };
channel query.log {
file "/var/log/bind/query.log" versions 2 size 2M;
severity debug 3;
print-time yes;
};
category queries { query.log; };
};