Назад | Перейти на главную страницу

bind9: отключение регистрации ошибок для рекурсивных запросов

случайно, сервер bind9, который я запускал, был открытым преобразователем. Упс.

Прошло несколько месяцев, и рекурсивные запросы для isc.org все еще поступают. Я бы не возражал, если бы мой /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 больше не регистрировал эти сообщения. И я скрещиваю пальцы, что можно сделать только эти сообщения исчезают из журналов.

Как я могу отключить сообщения о том, что рекурсия запрещена для отображения в системном журнале (или других журналах)?

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

Чтобы уточнить:

Я заинтересован в более подробный пример того, как заставить замолчать просто "рекурсия запрещена"сообщения типа.

Относительно отключения регистрации всех ошибок привязки для рекурсивных запросов, таких как «запрос (кеш) 'theswat.net/ANY/IN' запрещен»

Приведенный ниже файл /etc/ named.conf перенаправляет их в /var/ named/data/ named.security с общим ограничением размера 15 Мб для пролистывания журналов. Обратите внимание, что безопасность категории - это только «Утверждение и отклонение запросов».

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; };
};

См. Справочное руководство администратора BIND (также известное как «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; };

Я бы начал с категории «распознаватель», хотя, поскольку это сообщение об отказе, оно может принадлежать к «безопасности» - на самом деле описанная вами область находится между несколькими возможными категориями (поэтому я не могу сказать, что это верх из моей головы, что правильно ..) "resolver" звучит как сообщения, которые вы не ожидаете найти полезными в любом случае, если вы не пытаетесь выполнять рекурсию для клиентов.

Да, привязку можно отключить. Проверьте свою конфигурацию на предмет категорий и определений каналов. Если это отображается в вашем системном журнале, найдите каналы, упоминающие системный журнал. Также имеется встроенный канал default_syslog. Затем найдите категории, ведущие журналы на эти каналы. Закомментируйте категорию или перенаправьте ее на другой канал. Вы можете перенаправить в журнал во время тестирования.

Более подробную информацию можно найти здесь: http://www.zytrax.com/books/dns/ch7/logging.html

Для тех, кто использует syslog и не хочет все выбрасывать. Технически вы не хотите отправлять все в NULL. Здесь все еще регистрируются сообщения WARNING и CRITICAL.

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