MAATRIX / Блог / Kill switch для VPN: блокируем утечку IP при обрыве

Kill switch для VPN: блокируем утечку IP при обрыве

Блог MAATRIX · 2026-07-07

Обрыв VPN на долю секунды — и трафик уходит в открытую сеть с реальным IP. Kill switch закрывает эту дыру: если туннель падает, весь трафик режется на уровне фаервола. Разберём три рабочих способа — для WireGuard, OpenVPN и универсальный на nftables.

Зачем нужен kill switch

['VPN-клиент — это обычный процесс. Он может упасть, потерять соединение, переподключаться. В эти секунды маршрут по умолчанию возвращается на реальный интерфейс, и всё, что летит в сеть (браузер, torrent, cron-задачи), уходит с настоящим IP провайдера.', 'Kill switch — не функция VPN, а правило фаервола: «разрешён исходящий трафик только через туннель или только к серверу VPN, всё остальное — DROP». Даже если VPN-процесс мёртв, ядро само не пустит пакеты мимо.', '
  • DNS-утечки — отдельная беда: запросы могут идти в обход туннеля
  • IPv6-утечки — многие забывают, что VPN гонит только IPv4
  • Переподключение — самый частый момент утечки
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для своего VPN

Kill switch для WireGuard одной строкой

['У WireGuard есть встроенный механизм через PostUp/PostDown и таблицы маршрутизации. Но самый надёжный вариант — жёсткие правила в конфиге. Добавляем в секцию [Interface]:', '
[Interface]\nPrivateKey = <ваш_ключ>\nAddress = 10.8.0.2/32\nDNS = 10.8.0.1\nPostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT\nPostDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
', 'Эти правила разрешают исходящий трафик только через интерфейс WireGuard (%i) и к локальным адресам. Как только туннель упадёт и правило снимется PostDown — но если процесс убит некорректно, правило останется висеть и продолжит блокировать. Это и есть безопасное поведение.', 'Поднимаем и проверяем:', '
wg-quick up wg0\ncurl -s https://ifconfig.co   # должен показать IP сервера VPN\nwg-quick down wg0\ncurl -s --max-time 5 https://ifconfig.co   # должен зависнуть/упасть, а не показать реальный IP
']

Универсальный kill switch на nftables

['Если хочется независимости от VPN-клиента, задаём политику фаервола отдельно. Разрешаем только: loopback, локальную сеть, эндпоинт VPN-сервера и трафик через tun/wg-интерфейс. Пример для сервера VPN 203.0.113.10:51820:', '
#!/usr/sbin/nft -f\nflush ruleset\ntable inet killswitch {\n  chain output {\n    type filter hook output priority 0; policy drop;\n    oifname "lo" accept\n    ip daddr 192.168.0.0/16 accept\n    ip daddr 203.0.113.10 udp dport 51820 accept\n    oifname { "wg0", "tun0" } accept\n    ct state established,related accept\n  }\n}
', 'Сохраняем в /etc/nftables-killswitch.conf и применяем через nft -f. Пока файл активен, ни один пакет не уйдёт мимо туннеля, кроме handshake с самим VPN-сервером.']

Закрываем IPv6 и DNS

['Даже с рабочим kill switch IPv6 способен всё испортить. Если VPN не тоннелирует IPv6 — полностью его блокируем:', '
ip6tables -P OUTPUT DROP\nip6tables -A OUTPUT -o lo -j ACCEPT\nip6tables -A OUTPUT -o wg0 -j ACCEPT
', 'DNS фиксируем на адрес внутри туннеля (в примере выше DNS = 10.8.0.1). Проверить отсутствие утечек удобно на dnsleaktest.com — должны светиться только резолверы VPN-провайдера.']

Свой VPN — свой контроль

['Публичные VPN-сервисы делят один IP на сотни клиентов, логируют и попадают под блокировки. Разворачивая WireGuard на собственном VPS, вы получаете выделенный IP и полный контроль над kill switch и правилами.', 'MAATRIX даёт зарубежный VPS (локации UK и США) с root-доступом на AMD EPYC + NVMe от $8/мес, с оплатой картой РФ, СБП, криптой или токеном MAAT — то, чего не сделать у иностранных провайдеров, не принимающих карты РФ. Ставите WireGuard за 10 минут, включаете kill switch по инструкции выше и получаете туннель, который никому не отдаёт.', '
apt update && apt install -y wireguard\n# генерация ключей и конфига — 5 минут
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для своего VPN

Частые вопросы

Kill switch замедляет соединение?

Нет. Это правила фаервола, они почти не нагружают ядро. Скорость определяется самим туннелем, а не блокировкой.

Что если VPN-процесс упал, а правило PostDown не сработало?

Это ожидаемое безопасное поведение: правило остаётся, трафик блокируется. Снять его можно вручную через iptables -D или перезагрузкой.

Нужен ли отдельный VPS под VPN?

Да, если важен выделенный IP, отсутствие логов и контроль. На общих сервисах вы делите IP и доверяете чужой инфраструктуре.