Настройка DoH в Mikrotik
Второго дня в версии 6.47 ветки stable завезли поддержку DoH (DNS over HTTPS). До этого оно было только в ветке с beta и использовать ее не очень хотелось в виду отсутствия стабильности. Почему это так важно? Дело в том, что DNS без каких-либо дополнений дает возможность вышестоящему провайдеру смотреть и подменять dns-запросы. Не видно причин, зачем ему давать такое делать. А также есть некая простота в том, что теперь свои dns-запросы не нужно заворачивать в тот же VPN.
DNS поверх HTTPS (DoH) — протокол для выполнения разрешения DNS по протоколу HTTPS. Целью этого метода >является повышение конфиденциальности и безопасности пользователей путём предотвращения перехвата и >манипулирования данными DNS с помощью атак типа «Атака посредника».
Первым делом нужно обновиться до 6.47 в ветке stable (или воспользовать beta). В случае с long-term стоит либо потерпеть и подождать или переключиться на stable.
Далее идем в IP -> DNS. Сразу же стоит обратить внимание, что вы можете получать DNS динамически (вышестоящий провайдер или настройки APN) и надо бы убрать автоматику. Чаще всего выглядит это как-то так:
Теперь нужно провести небольшую артподготовку, а именно скачать и импортировать список корневых сертификатов. Делается это двумя командами:
/tool fetch url=https://erza.ru/cert/cacert.pem
/certificate import file-name=cacert.pem passphrase=""
Также список корневых сертификатов можно взять на сайте haxx.se или же с DigiCert
После чего удалим лишние dns-серверы и впишем свои. В итоге у нас все выглядит вот так:
Провести проверку можно с помощью torch или в connection tracker:
Список DoH серверов — смотреть тут, но самые популярные скорее всего будут Google ( https://8.8.8.8/dns-query ) и Cloudflare ( https://1.1.1.1/dns-query ).
Тестируем и проверяем на сайте Cloudflare
На всякий случай привожу листинг команд:
/tool fetch url=https://erza.ru/cert/cacert.pem
/certificate import file-name=cacert.pem passphrase=""
/ip dns set use-doh-server=https://1.1.1.1/dns-query
/ip dns set verify-doh-cert=yes
/ip dns set servers=""
UPDATE: Никита Тарикин набросал еще более интересную штуку со скриптом и поворотами — MikroTik DNS-over-HTTPS CloudFlare :)
Еще бы он не отваливался постоянно, было бы вообще прекрасно.
Слишком новое == не слишком стабильное. При большем отрезке времени становится понятнее :-(
еще момент: нужно не забыть выключить use-peer-dns во всех клиентах ovpn/pptp/etc (в моем случае zaborona) и в dhcp-client вашего wan. иначе их ответы будут оверрайдить указанный DoH сервер.
```
/interface ovpn-client set zaborona use-peer-dns=no
/ip dhcp-client set 0 use-peer-dns=no
```
Согласен, полезное замечание.
Спасибо!
Хотя, вы это вскользь упомянули:
Дмитрий, вполне очевидно, ваш комментарий более точен и заставляет обратить внимание :)