
У меня есть DNS-сервер, работающий внутри нашей частной сети на IP 10.10.0.10. DNS-серверы разрешают URL-адреса в частные IP-адреса также внутри нашей сети. SSL для всех URL-адресов обрабатывается wildcard-сертификатом для домена .BIZ. Но недавно Chrome и Firefox начали включать DNS-over-HTTPS во время последних обновлений. Поскольку наш DNS-сервер не совместим с DOH, пользователи не могут переходить по нашим URL-адресам, пока не отключат функцию DOH в своем браузере.
В идеале я хотел бы, чтобы наши пользователи поддерживали DOH в своих браузерах и по-прежнему полагались на локальный DNS-сервер для разрешения URL-адресов в наши частные IP-адреса. В попытке добиться этого я посмотрел наdoh-прокси. Я развернул виртуальную машину Centos-7 на IP 10.10.0.20, установил doh-proxy и открыл порт 443. Затем я выполнил:
/usr/local/bin/doh-proxy --upstream-resolver=10.10.0.10 --certfile=/etc/pki/public/mycompany.bundle.biz.crt --keyfile=/etc/pki/private/mycompany.biz.pem
Используя netstat, я проверил, что порт 443 прослушивается. Затем я изменил конфигурацию VPN, изменив настройки DNS с 10.10.0.10 на 10.10.0.20 (новый сервер doh-proxy). Однако я все еще не мог перейти по нашим URL-адресам с включенным DOH в браузере.
Я неправильно понимаю цель doh-proxy?
решение1
Я не думаю, что вы неправильно поняли намерение doh-proxy
, это, похоже, DoH-фронтенд для обычного сервера DNS-резолвера, создающий способ для DoH-клиентов запрашивать указанный сервер-резолвер.
Есть несколько других подобных решений прокси, если эта конкретная реализация окажется неподходящей по какой-либо причине.
Однако я полагаю, что вы могли неправильно понять/упустить из виду то, что для настройки DoH клиенту необходимо знать URL-адрес сервера DoH (например https://dns.quad9.net/dns-query
, https://dns.google/dns-query
, и т. д.), наличие только IP-адреса ничего не дает для настройки DoH.
И, что еще больше усложняет ситуацию, в настоящее время DoH не имеет надлежащего механизма обнаружения. (Что является основной причиной многих споров вокруг DoH, особенно в отношении подхода Mozilla.)
Примеры того, как «DoH включен по умолчанию» работает на данном этапе:
- Firefox настроен на распознавание используемого DoH-сервера (Mozilla выбирает DoH-сервис от имени своих пользователей, независимо от конфигурации ОС).
- Chrome выборочно обновляется с простого DNS до DoH на основе таблицы сопоставления с известными IP-адресами служб DNS в качестве ключа, например
8.8.8.8 -> https://dns.google/dns-query
(Google ведет таблицу сопоставления для известных служб DNS, и обновление DoH происходит только тогда, когда таблица сопоставления упрощает запрос той же службы DNS, которая указана в конфигурации ОС для простого DNS).
В целом, запустить собственную службу DoH достаточно просто, но заставить клиентов ею пользоваться не так-то просто.
Что вам нужно сделать, так это как-то сказать клиентам использовать https://dns.example.com/dns-query
(если мы предположим, что это правильный URL для вашего прокси) в качестве их конечной точки DoH, что в своей простейшей форме, вероятно, означает ручную настройку на клиентах (для каждого приложения, не меньше).
Вы, конечно, можете найти способы автоматизации настройки набора известных приложений, но на данный момент не существует устоявшегося метода обнаружения, сопоставимого с тем, как, например, DHCP может доставлять адреса для простого DNS.