Защита от утечек DNS в Windows

Как параметр «Строгий маршрут» (Strict Route) предотвращает утечки DNS в режиме TUN в Windows и что делать, если его нельзя использовать.

В режиме TUN Windows всё равно может отправлять DNS-запросы через обычный сетевой адаптер, а не через туннель. Тогда ваш интернет-провайдер может видеть, адреса каких сайтов вы запрашиваете. Это и есть утечка DNS. На этой странице объясняется, как Throne её предотвращает, как проверить, что защита включена, и что делать, если её нельзя использовать.

Эта страница касается только режима TUN. В режиме Системный прокси (System Proxy) параметр Строгий маршрут (Strict Route) ни на что не влияет: в этом режиме приложения, которые игнорируют прокси, сами подключаются и сами разрешают имена.

Строгий маршрут (Strict Route)

Windows может одновременно отправлять один и тот же DNS-запрос DNS-серверам всех сетевых адаптеров. Даже если затем Windows использует ответ из туннеля, запрос уже ушёл через обычный адаптер, мимо туннеля.

Строгий маршрут это пресекает. Пока работает режим TUN, Throne добавляет фильтры брандмауэра Windows, которые:

  • блокируют DNS-запросы (порт 53) на всех сетевых адаптерах, кроме туннеля, поэтому Windows получает ответы от Throne;
  • блокируют IPv6-подключения других приложений, когда выключен Вкл. IPv6 в TUN (Tun Enable IPv6), чтобы ничего не утекало по IPv6.

Сам ThroneCore не блокируется. Фильтры исчезают, когда режим TUN останавливается или Throne завершает работу. Они также могут блокировать программы, которым нужно обращаться к DNS-серверу или использовать IPv6 вне туннеля.

Начиная с Throne 1.2.1, Строгий маршрут по умолчанию включён в Windows 10 и 11. Если он включён, запасной вариант с реестром, описанный ниже, не нужен.

Проверьте, что он включён

  1. Откройте Настройки (Settings) → Настройки режима TUN (Tun Settings).
  2. Убедитесь, что флажок Строгий маршрут отмечен.
  3. Нажмите OK.
  4. Если Режим TUN (Tun Mode) включён, выключите и снова включите его. Throne напомнит об этом сообщением «Перезапустите TUN, чтобы изменения вступили в силу» (Restart Tun to take effect).

Когда он выключен

Строгий маршрут может быть выключен в следующих случаях:

  • Windows 7, 8 или 8.1. Строгий маршрут не работает в версиях Windows до Windows 10, поэтому Throne оставляет его выключенным.
  • Вы выключили его после ошибки. Если Windows не может установить фильтры, профиль не запускается, и Throne показывает «Строгая маршрутизация недоступна» (Strict routing unavailable). Сообщение предлагает выключить Строгий маршрут, но это отключает и защиту. Если вы можете устранить причину, включите его снова.
  • Вы начинали с Throne 1.2.0. В этой версии Строгий маршрут по умолчанию был выключен, а обновления сохраняют ваши настройки. Отметьте его сейчас.

Если вы не можете использовать Строгий маршрут, воспользуйтесь запасным вариантом с реестром, описанным ниже.

Запасной вариант: реестр

Без параметра Строгий маршрут можно отключить функцию Windows, которая отправляет DNS-запросы на все адаптеры одновременно. В групповой политике она называется Turn off smart multi-homed name resolution (в русской Windows — «Отключить интеллектуальное многоадресное разрешение имён» или похожее название). Это слабее, чем Строгий маршрут: меняется то, как Windows выбирает DNS-серверы, но ничего не блокируется. Политика есть в Windows 8 и новее, поэтому в Windows 7 недоступна ни та, ни другая защита.

Через групповую политику (Pro, Enterprise, Education)

  1. В меню «Пуск» найдите Изменение групповой политики (Edit group policy) и откройте его.
  2. Перейдите в Конфигурация компьютера (Computer Configuration) → Административные шаблоны (Administrative Templates) → Сеть (Network) → DNS-клиент (DNS Client).
  3. Дважды щёлкните эту политику (Turn off smart multi-homed name resolution).
  4. Выберите Включено (Enabled) и нажмите OK.
  5. Перезагрузите Windows.

Через реестр (Windows Home)

В Windows Home нет редактора групповой политики. Эта команда задаёт ту же политику в реестре:

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" /v DisableSmartNameResolution /t REG_DWORD /d 1 /f
  1. Скопируйте команду выше.
  2. В меню «Пуск» найдите cmd.
  3. Щёлкните правой кнопкой мыши Командная строка (Command Prompt) и выберите Запуск от имени администратора (Run as administrator).
  4. Вставьте команду и нажмите Enter.
  5. Перезагрузите Windows.

Чтобы отменить изменение, выполните эту команду тем же способом, затем перезагрузите Windows:

reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" /v DisableSmartNameResolution /f

Если вы пользовались групповой политикой, вместо этого верните политике значение Не задано (Not Configured).

Браузеры

Зашифрованный DNS

Браузеры могут использовать собственный зашифрованный DNS (DNS over HTTPS), а Windows 11 может использовать его для сетевого адаптера. Такие запросы не используют порт 53, поэтому Строгий маршрут их не блокирует, и они не используют настройки DNS в Throne. Тогда тест на утечки показывает серверы этого DNS-провайдера.

Если вы хотите, чтобы все DNS-запросы шли через DNS Throne, отключите параметр безопасного DNS в настройках конфиденциальности или безопасности браузера. Также отключите DNS over HTTPS для сетевого адаптера в параметрах Windows.

QUIC

Отключение QUIC не устраняет утечки DNS. Оно помогает с другой проблемой. Многие сайты, например Google и YouTube, используют QUIC (HTTP/3 поверх UDP), а некоторые прокси-серверы передают UDP плохо или не передают совсем. Если такие сайты через туннель загружаются медленно или не открываются, а другие сайты работают, отключите QUIC в браузере, чтобы он использовал TCP.

В Chrome:

  1. Откройте chrome://flags/.
  2. Найдите QUIC.
  3. Установите для Experimental QUIC protocol значение Disabled.
  4. Нажмите Relaunch.

Утечка сохраняется?

  • Проверьте маршрутизацию. Некоторые результаты ожидаемы. Например, домены, которые ваши правила направляют напрямую, намеренно разрешаются через DNS для прямых запросов (Direct DNS), а это обычно DNS-сервер вашего интернет-провайдера. Ожидаемые результаты перечислены в разделе Тесты на утечку DNS.
  • Проверьте защитное ПО. Некоторые антивирусы и брандмауэры сами фильтруют или перенаправляют DNS. Проведите тест, приостановив их, или добавьте исключение для Throne.
  • Проверьте другие VPN-приложения. Отключайте другие VPN-клиенты, пока используете режим TUN. Они тоже могут менять настройки DNS и правила брандмауэра.