Как известно, протокол DNS (Domain Name System, система доменных имён) не шифрует запросы и данные передаются в открытом виде. DNS-трафик уязвим перед злоумышленниками, т.к. появляется возможность "подслушать" канал связи и перехватить незащищенные персональные данные. Интернет-провайдеры могут осуществлять наблюдение за трафиком и собирать данные о том, какие сайты вы посещаете.
Для безопасности DNS-трафика были реализованы специальные протоколы DNS over TLS (DNS поверх TLS, DoT, RFC7858) и DNS over HTTPS (DNS поверх HTTPS, DoH, RFC8484). Их основная задача - зашифровать DNS-трафик для предотвращения перехвата и обеспечения дополнительной конфиденциальности и безопасности. В данной статье мы не будем подробно останавливаться на теории. Информацию о том как работают DoT и DoH вы найдете на следующих страницах:
- https://adguard.com/ru/blog/adguard-dns-announcement.html
- https://ru.wikipedia.org/wiki/DNS поверх TLS
- https://ru.wikipedia.org/wiki/DNS поверх HTTPS
Список публичных DNS-сервисов с поддержкой DoT/DoH:
- https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Public+Resolvers
- https://github.com/curl/curl/wiki/DNS-over-HTTPS
- https://kb.adguard.com/ru/general/dns-providers
Начиная с версии KeeneticOS 3.00 была добавлена поддержка протоколов DNS over TLS и DNS over HTTPS. Включив один из них, DNS-трафик от роутера будет передаваться в зашифрованном виде через Интернет.
NOTE: Важно! При включении протокола DoT/DoH все DNS-запросы будут направляться на указанный при настройке адрес сервера. Полученные ранее DNS-серверы от вашего интернет-провайдера и прописанные вручную DNS-серверы использоваться не будут.
Если включен один из интернет-фильтров AdGuard DNS, Яндекс.DNS или SkyDNS, то все DNS-запросы будут направляться на указанный адрес сервиса с назначенным профилем зарегистрированному устройству в домашней сети. При назначении профиля "Без фильтрации" все запросы будут направляться через включенные протоколы DoT/DoH.
Если вы хотите пользоваться только DNS over TLS, то достаточно будет удалить компонент "DNS-over-HTTPS proxy". Аналогично и с DNS over HTTPS, нужно удалить компонент "DNS-over-TLS".
Покажем пример настройки через веб-конфигуратор. Будем использовать бесплатный DNS-сервис компании Cloudflare, поддерживающий работу по протоколам DoT/DoH.
Для работы протокола DoT/DoH нужно в интернет-центре предварительно установить соответствующий компонент системы "Прокси-сервер DNS-over-TLS" или "Прокси-сервер DNS-over-HTTPS". Сделать это можно на странице "Общие настройки" в разделе "Обновления и компоненты", нажав на "Изменить набор компонентов".
Для дальнейшей настройки перейдите на страницу веб-конфигуратора "Интернет-фильтр".
DNS-over-TLS
Нажмите кнопку "Добавить сервер DNS-over-TLS". Появятся поля для заполнения определенных параметров. Укажите Адрес сервера DNS (в нашем примере это 1.1.1.1 и 1.0.0.1), Доменное имя TLS (в нашем примере это cloudflare-dns.com) и при необходимости интерфейс подключения (по умолчанию установлено значение "Любое").
Например:
В поле "Адрес сервера DNS" разрешается указывать доменное имя FQDN, например:
NOTE: Важно! Для стабильной работы DNS-резолвинга необходимо указывать несколько DoT/DoH-серверов одновременно, и лучше от разных DNS-служб. Например:
DNS-over-HTTPS
Нажмите кнопку "Добавить сервер DNS-over-HTTPS". Появятся поля для заполнения определенных параметров. Укажите имя сервера DNS, формат, DNS message и при необходимости укажите интерфейс подключения (по умолчанию установлено значение "Любое"). В нашем примере добавлены серверы https://cloudflare-dns.com/dns-query и https://dns.comss.one/dns-query
Например:
TIP: Примечание: Если в настройках роутера одновременно указаны несколько серверов DNS over TLS и DNS over HTTPS, приоритет будет у тех серверов, кто быстрее отвечает на DNS-запросы.
В Keenetic можно использовать не более 8 серверов DoT/DoH.
Проверка
Приведем пример проверки использования шифрования DNS-запросов для службы Cloudflare. Перейдите на страницу https://www.cloudflare.com/ssl/encrypted-sni/
Нажмите "Check My Browser" для запуска проверки.
При корректной настройке DoT/DoH тест должен завершиться успешно для "Secure DNS", "DNSSEC" и "TLS 1.3". Корректный вывод проверки работы DoT/DoH и безопасности браузера зависит от доступности DoT/DoH серверов/адресов в сети провайдера/оператора.
NOTE: Важно! В статье показан пример проверки работы DoT/DoH сервиса Cloudflare. При использовании других DNS-сервисов, проверка на сайте https://www.cloudflare.com/ssl/encrypted-sni/ может не проходить. Не пройдет он и в случае, если в настройках DHCP домашней сети Keenetic были указаны какие-либо адреса DNS. Ведь тогда подключенные к Keenetic устройства будут обращаться напрямую к этим DNS-серверам, а не к Keenetic с настроенными DoT/DoH.
Для запуска повторного тестирования нажмите "Run the test again".
Если тест нет прошел, возможно ранее были прописаны сторонние DNS-серверы в IP-настройках сетевого адаптера в операционной системе Windows, Linux, macOS. В этом случае все DNS-запросы будут обрабатываться через сторонние DNS и работать DoT/DoH не будет. Удалите ранее указанные адреса сторонних DNS и повторите тест.
Также имейте ввиду, если вы указали несколько DoT/DoH-адресов, от разных сервисов, результат проверки зависит от того, какой сервер в настоящий момент в приоритете. Например, если указан DoH-сервер https://dns.google/dns-query в формате DNS message, то проверку "Secure DNS" он не проходит.
TIP: Совет: Если вы не хотите вручную настраивать работу проколов DoT/DoH, просто включите интернет-фильтр AdGuard DNS или Cloudflare DNS. В этом случае вам не потребуется выполнять дополнительную настройку. При включении AdGuard DNS или Cloudflare DNS автоматически включится поддержка DoT/DoH, но только в том случае если в интернет-центре установлены компоненты системы для поддержки DoT/DoH, иначе интернет-фильтр не будет использовать указанные протоколы шифрования.
Проверить поддержку DoT/DoH можно через интерфейс командной строки (CLI) роутера, выполнив команду show adguard-dns availability или show cloudflare-dns availability
При включенном AdGuard DNS и Cloudflare DNS не проходит проверка состояния работы сервиса на страницах https://adguard.com/ru/test.html и https://1.1.1.1/help
Это связано с тем, что при включенных интернет-фильтрах по умолчанию включается блокировка транзитного DoT/DoH, чтобы избежать утечки DNS-запросов.
TIP: Примечание: Когда в Keenetic вручную указаны прокси-серверы DoT/DoH и включен один из интернет-фильтров Adguard DNS, Cloudflare DNS, SkyDNS или Яндекс.DNS, то резолвинг внутренних системных доменов и проверка Интернета проходит сначала через DNS-прокси, т.е. через DNS-адреса, которые указаны вручную.
Комментарии
А IPv6 адреса туда нельзя прописывать?
Нет. На данный момент такая возможность не реализована.
А надо ли в этом случае отключать «Игнорировать DNS» в Проводных подключениях?
Включать опцию "Игнорировать DNS" на подключении к провайдеру не нужно. При включении протокола DoT/DoH все DNS-запросы будут направляться на указанный при настройке адрес сервера. Полученные ранее DNS-сервера от вашего интернет-провайдера и прописанные вручную DNS-сервера использоваться не будут. DNS-адреса сервиса DoT/DoH будут приоритетные.
Если у меня настроено часть доменов, "внутрикорпоративных", резолвить через отдельный "обычный" DNS сервер при активации VPN подключения, то эти настройки тоже перестанут работать при включении DoH/DoT?
Олег, для внутрикорпоративных сделано исключение.
В статье написано что если включены AdGuard DNS и Cloudflare DNS и установлены модули DOT\DOH то автоматом используется шифрование DNS.
Вопрос как проверить, что это работает - на примере Adguard?
Описан способо через CLI show adguard-dns availability - но что такое "Доступность" пояснения не дается. Иными словами если я вижу что DNS Adguard доступен это не значит что через него запросы идут
Дмитрий, вот пример когда в настройках роутера включен только интернет-фильтр AdGuard DNS, а компоненты для DoT/DoH отсутствуют:
(config)> show adguard-dns availability
available: yes
port: 53
doh-supported: no
doh-available: yes
dot-supported: no
dot-available: yes
А если установить компоненты DoT/DoH, то будут такие параметры:
(config)> show adguard-dns availability
available: yes
port: 53
doh-supported: yes
doh-available: yes
dot-supported: yes
dot-available: yes
То есть обращайте внимание на doh-supported и dot-supported, если используется поддержка этих протоколов (вы видите yes), значит запросы идут на DoT/DoH-сервера.
Добрый день. А возможно включить ESNI?
Алексей, в роутере Keenetic нет такой возможности. Encrypted SNI - это экспериментальная новая функция, надстройка браузера (для ESNI нет даже RFC-спецификации, данную технологию еще нельзя назвать стандартизированной). На данный момент она не поддерживается по умолчанию браузерами и только на начальном пути внедрения.
В DNS-over-TLS указывается только 1.1.1.1:853 и 1.0.0.1:853 или можно для защиты от вредоносных сайтов ввести 1.1.1.2:853 и 1.0.0.2:853 ?
Александр, в настоящий момент работают только серверы для стандартного DNS 1.1.1.1:853 и 1.0.0.1:853. Другие серверы 1.1.1.2 или 1.1.1.3 пока не используются для DoT.
На странице https://blog.cloudflare.com/introducing-1-1-1-1-for-families/ в комментариях представитель Cloudflare отвечал на такой вопрос и в планах у компании есть задача добавить другие серверы.
Если будут изменения, то вероятно на странице https://developers.cloudflare.com/1.1.1.1/dns-over-tls появится информация.
Добрый день! Простите, что мой вопрос, вероятно, не совсем по теме. На основании Вашего тут комментария выше я ввёл команду "show adguard-dns availability" и в ответе помимо уже указанных Вами ранее строчек есть также следующие:
ipv6-supported: no
ipv6-enabled: no
Подскажите, пожалуйста, что это за параметры и что нужно сделать, чтобы их значения стали yes?
Спасибо!
Пётр Игоревич, значения этих параметров указывают на отсутствие поддержки работы интернет-фильтра AdGuard DNS с протоколом IPv6. Если вы не используете протокол IPv6 для подключения к провайдеру, то не обращайте внимание на эти параметры.
Если в веб интерфейсе настроены DoT/DoH прокси, будут ли они так же игнорироваться после применения настройки "opkg dns-override"?
Anton, данная команда включает игнорирование TCP/UDP-53 порта для дефолтного предустановленного DNS-proxy роутера. На работу DoT/DoH не распространяется.
Не правильная ссылка в статье: DoH-сервер https://dns.google/dns-query
Правильнее, наверное, https://dns.google.com/dns-query
Нет, правильный адрес https://dns.google/dns-query
См. информацию здесь https://developers.google.com/speed/public-dns/docs/doh?hl=ru
Я правильно понимаю если прописан DNS-over-TLS. То всё будет работать только через него. Обычные DNS прописанные ручками и установленные компоненты DNS не работают? Нельзя сделать чтобы работали DNS-over-TLS и один обычный DNS прописанные ручками одновременно?
Да, все DNS-запросы будут перенаправлены на DoT-сервер.
В Keenetic можно использовать не более 8 серверов DoT/DoH. /конец цитаты/
А в дальнейшем предпологается увеличение максимального количества серверов в конфигурации (web / cli)?? Чтобы можно было больше прописать DNS!
@epmekk, а зачем это нужно, поясните, пожалуйста. Почему не хватает 8-ми записей? Они же не все одновременно используются. Мы рекомендуем указывать несколько DoT-серверов для дополнительного резерва, на случай если один сервер не отвечает, то роутер будет использовать другой (и 8-ми записей вполне достаточно). Если вы укажете только один сервер и предположим он не будет работать, то и dns-резолва не будет в этом случае.
Представляете, был такой (уникальный наверное) случай, когда все восемь серверов лежали! Уж не знаю, в тот день РКН включил свой Велiкий Российский Фаервол (в режиме тестинга) или пролетала комета. Вам видней (у меня включена на роутере отсылка каких-то там служебных сообщений...)! Только техплощадка Hetzner в тот день работала! Поэтому девятым и десятым я бы прописал какой-нибудь немецкий и швейцарский DoT DoH )))
Имеется в виду 8 записей для DoT и 8 для DoH или 8 всего?
Ограничение 8 записей для DoT и 8 записей для DoH. Само это ограничение было реализовано для того чтобы устройство продолжало функционировать корректно, т.к. каждое DoT/DoH-подключение потребляет значительно ресурсов роутера, а большое их количество может перегрузить память и процессор, что приведет к неработоспособности.
Войдите в службу, чтобы оставить комментарий.