MikroTik DoH, настройка DNS over HTTPS(cloudflare & google)

Mikrotik

скопировано отсюда

Cloudflare

Настройка MikorTik DoH

Краткое описание: инструкция по настройке защищённого DNS в MikroTik – DoH. Подключение Cloudflare DNS с импортом сертификатов SSL из терминала.

DNS over HTTPS (DoH) — протокол для выполнения разрешения DNS по протоколу HTTPS. Целью этого метода является повышение конфиденциальности и безопасности пользователей путём предотвращения перехвата и манипулирования данными DNS с помощью атак типа “Атака посредника”. По состоянию на март 2018 года Google и Mozilla Foundation тестируют версии DNS по протоколу HTTPS. Опубликован IETF в RFC 8484 в октябре 2018 года.

В дополнение к повышению безопасности ещё одна цель DNS over HTTPS — повысить производительность: тестирование DNS-ответчиков ISP показало, что во многих случаях они дают неожиданно медленный отклик, что может быть дополнительно умножено на необходимость получения адресов многих доменов, например, при загрузке веб-страницы.

Разница между обычным DNS и DoH

DNS — это “телефонная книга” Интернета; DNS-преобразователи переводят человекочитаемые доменные имена в машиночитаемые IP адреса. По умолчанию запросы и ответы DNS отправляются в виде открытого текста (через UDP), что означает, что они могут быть прочитаны сетями, интернет-провайдерами или кем-либо, кто может отслеживать передачи. Даже если веб-сайт использует HTTPS, отображается DNS-запрос, необходимый для перехода на этот веб-сайт.

Отсутствие конфиденциальности имеет огромное влияние на безопасность, а в некоторых случаях и на права человека; если DNS запросы не являются частными, то правительствам становится проще подвергать Интернет цензуре, а злоумышленникам — отслеживать поведение пользователей в сети.

Настройка MikorTik DoH, работа обычного DNS

Обычный незашифрованный DNS запрос можно сравнить с открыткой, отправленной по почте: любой, кто обрабатывает почту, может случайно увидеть текст, написанный на обратной стороне, поэтому неразумно отправлять почтовую открытку, которая содержит конфиденциальную или личную информацию.

DNS поверх TLS и DNS поверх HTTPS — это два стандарта, разработанные для шифрования трафика DNS с открытым текстом, чтобы злоумышленники, рекламораспространители, интернет-провайдеры и другие лица не могли интерпретировать данные. Продолжая аналогию, эти стандарты стремятся поместить все открытки, проходящие по почте, в конверт, чтобы каждый мог отправить открытку, не беспокоясь о том, что кто-то следит за его действиями.

Настройка MikorTik DoH, работа DNS over HTTPS

Настройка MikroTik DoH

Начиная со стабильной версии 6.47 MikroTik поддерживает DNS over HTTPS (DoH).

Импорт сертификат DigiCert Global Root CA в хранилище сертификатов роутера:

/tool fetch url=https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
/certificate import file-name=DigiCertGlobalRootCA.crt.pem passphrase=""

Указать использование DoH Server

Настройка находится IP→DNS

Настройка MikroTik DoH, ручная настройка
/ip dns set use-doh-server=https://1.1.1.1/dns-query verify-doh-cert=yes

Указать MikroTik в качестве DNS сервера

Настройка MikroTik DoH, использовать роутер как DNS сервер
/ip dhcp-server network
add address=192.168.7.0/24 dns-server=192.168.7.1 gateway=192.168.7.1 netmask=24

Отключение динамических DNS серверов в MikroTik

Подключение типа dhcp client, pppoe clientLTE имеют активный параметр Use Peer DNS. Таким образом запись, которая доступна при подключении такого соединения передаёт динамический DNS сервер в соответствующий раздел RouterOS роутера MikroTik. Чтобы этого избежать, нужно отключить соответствующие опции в параметрах подключений, к примеру:

Отключение динамического DNS для DHCP клиента

Отключение динамического DNS для DHCP клиента в MikroTik

Отключение динамического DNS для PPPOE соединения

Отключение динамического DNS для PPPOE соединения в MikroTik

Google

скопировано отсюда

Для защиты трафика 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, в логах будет предупреждение:

DoH server connection error: SSL: handshake failed: unable to get local issuer certificate (6)

Убираем все остальные DNS-серверы:

/ip dns set servers=""

До:

До включения DNS over HTTPS

После:

После включения DNS over HTTPS

Вот и все.