Приветствую, коллеги! Сегодня мы поговорим о том, как вытащить ваш MikroTik из каменного века обычного DNS и перейти на защищенный DNS-over-HTTPS (DoH). Зачем? Ну, представьте, что ваши DNS-запросы — это открытки. Любой почтальон (провайдер, сосед-хакер) может их прочитать. DoH — это как запечатанный конверт, да еще и с доставкой курьером по HTTPS. Будем шифровать.
Что такое DoH и почему ваш MikroTik уже давно его просит
DNS-over-HTTPS — это протокол, который упаковывает DNS-запросы в обычный HTTPS-трафик на 443-м порту. Для чего? Чтобы их нельзя было подслушать, подменить или заблокировать без глубокого анализа трафика. В RouterOS начиная со стабильной ветки 7.x эта функция наконец-то появилась в виде родного клиента dot (на самом деле это DoT, но мы к этому еще вернемся). Для DoH будем использовать небольшую магию.
Подготовка: Проверяем фундамент
Прежде чем строить замок из шифров, убедитесь, что ваш роутер готов к этому интеллектуальному прорыву.
1. Обновляем RouterOS до актуальной версии 7.x
Без седьмой версии — вы в прошлом. Проверяем:
/system package update check-for-updates
/system package update download
/system reboot
Важно: После ребута не забудьте снова зайти и установить обновление: /system package update install.
2. Выбираем поставщика DoH
Мои фавориты для экспериментов:
- Cloudflare:
https://cloudflare-dns.com/dns-query - Quad9 (security):
https://dns.quad9.net/dns-query - Google:
https://dns.google/dns-query(но мы же не любим больших братьев, верно?)
Основная настройка: Запускаем DoH-клиент (на самом деле DoT)
В RouterOS 7.x пока нет нативного клиента именно для DoH, но есть для DoT (DNS-over-TLS), который решает те же задачи безопасности, используя порт 853. Это отличная и стабильная альтернатива. Настроим его, а потом я покажу финт ушами с DoH.
Пример 1: Базовая настройка DoT с Cloudflare
/ip dns
set servers=1.1.1.1 use-doh-server=cloudflare-dns.com verify-doh-cert=yes
/ip cloud set ddns-enabled=no
Да, все так просто. Параметр use-doh-server активирует DoT для указанного сервера. Проверяем:
/ip dns print
Пример 2: Настройка DoT с Quad9 (с фильтрацией угроз)
/ip dns
set servers=9.9.9.9 use-doh-server=dns.quad9.net verify-doh-cert=yes
/tool fetch url="https://www.quad9.net/support"
Хакерский финт: Настоящий DoH через контейнеры (The Real Deal)
Если вам принципиально нужен именно DoH (HTTPS/443), а не DoT, и у вас есть мощный MikroTik (CHR или hEX S), можно использовать контейнеры. Ставим DNS Proxy в контейнере.
Пример 3: Установка и настройка DoH-прокси в Container
# Включаем контейнеры
/container config set registry-url=https://registry.mikrotik.com enable=yes
# Скачиваем образ cloudflare-go
/container add remote-image=mikrotik/cloudflare-go-doh:latest interface=doh1 root-dir=doh-cloudflare
# Запускаем
/container start [find where name~"cloudflare-go"]
Теперь ваш DoH-прокси слушает на адресе контейнера (например, 172.17.0.2). Настраиваем DNS роутера на него:
/ip dns set servers=172.17.0.2 allow-remote-requests=yes
Практические примеры «из жизни»
Теория — это скучно. Вот 5 ситуаций, где DoH/DoT реально спасает.
Пример 4: Обход «бесплатного» блокирования DNS провайдером
Ваш провайдер любит вставлять свои рекламные ответы на несуществующие адреса? С DoT/DoH он будет видеть лишь шифрованный шум.
# Проверяем, что трафик на 853 порт (DoT) разрешен
/ip firewall filter add chain=output dst-port=853 protocol=tcp action=accept comment="Allow DoT"
/tool dns query address=1.1.1.1 host=example.com use-dot=yes
Пример 5: Резервирование. Настроим два DoT-сервера
Надежность — наше все. Используем и Cloudflare, и Quad9.
/ip dns set servers=1.1.1.1,9.9.9.9 use-doh-server=cloudflare-dns.com,dns.quad9.net verify-doh-cert=yes
Пример 6: Фильтрация для детей + DoH = родительский контроль 2.0
Используем Quad9, который по умолчанию блокирует фишинговые и вредоносные домены, плюс наш собственный статичный список.
/ip dns static add name=bad-site.com address=127.0.0.1 comment="Заблокировано мудрым сисадмином"
/ip firewall nat add chain=dstnat dst-address-list=bad-sites action=redirect to-ports=80 comment="Redirect bad guys"
Пример 7: Логирование DNS-запросов для отладки
Иногда нужно понять, кто же пытается уйти в запрещенные края.
/tool sniffer quick protocol=udp port=53
/log info "DoH включен, снифинг чистого DNS более не работает. Ура!"
Пример 8: Интеграция с политикой маршрутизации
Направляем весь DNS-трафик (порт 853) через специальный VPN-туннель для максимальной конфиденциальности.
/ip firewall mangle add chain=output dst-port=853 protocol=tcp action=mark-routing new-routing-mark=secure-dns
Отладка и частые проблемы
Что-то не работает? Не паникуем. Действуем по шагам.
# 1. Проверяем базовое разрешение
/tool dns query host=google.com
# 2. Проверяем конкретный сервер с DoT
/tool dns query host=google.com server=1.1.1.1 use-dot=yes
# 3. Смотрим, есть ли связь с сервером на 853 порту
/tool netcat 1.1.1.1 853
# 4. Проверяем сертификат (должен вернуть его данные)
/tool fetch url="https://cloudflare-dns.com/" output=user
Совет от бывалого:
Не забудьте в фаерволе разрешить исходящие соединения на порт 853 (TCP) для DoT и на 443 (TCP) для DoH. Иначе ваш роутер будет молчать, как партизан на допросе.
/ip firewall filter add chain=output dst-port=853,443 protocol=tcp action=accept comment="Allow Encrypted DNS"
Итоги: Зачем все это?
Настройка DoH/DoT на MikroTik — это не просто дань моде. Это реальный шаг к повышению конфиденциальности и безопасности вашей сети. Ваши DNS-запросы перестают быть достоянием общественности. Роутер перестает тупить из-за подмененных ответов. А вы получаете моральное удовлетворение, зная, что ваш маршрутизатор общается с миром на защищенном языке.
Как говаривал мой наставник в 2003 году: «Хочешь сделать хорошо — включи шифрование». Теперь и на MikroTik это можно сделать без шаманских плясок. Удачи в настройках, и да пребудет с вами стабильный пинг!
С уважением, ваш седой в висках, но не в знаниях, системный администратор.



