Download_Link
Участник клуба
Всем привет! Протокол DNS предполагает открытый обмен информацией между клиентами (в число которых входит и Ваш компьютер) и DNS-серверами. Таким образом, «подсмотреть» адреса посещаемых Вами сайтов (утечка DNS, «DNS Leak«) или даже подменить их (!) не составляет особенного труда, даже при использовании VPN.
Например, рассмотрим информацию, передаваемую при запросе IP-адреса сайта ya.ru у DNS-серверов Google 8.8.8.8 и 8.8.4.4 при выполнении команды ping:
Перехватываем сетевые пакеты — происходит обращение к порту 53 по IP-адресам 8.8.8.8 и 8.8.4.4:
Имя сайта (ya.ru) содержится в запросе открытым текстом:
0x02 (2 символа) 0x79 (y) 0x61 (a) 0x02 (2 символа) 0x72 (r) 0x75 (u) 0x00 (конец)
Как же скрыть эту информацию от посторонних глаз?
Протокол DNSCrypt (криптографическая защита DNS-трафика) нам поможет
Применим в деле чудесную утилиту dnscrypt-proxy (автор — парижский модный фотограф и по совместительству программист и математик Frank Denis), использующую для защиты наших секретов эллиптическую криптографию (Curve25519).
Сначала подключаемся к Интернету и скачиваем последнюю версию утилиты dnscrypt-proxy по адресу https://github.com/jedisct1/dnscrypt-proxy/releases/latest:
Создаем файл конфигурации dnscrypt-proxy.toml (на основе файла example-dnscrypt-proxy.toml).
Пример файла конфигурации с удаленными комментариями:
server_names = ['********']
listen_addresses = ['127.0.0.1:53', '[::1]:53']
max_clients = 250
ipv4_servers = true
ipv6_servers = false
dnscrypt_servers = true
doh_servers = true
require_dnssec = false
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
log_level = 0
log_file = 'dnscrypt-proxy.log'
cert_refresh_delay = 240
fallback_resolver = '8.8.8.8:53'
ignore_system_dns = true
netprobe_timeout = 30
log_files_max_size = 1
log_files_max_age = 7
log_files_max_backups = 1
block_ipv6 = true
cache = true
cache_size = 512
cache_min_ttl = 600
cache_max_ttl = 86400
cache_neg_min_ttl = 60
cache_neg_max_ttl = 600
[blacklist]
blacklist_file = 'blacklist.txt'
[sources]
[sources.'public-resolvers']
urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md']
minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
cache_file = 'public-resolvers.md'
refresh_delay = 72
prefix = ''
Вместо ******** задаем имя удаленного DNS-резольвера.
DNS-резольвер принимает запрос от клиента (Вашего компьютера) и отправляет его к DNS-серверу.
Эти резольверы описаны в файле public-resolvers.md.
Пример описания DNS-резольвера:
## aaflalo-me
DNS-over-HTTPS server running rust-doh with PiHole for Adblocking.
Non-logging, AD-filtering, supports DNSSEC.
Hosted in Netherlands on a RamNode VPS.
sdns://AgMAAAAAAAAADjE3Ni41Ni4yMzYuMTc1ID4aGg9sU_PpekktVwhLW5gHBZ7gV6sVBYdv2D_aPbg4DmRucy5hYWZsYWxvLm1lCi9kbnMtcXVlcnk
.
Самыми важными свойствами резольвера являются:
127.0.0.1:53
Устанавливаем утилиту dnscrypt-proxy как службу Windows, запустив командный файл service-install.bat. После инсталляции служба будет автоматически запускаться при каждой перезагрузке
Изменяем адреса DNS-серверов для Ваших сетевых адаптеров:
каждый адаптер имеет свои настройки DNS для протокола IPv4:
задаем как адрес DNS-сервера локальный адрес 127.0.0.1:
Проверяем работу резольвера посредством сайта ipleak.net — должен определяться DNS-сервер, не относящийся к Вашему провайдеру:
посредством сайта Perfect Privacy :
Перехватив пакеты, можно убедиться, что теперь мой компьютер обращается к порту 443 сервера с IP-адресом 212.47.228.136:
Сам запрос зашифрован:
Например, рассмотрим информацию, передаваемую при запросе IP-адреса сайта ya.ru у DNS-серверов Google 8.8.8.8 и 8.8.4.4 при выполнении команды ping:
Перехватываем сетевые пакеты — происходит обращение к порту 53 по IP-адресам 8.8.8.8 и 8.8.4.4:
Имя сайта (ya.ru) содержится в запросе открытым текстом:
0x02 (2 символа) 0x79 (y) 0x61 (a) 0x02 (2 символа) 0x72 (r) 0x75 (u) 0x00 (конец)
Как же скрыть эту информацию от посторонних глаз?
Протокол DNSCrypt (криптографическая защита DNS-трафика) нам поможет
Применим в деле чудесную утилиту dnscrypt-proxy (автор — парижский модный фотограф и по совместительству программист и математик Frank Denis), использующую для защиты наших секретов эллиптическую криптографию (Curve25519).
Сначала подключаемся к Интернету и скачиваем последнюю версию утилиты dnscrypt-proxy по адресу https://github.com/jedisct1/dnscrypt-proxy/releases/latest:
- dnscrypt-proxy-win32-*.zip (для 32-битных систем Windows);
- dnscrypt-proxy-win64-*.zip (для 64-битных систем Windows)
Создаем файл конфигурации dnscrypt-proxy.toml (на основе файла example-dnscrypt-proxy.toml).
Пример файла конфигурации с удаленными комментариями:
server_names = ['********']
listen_addresses = ['127.0.0.1:53', '[::1]:53']
max_clients = 250
ipv4_servers = true
ipv6_servers = false
dnscrypt_servers = true
doh_servers = true
require_dnssec = false
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
log_level = 0
log_file = 'dnscrypt-proxy.log'
cert_refresh_delay = 240
fallback_resolver = '8.8.8.8:53'
ignore_system_dns = true
netprobe_timeout = 30
log_files_max_size = 1
log_files_max_age = 7
log_files_max_backups = 1
block_ipv6 = true
cache = true
cache_size = 512
cache_min_ttl = 600
cache_max_ttl = 86400
cache_neg_min_ttl = 60
cache_neg_max_ttl = 600
[blacklist]
blacklist_file = 'blacklist.txt'
[sources]
[sources.'public-resolvers']
urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md']
minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
cache_file = 'public-resolvers.md'
refresh_delay = 72
prefix = ''
Вместо ******** задаем имя удаленного DNS-резольвера.
DNS-резольвер принимает запрос от клиента (Вашего компьютера) и отправляет его к DNS-серверу.
Эти резольверы описаны в файле public-resolvers.md.
Пример описания DNS-резольвера:
## aaflalo-me
DNS-over-HTTPS server running rust-doh with PiHole for Adblocking.
Non-logging, AD-filtering, supports DNSSEC.
Hosted in Netherlands on a RamNode VPS.
sdns://AgMAAAAAAAAADjE3Ni41Ni4yMzYuMTc1ID4aGg9sU_PpekktVwhLW5gHBZ7gV6sVBYdv2D_aPbg4DmRucy5hYWZsYWxvLm1lCi9kbnMtcXVlcnk
.
Самыми важными свойствами резольвера являются:
- Non-logging — не ведет протокол запросов
- supports DNSSEC — поддерживает цифровую подпись — DNSSEC
- AD-filtering — фильтрует рекламные запросы
127.0.0.1:53
Устанавливаем утилиту dnscrypt-proxy как службу Windows, запустив командный файл service-install.bat. После инсталляции служба будет автоматически запускаться при каждой перезагрузке
Изменяем адреса DNS-серверов для Ваших сетевых адаптеров:
каждый адаптер имеет свои настройки DNS для протокола IPv4:

задаем как адрес DNS-сервера локальный адрес 127.0.0.1:

Проверяем работу резольвера посредством сайта ipleak.net — должен определяться DNS-сервер, не относящийся к Вашему провайдеру:

посредством сайта Perfect Privacy :

Перехватив пакеты, можно убедиться, что теперь мой компьютер обращается к порту 443 сервера с IP-адресом 212.47.228.136:

Сам запрос зашифрован:
