- Вопрос или проблема
- Ответ или решение
- Возможные решения проблемы разрешения DuckDNS и других бесплатных субдоменов с использованием Unbound DNS Forwarder на pfSense
- 1. Понимание работы DNS в pfSense
- 2. Убедитесь в правильной конфигурации Unbound
- 3. Добавление настроек для локальной сети
- 4. Тестирование и диагностика
- 5. HTTPS и Let’s Encrypt
- 6. Очистка кеша DNS-клиента
- Заключение
Вопрос или проблема
Я пытаюсь использовать бесплатный сервис поддоменов, чтобы использовать SSL-сертификат lets encrypt на самохостимом экземпляре vaultwarden, который работает локально в контейнере docker на raspberry pi. Я попытался следовать этой инструкции, которая использует duckdns и Caddy для управления сертификатами, но у меня не получается это сделать. Я разместил этот вопрос на форумах vaultwarden. Однако, похоже, что проблема заключается либо в настройках DNS моего маршрутизатора pfsense, либо в самом duckdns.
Я настроил настройки DNS TLS маршрутизатора pfsense согласно следующей инструкции точно.
Я провел следующие тесты на обоих бесплатных провайдерах поддоменов duckdns и freedns.afraid.org. Оба имеют поддомен, настроенный для указания на локальный IP-адрес моего raspberry pi. (Тот, который я использую для SSH-доступа к raspberry pi в локальной сети). Так и сказано в инструкции vaultwarden, что vaultwarden должен быть доступен только в локальной сети.
Я использовал nslookup на ПК с Linux, который находится в той же локальной сети, что и мой raspberry pi. У него также задана в качестве шлюза по умолчанию и DNS частный IP-адрес моего маршрутизатора pfsense.
Обратите внимание, что я использовал заполнитель для поддомена, чтобы не раскрывать свои реальные поддомены, но поддомены действительно существуют, а вывод ниже является реальным для моих фактических поддоменов.
duckdns с настройками DNS по умолчанию pfsense (TLS quad 9)
nslookup placeholder.duckdns.org
;; Получен ответ SERVFAIL от 127.0.0.53
Сервер: 127.0.0.53
Адрес: 127.0.0.53#53
** сервер не может найти placeholder.duckdns.org: SERVFAIL
duckdns с явным указанием DNS (quad 9)
nslookup placeholder.duckdns.org 9.9.9.9
Сервер: 9.9.9.9
Адрес: 9.9.9.9#53
Неавторитетный ответ:
Имя: placeholder.duckdns.org
Адрес: <частный IP raspberry pi>
freedns.afraid.org с настройками DNS по умолчанию pfsense (TLS quad 9)
nslookup placeholder.crabdance.com
;; Получен ответ SERVFAIL от 127.0.0.53
Сервер: 127.0.0.53
Адрес: 127.0.0.53#53
** сервер не может найти placeholder.crabdance.com: SERVFAIL
freedns.afraid.org с явным указанием DNS (quad 9)
nslookup placeholder.crabdance.com 9.9.9.9
Сервер: 9.9.9.9
Адрес: 9.9.9.9#53
Неавторитетный ответ:
Имя: placeholder.crabdance.com
Адрес: <частный IP raspberry pi>
google.com с настройками DNS по умолчанию pfsense (TLS quad 9)
nslookup google.com
Сервер: 127.0.0.53
Адрес: 127.0.0.53#53
Неавторитетный ответ:
Имя: google.com
Адрес: 142.250.187.206
Имя: google.com
Адрес: 2a00:1450:4009:820::200e
Как видите, я могу разрешить google.com и все остальные установленные домены, используя настройки DNS pfsense, и пользовался интернетом нормально на протяжении нескольких месяцев. Однако это не так для duckdns и freedns.afraid.org. Я могу разрешить эти домены только если указываю quad 9 или другие DNS-провайдеры в команде nslookup.
Я не уверен, в чем проблема, либо что-то не так с моими настройками pfsense, либо проблема в двух бесплатных провайдерах поддоменов. Я также думаю, что эта проблема является причиной, по которой я не могу получить доступ к моему приватному локально хостингу экземпляру vaultwarden через мой домен duckdns с SSL.
Любая помощь была бы признательна.
Ответ или решение
Возможные решения проблемы разрешения DuckDNS и других бесплатных субдоменов с использованием Unbound DNS Forwarder на pfSense
Проблема, с которой вы сталкиваетесь, связана с тем, что ваш pfSense DNS Forwarder не может разрешать субдомены DuckDNS и Freedns.afraid.org, когда вы используете его настройки по умолчанию. Однако при явном указании DNS-серверов, таких как Quad9, вы получаете ожидаемые результаты. Давайте рассмотрим возможные причины проблемы и пути ее решения.
1. Понимание работы DNS в pfSense
pfSense использует DNS-ресолвер (например, Unbound) для обработки DNS-запросов. Когда вы используете /etc/resolv.conf
, например, с 127.0.0.53
, это значит, что ваш DNS-запрос обрабатывается локально на pfSense, что может ограничивать разрешение определенных доменов, актуальных для вашего префикса или внутренней сети.
2. Убедитесь в правильной конфигурации Unbound
Проверьте настройки Unbound в pfSense:
- Перейдите в меню Services > DNS Resolver.
- Убедитесь, что в настройках разрешателя активированы опции "Enable Forwarding Mode" и "Ignore Remote Resolver". Эти опции позволят вашему pfSense использовать указанные вами DNS-серверы (например, Quad9) при запросах к внешним ресурсам.
3. Добавление настроек для локальной сети
В вашем случае, поскольку вы работаете с локальным хостингом (например, Vaultwarden на Raspberry Pi), вы можете добавить явно запись DNS для вашего Raspberry Pi:
- Перейдите в Services > DNS Resolver, затем в секцию Host Overrides.
- Добавьте запись Host Override для вашего субдомена, указав, что он указывает на локальный IP адрес Raspberry Pi.
4. Тестирование и диагностика
Используйте nslookup
и dig
для проверки работы DNS. Например, выполните следующую команду:
nslookup placeholder.duckdns.org
Также вы можете проверить, как обрабатываются запросы по умолчанию и как это отображается через Unbound. Используйте команду:
dig +trace placeholder.duckdns.org
Это поможет выявить, на каком этапе происходит сбой.
5. HTTPS и Let’s Encrypt
При использовании Let’s Encrypt для получения SSL-сертификатов, убедитесь, что ваш Caddy или другой веб-сервер правильно настроен для обработки запросов на ваш DuckDNS субдомен. Caddy должен быть настроен правильно для обработки ACME-Challenges. Убедитесь, что Caddyfile
содержит правильную конфигурацию для вашего сервера.
6. Очистка кеша DNS-клиента
Не забудьте очистить кеш DNS на вашем локальном компьютере. В Linux это можно сделать с помощью команды:
sudo systemd-resolve --flush-caches
Заключение
Следуя этим шагам, вы сможете устранить проблемы с разрешением DuckDNS и Freedns.afraid.org на вашем pfSense. Основная идея заключается в том, чтобы гарантировать, что ваши локальные запросы обрабатываются должным образом, и что вы настроили свои сервисы для работы с ssl-сертификатами от Let’s Encrypt. Эти изменения позволят вам наладить доступ к вашему локальному Vaultwarden с использованием HTTPS.