DNS over HTTPS в Mikrotik
Дата обновления: 04.02.2022Теги: Безопасность Mikrotik
Для защиты трафика DNS от подмены (атака посредника) или от просмотра (например, на промежуточном сетевом оборудовании) можно отправлять запросы DNS в HTTPS (т.н. DNS over HTTPS, DoH). При этом исходящий трафик пойдет не на 53/udp, а на стандартный порт HTTPS: 443. В Mikrotik начиная с версии 6.47 DNS over HTTPS поддерживается.
/tool fetch url=https://curl.haxx.se/ca/cacert.pem
/certificate import file-name=cacert.pem passphrase=""
Я скачал файл с хешем SHA-1: 1057B838CF913C5E188E6EC6697B6F2B49637C29
У Mikrotik есть особенность - DNS-сервер не поддерживает больше одной записи DNS over HTTPS, а мне почему-то показалось, что использовать два IP (8.8.8.8 и 8.8.4.4) надежнее, чем, к примеру, один от Cloudflare (1.1.1.1) :) Из-за того, что Google делает редирект с 8.8.8.8 и 8.8.4.4 на dns.google (и сертификат выдан на имя, а не IP), то в DoH надо использовать имя, а не IP-адрес, поэтому создаем статические записи:
/ip dns static add address=8.8.8.8 name=dns.google
/ip dns static add address=8.8.4.4 name=dns.google
И в настройках DNS на микротик указываем доменное имя, а не IP-адрес:
/ip dns set use-doh-server=https://dns.google/dns-query verify-doh-cert=yes
Если в установленном сертификате не будет соответсвия с сертификатом https://dns.google, в логах будет предупреждение:
Убираем все остальные DNS-серверы:
/ip dns set servers=""
До:
После:
Вот и все.
Можно также завернуть или заблокировать весь остальной трафик DNS, который идет из локальной сети наружу "мимо микротика" (например, от неправильно настроенных клиентов локальной сети). Делайте осторожно, с холодной головой. Сначала лучше логируйте трафик, посмотрите, что и куда идет и только потом принимайте решение о блокировке.
ЗЫ: почти то же, но для CloudFlare (1.1.1.1):
/tool fetch url=https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
/certificate import file-name=DigiCertGlobalRootCA.crt.pem passphrase=""
/ip dns set use-doh-server=https://1.1.1.1/dns-query verify-doh-cert=yes
/ip dns set servers=""
и не нужны статические записи DNS для dns.google.
Авторизуйтесь для добавления комментариев!