Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

SEC-DNS-LEAK-017 Сетевое оборудование и VPN

Защита от утечек DNS (DNS Leaks) и настройка Killswitch в VPN

Обновлено: 25.08.2026 · Официальная документация ↗

При разрыве или сбое VPN-соединения возникают критические утечки конфиденциальных данных:

  • DNS-запросы продолжают уходить на DNS-серверы локального провайдера в открытом виде (DNS Leak).
  • При кратковременном рестарте VPN клиентский софт на несколько секунд отправляет открытый рабочий трафик через публичный шлюз.
  • Утечки IPv6 трафика в обход VPN-туннеля, если провайдер выдает нативный IPv6 префикс.
  • WebRTC утечки реального IP-адреса в браузерах.

1. Архитектура надежного VPN Killswitch на базе Iptables (Linux)

Killswitch должен блокировать любой исходящий трафик через физический интерфейс (eth0), кроме самого зашифрованного UDP-туннеля, разрешая передачу данных только через интерфейс туннеля (wg0 / tun0):

#!/bin/bash
# Сброс правил
iptables -F
iptables -X

# Политика по умолчанию: ПОЛНЫЙ ДРОП ВСЕГО
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# 1. Разрешаем трафик на Loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# 2. Разрешаем установленные соединения внутри VPN туннеля (wg0):
iptables -A INPUT -i wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o wg0 -j ACCEPT

# 3. Разрешаем физическому интерфейсу (eth0) ТОЛЬКО связь с VPN-сервером:
iptables -A OUTPUT -o eth0 -p udp -d 198.51.100.1 --dport 51820 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -s 198.51.100.1 --sport 51820 -m conntrack --ctstate ESTABLISHED -j ACCEPT

# 4. ПОЛНОЕ ОТКЛЮЧЕНИЕ IPv6 для предотвращения утечек:
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

2. Защита от утечек DNS в OpenVPN (.ovpn)

Добавьте директивы принудительной изоляции резолвера в конфигурацию клиента:

# Блокировка внешних DNS через Windows WFP (Windows Filtering Platform):
block-outside-dns

# Перенаправление всех шлюзов и DNS:
redirect-gateway def1 bypass-dhcp
dhcp-option DNS 10.8.0.1

3. Проверка на утечки (DNS & WebRTC Leak Test)

# Тест DNS через CLI:
curl https://raw.githubusercontent.com/macvk/dnsleaktest/master/dnsleaktest.sh | bash
💡 Практика специалистов: Если ваша VPN-инфраструктура не поддерживает IPv6 на серверной стороне, всегда жестко отключайте IPv6 в операционной системе клиента или выставляйте правило ip6tables -P OUTPUT DROP, чтобы гарантированно исключить утечки сессий нового поколения.

Частые вопросы (FAQ)

Что такое утечка DNS (DNS Leak)?

Это ситуация, когда пользовательский трафик шифруется и передается через VPN, но DNS-запросы на преобразование доменных имен продолжают отправляться в открытом виде на серверы интернет-провайдера (ISP), раскрывая посещаемые ресурсы.

Почему IPv6 часто вызывает утечки данных в VPN?

Многие VPN-серверы настроены только на маршрутизацию IPv4. Если домашний провайдер поддерживает IPv6, операционная система автоматически выбирает IPv6 как более приоритетный стек и пускает трафик в открытый интернет мимо VPN.

Как WebRTC раскрывает реальный IP-адрес даже при включенном VPN?

Технология WebRTC в браузерах использует протоколы STUN/ICE для прямого p2p-соединения в обход стандартного системного сетевого шлюза, считывая локальные IP со всех физических сетевых интерфейсов.

Чем Killswitch на базе брандмауэра лучше Killswitch на базе скрипта?

Программный скрипт реагирует на событие разрыва с задержкой в несколько миллисекунд (за это время сотни пакетов успевают утечь в сеть). Правила файрвола (Iptables/WFP) аппаратно блокируют любые пакеты вне туннеля на постоянной основе.

Полезные материалы
Рекомендуем