Сегодня рассмотрим интересное решение — это настройку DoH на роутере Mikrotik (другими словами DNS over HTTPS). В одной из предыдущих статей, мы вам рассказывали, как настроить DNS сервер возьмём ее за основу и немного докрутим.
DoH – это технология которая позволяет шифровать ваши запросы с помощью TLS. Был придуман для защиты запросов от анализа или вскрытия, а также подмены результатов запроса. Обычный DNS ничем не защищён и передаёт данные в открытом виде. Запросы отправляются по UDP на 53 порт. В DoH немного по-другому, т.к. тут есть TLS и HTTP, то по сути своей это TCP на 443 порт, т.к. тут есть TCP, то работы данного протокола, в разы медленно чем у прародителя. Конечно, его тоже можно вскрыть при желании, но для этого нужна прокся со вскрытием TLS, что накладывает определённые технические нюансы и ресурсы.
В использовании данной технологии есть клиент и сервер. Так вот, клиентская часть реализована в RouterOS с версии 6.47. Mikrotik не может быть DoH сервером.
Настройка DoH
Перед включением необходимо определиться, какой сервис вы будите использовать. На сегодняшний день их достаточно и выбрать есть из чего, так же вы может быть захотите свой сервер поднять. Из общедоступных есть следующие:
- OpenDNS — https://doh.opendns.com/dns-query
- Quad9 — https://dns.quad9.net/dns-query
- Cloudflare — https://cloudflare-dns.com/dns-query
- Google Public — https://dns.google/dns-query
В примере я буду использовать проверенный временем Cloudflare. Они обещают не передавать аналитику третьим лица.
Открываем IP – DNS и вставляем строку резолвера в Use DoH Server
Обязательно ставим галочку Verify DoH Certificate.
Обратите внимание на адреса в Servers. Это классические вышестоящие резолверы имен. Их убирать не нужно. Потому что Mikrotik не будет знать, какой IP соответствует cloudflare-dns.com. Да, это нюанс, про который нельзя забывать.
Попробуем проверить работу по новой технологии через nslookup.
В примере выше, я попытался разрешить имя google.com через Mikrotik. Как мы видим, ничего не вышло и в логах ошибка: DoH server connection error: SSL : handshake failed….
Так же видно, что в кэше тоже ничего нет. В чем может быть причина? Правильно в сертификате!
Импорт сертификатов
RouterOS ничего не знает о сертификате Cloudflare и о других, т.к. в него не импортированы корневые публичные ключи глобальных CA и по этому он не может выстроить доверие. Допустим в ОС Windows они уже идут в составе и добавляются / удаляются с обновлениями.
Прежде чем импортировать корневой CA вам нужно понять, кем был выпущен сертификат для одного из сервис-провайдеров. Допустим, для моего примера выпустил DigiCert.
Качаем его публичную часть по этой ссылке. Делаем его Upload на девайс, после в System – Certificates импортируем.
Проверим снова разрешение имён
Теперь все отлично. Как вы видите, ничего сложного нет, выбираем сервис, который вам больше нравится, прописываем его в настройках и импортируем CA того, кто выпустил вашему сервису сертификат, и все на этом настройка DoH на MikroTik завершена.
89 вопросов по настройке MikroTik
Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.