Проблемы с выполнением DNS с моего сервера

Вопрос или проблема

Когда я выполняю service bind9 status, мне выводится следующее

named[983]: managed-keys-zone: unable to synchronize managed keys: unexpected error
named[983]: zone 0.in-addr.arpa/IN: loaded serial 1
named[983]: zone 255.in-addr.arpa/IN: loaded serial 1
named[983]: zone localhost/IN: loaded serial 2
named[983]: zone 127.in-addr.arpa/IN: loaded serial 1
named[983]: zone midomain.com/IN: loaded serial 2017061000
named[983]: all zones loaded
named[983]: running zone midomain.com/IN: sending notifies (serial 2017061000)
named[983]: client 201.235.234.30#55016: received notify for zone 'midomain.com'

Журнал /var/log/syslog содержит:

 the working directory is not writable
named[983]: managed-keys.bind.jnl: create: permission denied
named[983]: managed-keys-zone: sync_keyzone:dns_journal_open -> unexpected error
named[983]: managed-keys-zone: unable to synchronize managed keys: unexpected error

Как мне запустить bind9 и настроить его работу правильно?

От имени какого пользователя работает bind? Находится ли он в chroot jail? Какая ОС?

Проблема заключается в том, что он не может создать файл журнала (managed-keys.bind.jnl), а также не может открыть файл managed-keys-zone. Включен ли selinux?

Чтобы проверить, где находятся эти файлы, выполните от имени root следующую команду:

find / -name "managed-keys-zone"

Затем проверьте разрешения на этот файл:

ls -lh <путь из вышеуказанного результата>

Вы должны увидеть права, указанные до 10 символов (иногда 11). Игнорируйте первую букву; это будет -, l или d. Следующие три – это разрешения для указанного ПОЛЬЗОВАТЕЛЯ (чтение – R, запись – W, выполнение – Execute). Следующие три символа – это права на ГРУППУ, а последние три – для всех остальных.

Проверьте, кто владеет этим файлом с помощью команды ls выше – владелец root или другое имя (например, bind).

Добавьте следующие опции в named.conf:

options {
...
dnssec-enable yes;
dnssec-validation auto;
managed-keys-directory "/etc/namedb/dynamic/";
...
};

В моем случае владелец файла и директории указан неправильно. Выполните следующую команду, чтобы исправить это:

sudo chown -R root:bind /var/cache/bind
sudo chown -R root:bind /var/cache/bind/managed-keys.bind
sudo chown -R root:bind /var/cache/bind/managed-keys.bind.jnl

Для получения дополнительной информации нажмите здесь.

Теперь вы можете перезапустить named.service без возникновения ошибок:

sudo systemctl restart named.service

и проверьте статус журналов:

sudo systemctl status named.service

.

Ответ или решение

Проблема, с которой вы столкнулись в работе с системой DNS на сервере, связана с ошибками синхронизации ключей и разрешениями на файловую систему, что препятствует нормальной работе службы Bind9. Для детального анализа и решения этой проблемы стоит обратить внимание на несколько важных аспектов, включая права доступа к файлам, настройки безопасности, такие как SELinux, и конфигурацию самого сервиса Bind9.

Теория

Bind9 (Berkeley Internet Name Domain) — это одно из наиболее распространенных программных обеспечений для настройки DNS-серверов. Оно необходимо для трансляции доменных имен в IP-адреса и наоборот. При этом Bind9 управляет зонами, которые содержат данные о DNS-записях. Ошибки, возникающие в работе Bind9, обычно связаны с конфигурацией или правами на доступ к файлам, используемым для хранения зоны или ключей.

Файл managed-keys.bind.jnl служит для управления ключами DNSSEC, что обеспечивает безопасность системы DNS через электронную верификацию ответов. Если служба не имеет прав на запись в рабочий каталог или не может создать этот файл, возникают ошибки, которые мы видим в ваших логах.

Пример

В вашем случае основными ошибками являются:

  1. Отказ в доступе при создании файлов журнала (например, managed-keys.bind.jnl).
  2. Неожиданная ошибка при синхронизации управляемых ключей.

Ошибка отказа в доступе указывает на проблемы с разрешениями на уровне файловой системы. Это происходит, если служба, под которой работает Bind9, не имеет соответствующих привилегий для записи в указанные директории.

Часто такие проблемы возникают из-за непродуманных конфигураций SELinux или недостаточных прав пользователя, под которым выполнен процесс Bind9. Кроме того, если Bind9 настроен для работы в chroot jail (ограниченной среде), это может осложнять доступ к файлам.

Применение

  1. Проверка Метаданных Файлов:

    • Для начала, проверьте существование и расположение файла managed-keys-zone с помощью команды:
      find / -name "managed-keys-zone"
    • Затем убедитесь, что владельцы и группы файлов правильно настроены:
      ls -lh <путь_к_файлу>

      Убедитесь, что права доступа позволяют пользователю, под которым запускается Bind9, читать и записывать в эти файлы.

  2. Коррекция Прав Владения и Доступа:

    • Убедитесь, что файловый каталог Bind9, например, /var/cache/bind, имеет соответствующие права:
      sudo chown -R root:bind /var/cache/bind
      sudo chown -R bind:bind /var/cache/bind/managed-keys.bind.jnl
    • Эти команды устанавливают пользователя bind и группу bind в качестве владельцев файлов, что позволяет Bind9 записывать в них без ошибок.
  3. Настройки SELinux:

    • Если SELinux включен, временно переключите его в режим permissive:
      sudo setenforce 0
    • Это позволит определить, не является ли SELinux препятствием для записи файлов. Если проблема решена при отключении, следует настроить SELinux соответствующим образом, чтобы он не мешал работе Bind9.
  4. Изменение Конфигурации Bind9:

    • В файле named.conf добавьте или измените параметры, чтобы гарантировать, что ключи управления обрабатываются правильно:
      options {
      ...
      dnssec-enable yes;
      dnssec-validation auto;
      managed-keys-directory "/etc/namedb/dynamic/";
      ...
      };
  5. Перезапуск Сервиса и Просмотр Логов:

    • После изменений, перезапустите службу Bind9 и проверьте статус:
      sudo systemctl restart named.service
      sudo systemctl status named.service
    • Таким образом, вы сможете убедиться, что ошибки исчезли и сервис работает корректно.

Вышеизложенные шаги помогут вам разобраться с основными проблемами и настроить Bind9 для стабильной работы. Помните, что конфигурация сети и DNS — это критически важные аспекты работы сервера, и их настройка требует тщательного внимания и понимания инфраструктуры.

Оцените материал
Добавить комментарий

Капча загружается...