По умолчанию журналы named отправляются в /var/log/syslog через syslog, при этом не журналируя запросы. Данная статья поможет Сделать журнал BIND более полезным.
Включение ведения журнала в BIND
Создайте каталог журналов и установите необходимые права доступа
1 2 | sudo mkdir -p /var/log/bind sudo chown bind /var/log/bind -R |
Редактирование /etc/bind/named.conf.options
1 | sudo nano /etc/bind/named.conf.options |
Теперь перейдите к нижней (конечной) части файла и добавьте следующую секцию протоколирования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | logging { channel transfers { file "/var/log/bind/transfers" versions 3 size 10M; print-time yes; severity info; }; channel notify { file "/var/log/bind/notify" versions 3 size 10M; print-time yes; severity info; }; channel dnssec { file "/var/log/bind/dnssec" versions 3 size 10M; print-time yes; severity info; }; channel query { file "/var/log/bind/query" versions 5 size 10M; print-time yes; severity info; }; channel general { file "/var/log/bind/general" versions 3 size 10M; print-time yes; severity info; }; channel slog { syslog security; severity info; }; category xfer-out { transfers; slog; }; category xfer-in { transfers; slog; }; category notify { notify; }; category lame-servers { general; }; category config { general; }; category default { general; }; category security { general; slog; }; category dnssec { dnssec; }; // category queries { query; }; }; |
Сохраните и выйдите из файла и ПРОВЕРЬТЕ, что он работает:
1 | sudo named-checkconf /etc/bind/named.conf |
Обратите внимание, что категория "query" закомментирована. Это сделано специально, так как этот файл журнала на многих серверах может быстро стать очень большим. Если они вам нужны, к примеру для SIEM системы, то просто раскоментируйте данную строку.
Обновление правил AppArmor (пропустите этот шаг, если AppArmor не установлен в вашей системе)
По умолчанию запись fies в /var/log/bind не будет разрешена системой безопасности AppArmor. Чтобы обойти это, мы обновим профиль Ubuntu AppArmor для named (bind9):
1 | sudo editor /etc/apparmor.d/usr.sbin.named |
Найдите этот раздел:
1 2 3 4 5 6 7 8 9 | # /etc/bind should be read-only for bind # /var/lib/bind is for dynamically updated zone (and journal) files. # /var/cache/bind is for slave/stub data, since we're not the origin of it. # See. /usr/share/doc/bind9/README.Debian.gz /etc/bind/** r, /var/lib/bind/** rw, /var/lib/bind/ rw, /var/cache/bind/** lrw, /var/cache/bind/ rw, |
И, сразу после последней строки в этом блоке (/var/cache/bind/ rw,), добавьте:
1 2 | /var/log/bind/** rw, /var/log/bind/ rw, |
Сохраните файл и выйдите, затем перезагрузите AppArmor:
1 | sudo systemctl restart apparmor |
Теперь переконфигурируйте или перезапустите bind:
1 | sudo rndc reconfig |
Загляните в /var/log/bind/ и посмотрите, создаются ли файлы. (например, ls -lt /var/log/bind/).
Если это не сработает, попробуйте
- проверить разрешения для /var/log/bind
- перезапустить named
1 | service bind9 restart |