DNS over HTTPS (DoH) на MikroTik

Вкратце что такое DNS и для чего он нужен

Спешишь ? Тогда жми сюда чтобы сразу перейти к списку команд

Расшифровка абривиатуры DNS - это Domain Name System (система доменных имён), одним слловом сетевой протокол, который переводит "машинный" язык на "человеческий"

Все компьютеры, подключенные к интернету, включая смартфоны, находят друг друга и обмениваются информацией с помощью цифр. Эти цифры называются IP-адресами. Чтобы открыть веб-сайт в браузере, не требуется запоминать длинные наборы цифр. Достаточно ввести доменное имя, например google.com, и браузер откроет нужную страницу.
 
Протокол DNS в интернете очень похожа на телефонную книгу, которая устанавливает привязку имен абонентов к их телефонным номерам. Серверы DNS преобразуют запросы по именам в IP-адреса, обеспечивая соединение конечного пользователя с определенным сервером при вводе доменного имени в веб-браузер пользователя.Такие запросы называются DNS-запросами.
Подробнее что это за "чудо" протокол можно прочесть в wiki.

Как известно, протокол DNS не шифрует запросы  и данные передаются в открытом виде. DNS-трафик уязвим перед злоумышленниками, т.к. появляется возможность перехватить по незащищенному каналу связи персональные данныес помощью атаки типа «Атака посредника»
(Man in the middle (MITM) подробнее тут .Еще один неприятный момент, когда интернет-провайдеры могут осуществлять наблюдение за трафиком и собирать данные о том, какие сайты посещает его абонент.

Чтобы такгог не происходило для безопасности DNS-трафика были реализованы специальные протоколы DNS over TLS (DNS поверх TLS, DoT, RFC7858) и DNS over HTTPS (DNS поверх HTTPS, DoH, RFC8484). Их основная задача - зашифровать DNS-трафик для предотвращения перехвата и обеспечения дополнительной конфиденциальности и безопасности.Дело в том что станндартный порт DNS службы это 53/UDP, при использовании DNS over HTTPS все запросы пойдут на стандартный порт 443/HTTPS, который поддерживает шифрование
В Mikrotik поддерживается один из этих протоколов, только DNS over HTTPS начиная с версии 6.47 и выше И так , ближе к телу к делу )

Проверка настройки выдачи DNS на роутере,
отключаем авто назначение от провайдера

При подключении к интернет-провайдеру который выдает IP по протоколу DHCP( dhcp client) или PPPoE (PPPoE Client) клиентом, “по умолчанию” настройки DNS назначаются автоматически. Для правильной работы DoH эту опцию необходимо отключить

Если подключение к провайдеру по DHCP :

1) Заходим IP —> DHCP Client
2) Двойной клил ЛКМ ( левая кнопка мыши ) по записи, открывается окно с настройками
3) Смотрим стоит ли галочка на Use Peer DNS если стоит - убираем, для назначения DNS вручную

DNS over HTTPS (DoH) на MikroTik

Если подключение к провайдеру по PPPoE :

1) Заходим PPP —> Interface —> Dial Out
2) Двойной клил ЛКМ ( левая кнопка мыши ) по записи, открывается окно с настройками
3) Смотрим стоит ли галочка на Use Peer DNS если стоит - убираем, для назначения DNS вручную

DNS over HTTPS (DoH) на MikroTik

Загрузка, импорт корневых сертификатов. Выбор публичного сервера.

Для того чтобы проверять подлинность DNS запросов, необходимо установить сертификат корневого центра сертификации, так как сверять сертификат RouterOS не с чем и некому доверять потому что в RouterOS нет корневых сертификатов центров сертификации ( CA )

Получить сертификаты CA можно на curl.se, Google Trust Services, GlobalSign© или DigiCert тут :
• curl.se
• globalsign.com
• digicert.com
• Google Trust Services

Что касаемо серверов DoH какие сервера есть? Какие использовать ? Ниже приведу список крупных публичных провайдеров, и их URL-адреса DoH серверов

  1. https://1.1.1.1/dns-query
  2. https://1.0.0.1/dns-query

https://dns.google/dns-query

https://doh.opendns.com/dns-query
* https://doh.familyshield.opendns.com/dns-query

https://dns.adguard.com/dns-query
* https://dns-family.adguard.com/dns-query

* Работа в режиме «Семейный»

Список других публичных серверов DoH
• GitHub

Я буду настраивать подключение к Google и серверам Cloudflare так как на мой взгляд они самые популярные

Настройка подключение к Google

Скачиваем CA сертификат для Google в Google Trust Services Repository или жмем скачать

DNS over HTTPS (DoH) на MikroTik
pic.1
DNS over HTTPS (DoH) на MikroTik
pic.2


Импортируем в MikroTik :

DNS over HTTPS (DoH) на MikroTik

Из-за того, что Google делает редирект с 8.8.8.8 и 8.8.4.4 на dns.google (и сертификат выдан на имя, а не IP), то в DoH надо использовать имя, а не IP-адрес, поэтому создаем статические записи:

Так как сервера Google не воспринимают IP-адрес в запросе, нужно задать его соответствие к доменному имени вручную.

Так как сервера Google не воспринимают IP адрес в запросе, нужно задать его соответствие к доменному имени вручную, создаем статические записи :

Переходим IP —> DNS —> Static жмем

• Name: dns.google;
• Address: 8.8.8.8, 8.8.4.4;

DNS over HTTPS (DoH) на MikroTik

Далее IP —> DNS —> DNS Settings и настраиваем DoH
Use DoH Server ― https://dns.google/dns-query
Verify DoH Certificate ― ставим галочку

ВНИМАНИЕ !
MikroTik DNS-сервер не поддерживает больше одной записи DoH
DNS over HTTPS URL должна быть обязательно https

DNS over HTTPS (DoH) на MikroTik

На этом настройка через сервера Google завершена

Настройка подключение к Cloudflare

Настройка производится аналогичным образом, только нет заморочки с прописью статического днс

Скачиваем CA сертификат для Cloudflare на digicert.com или жмем скачать
Импортируем в MikroTik :

DNS over HTTPS (DoH) на MikroTik

Далее IP —> DNS —> DNS Settings и настраиваем DoH
Use DoH Server ― https://dns.google/dns-query
Verify DoH Certificate ― ставим галочку

На этом настройка через сервера Cloudflare завершена

Чтобы проверить правильно ли все настроено, работает ли шифрование можно перейти по ссылкам ниже :

1) Cloudflare

DNS over HTTPS (DoH) на MikroTik

2) 1.1.1.1

DNS over HTTPS (DoH) на MikroTik


Так же провести проверку можно с помощью самого MikroTik через утилиту Torch Tили в Firewall во вкладке Connections

Tools ―> Torch

DNS over HTTPS (DoH) на MikroTik

IP ―> Firewall ―> Connections

DNS over HTTPS (DoH) на MikroTik

Настройка DNS over HTTPS через командную строку

Отключение Use Peer DNS в DHCP Client

/ip dhcp-client set use-peer-dns=no  interface=ether1 numbers=ether1

*ether1 ― интерфейс подключения DHCP Client

Отключение Use Peer DNS на интерфейсе PPPoE Client

/interface pppoe-client set use-peer-dns=no numbers=ISP-PPPoE

*ISP-PPPoE ― название PPPoE соединения

Настройка Google

/tool fetch url=https://pki.goog/repo/certs/gsr2.pem
/certificate import file-name=cacert.pem passphrase=""
/ip dns static add address=8.8.8.8 name=dns.google
/ip dns static add address=8.8.4.4 name=dns.google
/ip dns set use-doh-server=https://dns.google/dns-query verify-doh-cert=yes
/ip dns set servers="" 

/tool fetch url=https://curl.haxx.se/ca/cacert.pem
/certificate import file-name=cacert.pem passphrase=""
/ip dns static add address=8.8.8.8 name=dns.google
/ip dns static add address=8.8.4.4 name=dns.google
/ip dns set use-doh-server=https://dns.google/dns-query verify-doh-cert=yes
/ip dns set servers=""

Настройка CloudFlare

/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 allow-remote-requests=yes
/ip dns set servers=""

/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 allow-remote-requests=yes
/ip dns set servers=""

Рейтинг
( Пока оценок нет )