November 27, 2024

Настройка DoH DNS от quad9 на MikroTik

Ввиду постоянно новых поползновений на и того уже давно не свободный интернет решено было зашифровать DNS запросы. Ну а второй причиной стало то, что по какой-то причине при отключении ранее настроенного DoH почему перестало загружаться приложение Youtube на телевизоре хотя трафик Youtube идет через VPN и на ПК в той же сети работает.

Покумекав с товарищем пришли к мнению что возможно блокируется протокол QUICK, а приложение скорее всего использует именно его.

Почему выбор пал на quad9, а не на популярные Google(8.8.8.8), Yandex(77.88.8.8) или небезызвестный Сloudflare (1.1.1.1) всё до банального просто да всех остальных задержка >130+ms, в то время как до quad9 у меня всего 80ms, а следовательно странички будут давать более быстрый отклик.

К сожалению нормальной инструкции не нашёл по настройке DoH от quad9 по этому пришлось всё пробивать лбом самому (в основном проблемы были с поиском корневого сертификата).

1) Заходи в панель управления MikroTik

2) Открываем IP -> DNS

3) Добавляем DNS серверы quad9

9.9.9.9
149.112.112.112

4) Прописываем адрес DoH

https://dns.quad9.net/dns-query

5) Галочку Verify DoH Certificate пока не ставим

Иначе пропадет интернет т.к. нет доверенного корневого сертификата, и соединения на разрешение DNS имен будут считаться недоверенными, о чем свидетельствуют следующие записи в Log

Теперь осталось самое сложное найти тот самый сертификат DoH и установить его на MikroTik

Я делал это так

1) Открываем страницу https://dns.quad9.net/dns-query и смотрим кто издатель сертификата

2) Идем на официальный сайт DigiCert https://www.digicert.com/kb/digicert-root-certificates.htm и ищем наш корневой сертификат DigiCert Global Root G3

3) Копируем ссылку на PEM сертификат https://cacerts.digicert.com/DigiCertGlobalRootG3.crt.pem и скачиваем через консоль сертификат на MikroTik следующей командой

/tool/fetch mode=https url="https://cacerts.digicert.com/DigiCertGlobalRootG3.crt.pem"

4) Импортируем сертификат в хранилище сертификатов следующей командой

/certificate/import file-name=DigiCertGlobalRootG3.crt.pem   

5) Теперь возвращаемся в раздел IP -> DNS и ставим галочку Verify DoH Certificate

На этом настройка закончена.

P.S. Так же хотелось бы добавить, что в итоге я перешел на использование CloudFlare т.к. Quad9 очень не стабильный и дает много ошибок, на работу это особо не влияет но задержки вырастают.

Для настройки CloudFlare все тоже самое только нужно импортировать ещё один сертификат и указать другой адрес сервера

/tool fetch url=https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem
/certificate import file-name=DigiCertGlobalRootG2.crt.pem passphrase=""
/ip dns set use-doh-server=https://1.1.1.1/dns-query verify-doh-cert=yes

Обратите внимание если указывать адрес DoH ввиде IP адреса типа 1.1.1.1 как выше, то адреса Servers можно вообще удалить т.к. они будут не нужны, но если указать адрес типа https://cloudflare-dns.com/dns-query то без Servers не обойтись т.к. необходимо как-то разрезолвить DNS имя сервера.

В случае проблем с сертификатом в логах Mikrotik будет ошибка

DoH server connection error: SSL: ssl: no trusted CA certificate found (6)