Современные версии Windows поддерживают протокол DNS over HTTPS (DoH), который позволяет выполнять разрешение имен (DNS запросы) через шифрованное HTTPS соединение. В этой статье мы рассмотрим, для чего нужен протокол DNS over HTTPS, как его включить и использовать в Windows.
Как включить DNS over HTTPS из графического интерфейса Windows?
Встроенная поддержка протокола DNS-over-HTTPS (DoH) в DNS клиенте доступна в Windows 11 и Windows Server 2022. Чтобы ваш клиент использовал DoH для шифрования DNS трафика, нужно в настройках сетевого подключения указать IP адрес сервера с поддержкой DoH.
Список IP адресов публичных DNS серверов с поддержкой DoH можно вывести PowerShell командой:
Get-DNSClientDohServerAddress
Провайдер | IPv4 адреса DNS серверов с поддержкой DNS over HTTPS |
Cloudflare | 1.1.1.1, 1.0.0.1 |
8.8.8.8, 8.8.4.4 | |
Quad9 | 9.9.9.9, 149.112.112.112 |
Нужно указать IPv4 и IPv6 адрес одного из этих DNS сервера (или адрес любого альтернативного DNS сервера с поддержкой DoH, предварительно добавив его, о чем ниже) в настройках сетевого интерфейса.
- Перейдите в Settings -> Network & Internet -> Ethernet (или Wi-Fi)
- В данном случае видно, что DNS трафик не зашифрован.
- Нажмите кнопку Edit
- Укажите IP адрес DNS сервера, и для параметра DNS over HTTPS выберите -> On (automatic template)
- Сохраните изменения. Теперь DNS запросы будут отправляться в шифрованном виде.
В DNS клиенте Windows Server 2022 также поддерживается DoH (но служба DNS Server в этой версии Windows Server пока не поддерживает DoH).
Укажите IP адрес DNS сервера в настройках сетевого интерфейса и включите режим обязательного использования шифрования: Encrypted only (DNS over HTTPS).
$AutoDohPath = 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters'
$AutoDohKey = 'EnableAutoDoh'
New-ItemProperty -Path $AutoDohPath -Name $AutoDohKey -Value 2 -PropertyType DWord -Force
Но в финальный релиз Windows 10 этот функционал не внедрен!
Настройка DNS over HTTPS в Windows 11 из командной строки
В Windows можно включить и настроить использование DNS over HTTPS из командной строки.
Сначала нужно добавить IP адрес сервера DoH в список известных серверов. Например, чтобы добавить альтернативные DNS сервера Cloudflare Family
1.1.1.3
и
1.0.0.3
(фильтруют вредоносный и взрослый контент), выполните PowerShell команду:
$DNSServer="1.1.1.3"
Add-DnsClientDohServerAddress -ServerAddress $DNSServer -DohTemplate "https://family.cloudflare-dns.com/dns-query" -AllowFallbackToUdp $False -AutoUpgrade $True
После того, как вы зарегистрировали шаблон для DNS сервера DoH нужно назначить этот IP в качестве предпочтительного DNS сервера в настройках сетевого интерфейса с помощью PowerShell команды:
Set-DnsClientServerAddress Ethernet0 -ServerAddresses ($DNSServer)
Затем включить обязательное использование DNS over HTTPS для сетевого интерфейса:
$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
С помощью отдельного параметра GPO можно включить обязательное использование DoH:
- Запустите редактор локальной GPO (
gpedit.msc
) - Перейдите в Computer Configuration -> Policies -> Administrative Templates -> Network -> DNS Client section
- Включите политику «Configure DNS over HTTPS (DoH) name resolution» и задайте значение Require DoH.
Как убедиться, что для разрешения имен в Windows используется DNS over HTTPS?
Чтобы проверить, что клиент DNS использует для разрешения имен протокол HTTPS по порту 443 вместо обычного 53 порта, используете встроенную утилита захвата сетевого трафика PktMon.exe (о которой мы говорили ранее).
Удалите все текущие фильтры Packet Monitor:
pktmon filter remove
Создайте новый фильтр для стандартного DNS порта 53:
pktmon filter add -p 53
Запустите мониторинг трафика в реальном времени (трафик выводится в консоль):
pktmon start --etw -m real-time
Если вы правильно настроили DNS over HTTPS, то трафик по порту 53 должен отсутствовать. Это ожначает, что все DNS запросы отправляются в шифрованной HTTPS сессии (на скриншоте ниже показан вывод в консоль при отключённом DoH и при включенном).
hj
DNS over HTTPS реализован во всех популярных браузерах (Google Chrome, Mozilla Firefox, Microsoft Edge, Opera). В каждом из этих браузеров вы можете включить поддержку DoH. Таком образом все DNS запросы от браузера будут шифроваться (DNS трафик других приложений по-прежнему будет идти в открытом текстовом виде).
Больше все проблем технологии DNS over HTTPS и DNS over TLS создадут администраторам корпоративных сетей, которым станет сложнее блокировать доступ к внешним ресурсам из внутренних сетей. Также не понятно, что планирует делать Роскомнадзор, чья методика глубокой проверки и управления сетевым трафиком Deep Packet Inspection (DPI) перестанет работать при переходе протокола DNS на рельсы шифрованного https.