Вопрос или проблема
Это вопрос-ответ на мой второй вопрос. Решение, предложенное @mpboden, было реализовано. Кроме того, я добавил auto-trust-anchor-file:
и включил remote-control:
, как это определено в примере Unbound для Настройки для остальной сети.
server:
directory: "/etc/unbound"
username: "unbound"
chroot: ""
verbosity: 1
logfile: "/etc/unbound/unbound.log"
pidfile: "/etc/unbound/unbound.pid"
# местоположение файла доверенного ключа, который позволяет DNSSEC
auto-trust-anchor-file: "/var/lib/unbound/root.key"
# отправлять минимальное количество информации на вышестоящие серверы для повышения конфиденциальности
qname-minimisation: yes
# номер порта, на который сервер отвечает на запросы.
port: 3000
# интерфейс, который используется для подключения к сети (это будет слушать все интерфейсы)
interface: 0.0.0.0
interface: ::0
# адреса из IP-диапазона, которым разрешено подключение к резолверу
access-control: 192.168.1.0/24 allow
access-control: 2001:DB8::/64 allow
remote-control:
# позволяет управлять unbound с помощью "unbound-control"
control-enable: yes
Тем не менее, я обнаружил 4 ошибки и 1 сообщение о сбое в режиме отладки. В ходе работы по устранению неполадок я выяснил, что эти сообщения об ошибках и сбоях возникали всякий раз, когда control-enable: yes
было разрешено.
root@DNS:/etc/unbound# unbound -d -vv -c unbound.conf
[1730259092] unbound[6165:0] notice: Start of unbound 1.19.2.
[1730259092] unbound[6165:0] error: Error for server-cert-file: /etc/unbound/unbound_server.pem
[1730259092] unbound[6165:0] error: Error in SSL_CTX use_certificate_chain_file crypto error:80000002:system library::No such file or directory
[1730259092] unbound[6165:0] error: and additionally crypto error:10080002:BIO routines::system lib
[1730259092] unbound[6165:0] error: and additionally crypto error:0A080002:SSL routines::system lib
[1730259092] unbound[6165:0] fatal error: could not set up remote-control
Я проверил, что /var/lib/unbound/root.key
существует. Unbound по-прежнему работает, но unbound-control
нельзя использовать. Unbound ищет /etc/unbound/unbound_server.pem
, но этого файла не существует. Как мне решить эту проблему с конфигурацией удаленного управления?
Обновление:
С помощью @mpboden ответа я обнаружил, что команда unbound-control-setup
предназначена для создания этих файлов в /etc/unbound: unbound_control.pem
, unbound_server.pem
, unbound_control.key
, unbound_server.key
, чтобы разрешить удаленное управление.
root@DNS:/etc/unbound# unbound-control-setup -h
usage: /usr/sbin/unbound-control-setup OPTIONS
OPTIONS
-d <dir> используемый каталог для хранения ключей и сертификатов (по умолчанию: /etc/unbound)
-h показать справочное сообщение
-r воссоздать сертификаты
root@DNS:/etc/unbound# unbound-control-setup
настройка в каталоге /etc/unbound
Запрос сертификата самоподписи успешно
subject=CN = unbound-control
удаление артефактов
Установка успешна. Сертификаты созданы. Включите в файл unbound.conf для использования
root@DNS:/etc/unbound# ls
unbound.conf unbound.conf.d unbound.pid unbound_control.pem unbound_server.pem
unbound.log unbound_control.key unbound_server.key
Чтобы включить unbound-control
, вам нужно запустить команду unbound-control-setup
, которая создаёт необходимые файлы.
Цитируя официальную документацию о том, как настроить удаленное управление:
Чтобы использовать команду unbound-control, нам нужно вызвать команду
unbound-control-setup. Это создаёт ряд файлов в
каталоге установки по умолчанию. Каталог установки по умолчанию это
/ usr/local/etc/unbound/ на большинстве систем, но некоторые дистрибутивы могут
разместить его в /etc/unbound/ или /var/lib/unbound.
Поэтому выполните следующую команду:
sudo -u unbound unbound-control-setup
Если вы используете имя пользователя, например unbound, в конфигурации для запуска
демона (что является настройкой по умолчанию), вы можете использовать sudo, чтобы создать
файлы от имени этого пользователя, так что пользователь, запускающий Unbound, может
читать ключи. Это также решение, если каталог /usr/local/etc/unbound/ (или любой другой каталог по умолчанию) защищён от записи, что имеет место для некоторых дистрибутивов
Ответ или решение
Ошибка unbound[6165:0] fatal error: could not set up remote-control
в Unbound может возникнуть по нескольким причинам, связанным с настройками удалённого управления. Давайте разберемся с деталями и предоставим шаги для решения этой проблемы.
Причины ошибки
-
Отсутствие сертификата сервера: Основная причина, по которой возникает эта ошибка, заключается в том, что Unbound не может найти файл сертификата сервера по пути
/etc/unbound/unbound_server.pem
. Этот файл необходим для установления безопасного SSL-соединения при использовании функции удалённого управления. -
Неправильные настройки конфигурации: Если в файле конфигурации отсутствуют необходимые разделы, это может привести к возникновению ошибки.
Шаги для решения проблемы
-
Генерация сертификатов: Используйте команду
unbound-control-setup
, чтобы автоматически создать все необходимые файлы сертификатов и ключей:sudo unbound-control-setup
Эта команда должна создать файлы:
unbound_control.pem
unbound_server.pem
unbound_control.key
unbound_server.key
Убедитесь, что файлы созданы в директории
/etc/unbound/
, или укажите необходимую директорию с помощью опции-d
, если требуется другое местоположение. -
Проверка конфигурационного файла: Убедитесь, что в вашем конфигурационном файле Unbound (обычно это
/etc/unbound/unbound.conf
) присутствует секция для удалённого управления, которая выглядит следующим образом:remote-control: control-enable: yes server-cert-file: "/etc/unbound/unbound_server.pem" control-key-file: "/etc/unbound/unbound_control.key"
Убедитесь, что пути к файлам соответствуют созданным ранее сертификатам.
-
Проверка прав доступа: Убедитесь, что пользователь, от имени которого запускается Unbound (по умолчанию
unbound
), имеет доступ к директории и созданным файлам. Вы можете изменить права на файлы с помощью команды:sudo chown unbound:unbound /etc/unbound/unbound_*
-
Перезапуск Unbound: После внесения всех изменений обязательно перезапустите службу Unbound, чтобы новые настройки вступили в силу:
sudo systemctl restart unbound
-
Проверка состояния: Чтобы убедиться, что удалённое управление работает корректно, используйте команду:
unbound-control status
Вы должны увидеть статус, который показывает, что сервер работает корректно и доступен для управления.
Заключение
Ошибка could not set up remote-control
в Unbound часто связана с отсутствием необходимых сертификатов для удалённого управления. Следуя вышеуказанным шагам, вы сможете устранить эту проблему. Не забывайте также проверять логи Unbound на наличие дополнительных ошибок, которые могут помочь в диагностике других возможных проблем.