Я пытался заставить работать журнал запросов к серверу BIND, создав 3 версии, максимум 100 МБ каждая. Система - SUSE SLES 11. Я нашел множество статей в Интернете, но ни одна из них не делает ничего, кроме взлома DNS-сервера. Машина является гостевым виртуальным ящиком, поэтому я могу продолжать возвращаться к неизмененному моментальному снимку рабочего сервера BIND, который не ведет журнал запросов.
Если я вручную добавлю операторы ведения журнала в named.conf, named больше не будет загружаться. messages показывает «isc_stdio_open» все, что я ему сказал, «не удалось: файл не найден». chown named. named logfile не помогает и никоим образом не меняет поведение. Делайте что-либо с файлом профиля apparmor напрямую, включая просто сохраняйте его без изменения, и apparmor никогда больше не загрузит этот профиль. Будет сказано, что профиль уже существует.
Восстановить снимок -> теперь вернуться к отсутствию изменений
используйте инструменты графического интерфейса, чтобы настроить ведение журнала для DNS-сервера. named не запускает bc, он все еще не имеет прав или не может найти файл журнала. chown named. named logfile не помогает. используйте инструменты графического интерфейса для настройки apparmor. Это, по крайней мере, не убивает профиль apparmor, но никак не помогает ситуации.
Я пробовал это на двух разных виртуальных машинах / с, оба SLES 11, оба являются просто базовыми, принимают все установки по умолчанию и еще не находятся в производстве.
Я пробовал несколько различных комбинаций использования инструментов графического интерфейса и ручного изменения файлов конфигурации. Я пробовал разные места для файла журнала, такие как / var / log / querylog, / var / log / querylogs / querylog, / root / query. Я попытался использовать касание для создания файла журнала, а затем переименовать его в named. named. Я пробовал использовать графический интерфейс для создания файлов / каталогов, а затем устанавливать разрешения.
Кто-нибудь знает, как получить журналы DNS-запросов при ротации 3 файлов на работающем сервере SLES 11 BIND? Не похоже, что это должно быть где-то рядом с такими хлопотами.
редактировать
в настоящее время раздел журнала named.conf выглядит так:
ведение журнала {channel log_file {file "/var/log/query_log.log" версии 3 размером 100M; }; категория по умолчанию {log_file; }; };
в / var / log / messages сообщается следующее:
рабочий каталог недоступен для записи.
isc_stdio_open '/var/log/ named/query_log.log' не удалось: файл не найден> настройка ведения журнала: файл не найден, выход (из-за фатальной ошибки)
так что похоже, что есть какая-то проблема с разрешениями. Я создал этот каталог и поместил в него пустой файл с именем query_log.log. Я назначил имя владельца и разрешил всем читать, писать и выполнять в / var / log / named и дал всем чтение и запись в /var/log/ named/query_log.log
ls -l из / var / log / named
-rwxrwxrwx l с именем named 0 26 апреля 08:43 query_log.log
ls - из / var / log
// различные файлы и каталоги
drwxr-xr-x 2 named named 4093 26 апр 09:26 named
редактировать 2
для запуска сервера привязки я использую rc named start. Если я удалю раздел журнала, чтобы получить имя start, выполняю команду ps aux | grep named показывает, что / usr / sbin / named запущен от имени указанного пользователя.
Спасибо за вашу помощь. Что мне нужно сделать, чтобы это заработало?
Кто-нибудь знает, как получить журналы DNS-запросов при ротации 3 файлов на работающем сервере SLES 11 BIND? Не похоже, что это должно быть где-то рядом с такими хлопотами.
Это не должно доставлять хлопот - синтаксис прост и хорошо отработан (его использовали тысячи и тысячи администраторов серверов имен). Теоретически это возможно, но очень маловероятно, что вы обнаружили в нем новую ошибку. Давайте посмотрим на более вероятные причины.
Никогда не повредит сначала проверить свой синтаксис. Как объясняется в Справочном руководстве администратора BIND (он же «ARM», копия ARM, соответствующая вашей версии BIND, включена в исходный код BIND или может быть найдена на веб-сайте ISC) 6.2 .10 вы должны сначала определить канал, например:
channel example_query_channel {
file "bind_query.log" versions 3 size 20m;
print-time yes;
print-category yes;
};
затем направьте категорию, в которой вы хотите вести журнал (т.е. «запросы»), на этот канал:
category queries {
example_query_channel;
};
Вы можете использовать утилиту named-checkconf, поставляемую с BIND, чтобы проверить синтаксис вашего файла конфигурации на наличие ошибок, прежде чем пытаться перезапустить BIND с ним.
Если это не сработает для вас, у вас есть проблема с правами доступа к файловой системе, а не проблема с BIND; BIND каким-то образом препятствует записи в файл, который вы указали в соответствующем каталоге. Возможно, вы отказываетесь от привилегий для работы от имени пользователя без полномочий root, и у этого пользователя нет -x perms для обхода всех каталогов на пути от корня файловой системы до каталога, в который вы пишете, или, может быть, у вас нет - w perms для записи файлов в этот каталог. Или, возможно, у вас есть другой уровень безопасности (вы упоминаете AppArmor), который еще больше усложняет ситуацию.