Шифрование DNS-запросов в Windows 11 с помощью DNS-over-HTTPS

DNS-over-HTTPS doh

По умолчанию весь DNS-трафик операционная система передаёт серверу через сеть в открытом виде. То есть, фактически любой,  у кого есть возможность как-то Ваш трафик перехватить, сможет увидеть какие сайты вы посещаете. Чтобы решить эту проблему в ОС Windows, компания Microsoft внедрила поддержку протокола DNS over HTTPS (сокращённо DoH) в Windows 11 и Windows Server 2022. И сейчас я хочу показать как этим пользоваться.

Поддержка DNS over HTTPS  доступна только для Windows 11 и Windows Server 2022.

В этой инструкции я покажу как настроить DNS-over-HTTPS через интерфейс операционной системы и с помощью командной оболочки PowerShell. Использовать мы будем сервер Яндекс.DNS 77.88.8.8.

Настройка DNS over HTTPS в Windows 11

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

Вам надо открыть параметры системы и открыть настройки сетевого интерфейса.
Ethernet-подключение:

Параметры => Сеть и Интернет => Ethernet => Назначение DNS-сервера => Изменить => Вручную

Беспроводная сеть Wi-Fi:

Параметры => Сеть и Интернет => Wi-Fi => Свойства => Назначение DNS-сервера => Изменить => Вручную

В моём примере я буду включать DoH на Wi-Fi подключении.

windows 11 настройка dns

После нажатия на кнопку «Изменить» появится окно «Изменение параметров DNS для сети». Здесь обычно стоит значение «Автоматически (DHCP)», а мы меняем его на «Вручную» и включаем протокол IPv4. Если Вы активно используете уже IPv6, то включайте и настаивайте его.

windows 11 doh настройка

Далее находим параметр «DNS по протоколу HTTPS», и включаем его. Тут есть два варианта. Первый — «Включено (автоматический шаблон)». Он используется для официально поддерживаемых DNS-серверов: Google, Cloudflare и Quad9. Как посмотреть весь этот список я покажу ниже. Мы же с Вами будем использовать второй вариант — «Включено (ручной шаблон)» и пропишем DNS-сервер от Яндекса: 77.88.8.8. Его шаблон протоколу HTTPS такой: https://common.dot.dns.yandex.net/dns-query. Нажимаем кнопку «Сохранить» для применения настроек.

Как включить шифрование DNS запросов через PowelShell

Шаг 1. Выбор DNS-сервера

В Windows уже есть встроенный список публичных DNS-серверов с поддержкой DoH, например:

Quad9 - 9.9.9.9
Google — 8.8.8.8
Cloudflare — 1.1.1.1
и т.д.

Вывести этот список в командной оболочке PowerShell Вам поможет команда Get-DNSClientDohServerAddress.

powershell dns over https


Вы можете использовать любой DNS из предложенного системой списка или добавить в него DNS-сервер от Яндекса — 77.88.8.8. Кроме его IP адреса, нам нужно указать и его URL-адрес — «https://common.dot.dns.yandex.net/dns-query«. Добавляем сервер в список

$DNSServer="77.88.8.8"
Add-DnsClientDohServerAddress -ServerAddress $DNSServer -DohTemplate "https://dns.yandex.ru/dns-query" -AllowFallbackToUdp $False -AutoUpgrade $True

настройка doh windows

Шаг 2. Включение DNS over HTTPS на сетевом интерфейсе

Задаём IP Яндекс.DNS как предпочтительный для адаптера Ethernet0:

Set-DnsClientServerAddress Ethernet0 -ServerAddresses ($DNSServer)

Если у Вас имя адаптера отличается от указанного в примере, то в командах надо будет внести соответствующие исправления.

Включаем  DoH для интерфейса Ethernet0:

$i = Get-NetAdapter -Physical -Name Ethernet0
$s1 = "HKLM:System\CurrentControlSet\Services\Dnscache\InterfaceSpecificParameters\" + $i.InterfaceGuid + "\DohInterfaceSettings\Doh\$DNSServer"
New-Item -Path $s1 -Force | New-ItemProperty -Name "DohFlags" -Value 1 -PropertyType QWORD
Clear-DnsClientCache

Теперь можно проверять шифруются ли наши DNS-запросы или нет.

Как проверить работает DNS-over-HTTPS или нет

Проверить работу DNS-over-HTTPS можно несколькими способами. Первый — это разнообразные сервисы в Интернете. Например, DNS leak best. Заходим на сайт, нажимаем кнопку «Extended test» и ждём пока пройдёт тестирование.

как проверить dns over https

В результатах Вы должны будете увидеть указанные DNS в столбце ISP. В моём примере всё верно. Если бы DoH не работала, то вместо Яндекса там «светились» бы серверы провайдера.

Второй способ проверить работу DoH — это использование встроенного в Windows анализатора сетевого трафика Packetmon. Нам нужны всего три команды:

1. Сброс всех фильтров пакетов сетевого трафика:

pktmon filter remove

2. Добавление своего фильтра:

pktmon filter add -p 53

Packetmon будет ловить все пакеты на 53-ем TCP порту

3. Запуск анализа трафика:

pktmon start --etw -m real-time

Теперь надо в браузере открыть несколько разных сайтов, а потом посмотреть в вывод Packetmon’а:

Packetmon windows 11

А здесь, как мы видим, ничего нет. Запросы через обычный DNS не бегают.  Чего мы и добивались! Теперь все DNS-запросы ходят только через зашифрованное HTTPS-соединение и отследить их практически невозможно!

Оставьте комментарий