bind9:禁用recursion查询的错误日志logging

无意中,我跑的bind9服务器是一个开放的parsing器。 哎呦。

现在已经过了几个月了, isc.org的recursion查询仍然是传入的。 我不介意我的/var/log/syslog不是这样的:

 Jul 6 01:10:23 servername last message repeated 6 times Jul 6 01:10:23 servername named[2580]: client YYY.YY.YYY.YYY#25345: query (cache) 'isc.org/ANY/IN' denied Jul 6 01:10:23 servername named[2580]: client ZZZ.ZZ.ZZZ.ZZ#25345: query (cache) 'isc.org/ANY/IN' denied Jul 6 01:10:23 servername last message repeated 7 times Jul 6 01:10:23 servername named[2580]: client AAA.AAA.A.AAA#25345: query (cache) 'isc.org/ANY/IN' denied Jul 6 01:10:23 servername named[2580]: client BBB.BB.BB.BBB#25345: query (cache) 'isc.org/ANY/IN' denied Jul 6 01:10:23 servername last message repeated 6 times 

(有人可能会觉得有趣的是,上面的消息都出现在一秒钟内…我不再不)。

这确实使得难以发现系统上的另一服务可能报告的任何实际错误。

我想使bind9不再logging这些消息。 而我越过我的手指,可以使这些消息从日志中消失。

以什么方式可以禁用不允许recursion出现在系统日志(或其他日志)中的消息?

 servername:/etc/bind9# named -V BIND 9.8.4-rpz2+rl005.12-P1 built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' using OpenSSL version: OpenSSL 1.0.1c 10 May 2012 using libxml2 version: 2.8.0 servernane:/etc/bind9# uname -a Linux servername 3.2.0-4-686-pae #1 SMP Debian 3.2.35-2 i686 GNU/Linux 

澄清:

我对如何沉默“recursion拒绝”types消息的更详细的例子感兴趣。

关于禁用recursion查询的所有绑定错误日志logging,如“查询(caching)”theswat.net/ANY/IN“拒绝”

/etc/named.conf中的以下内容将这些redirect到/var/named/data/named.security,其总大小限制为15mby的滚动日志。 请注意,类别安全性只是“批准和拒绝请求”。

 logging { channel default_debug { file "data/named.run"; severity dynamic; }; // Redirect all of those 'denied' logs for non-existing domains or external ones (we are 'recursion no;') // logs to /var/named/data/named.security, up to 3 files of 5mbytes each // independent hack_detect processes can then scan for flooders and known abusers and block their IPs channel hd_security { file "data/named.security" versions 3 size 5m; print-time yes; print-severity yes; print-category yes; }; category security { hd_security; }; }; 

请参阅BINDpipe理员参考手册(也称为“ARM”,包含在您的源代码发行版中,或查阅ISC知识库中的链接表以查找BIND版本特定的版本)并转到6.2.10节涵盖日志。

BIND错误消息以各种类别发出,您可以根据类别指定其目标。 虽然我不知道非正式的,并且必须检查来源,以确切地知道您要抑制的错误消息的类别,但一旦您确定了类别(通过检查源代码或通过反复试验),您可以抑制使用ARM中显示的示例语法为该类别提供错误消息,即:

 To discard all messages in a category, specify the null channel: category xfer-out { null; }; category notify { null; }; 

我将从“parsing器”类开始,尽pipe因为这是一个拒绝信息,它可能属于“安全” – 实际上,你所描述的区域位于几个可能的类别之间(这就是为什么我不能说顶部我的头这是正确的..)“parsing器”听起来像你不希望发现有用的消息,如果你不试图执行客户端recursion。

是的,这是可以沉默的约束。 检查您的configuration类别和通道定义。 如果这在你的系统日志中显示,那么find提到系统日志的通道。 还有一个内置的default_syslog通道,然后findlogging到这些通道的类别。 将该类别注释掉或将其redirect到其他频道。 testing时,您可能需要redirect到日志。

更多细节可以在这里find: http : //www.zytrax.com/books/dns/ch7/logging.html

对于那些使用系统日志,不想丢弃一切。 从技术上讲,你不想把所有东西都发送到NULL。 这里的WARNING和CRITICAL仍在logging中。

 logging { channel default_debug { file "data/named.run"; severity dynamic; }; channel syslog { syslog; severity warning; print-severity yes; print-category yes; }; category default{ syslog; }; };