Как стать автором
Обновить

KillSwitch для OpenVpn посредством ufw

Вы подключены к VPN, но что если подключение оборвётся? Тогда трафик начнет идти напрямую, нам это не нужно, как этого избежать? Сейчас расскажу…

Поинтересовавшись данным вопросом, я начал искать решение этой проблемы, и нашел — killSwitch.

Что это?


Uncomplicated Firewall — это утилита для конфигурирования межсетевого экрана Netfilter
Для начала устанавливаем эту штуку, если ее нет по дефолту:

sudo apt-get install ufw

Теперь подключаемся к vpn и, командой sudo ifconfig убеждаемся, что подключение использует интерфейс tun0. Убедившись в этом, запускаем скрипт.

Для начала его нужно написать, создайте в любом удобном месте текстовый документ и вставьте туда сам скрипт:

#!/bin/bash
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow out on tun0 from any to any
sudo ufw enable

Сохраняем документ с любым именем, но .sh расширением (например killswitch.sh)

Этот скрипт нужно будет выполнить после подключения к vpn, он запрещает все входящие и исходящие подключения кроме тех, которые идут через интерфейс tun0.

Но если мы захотим отключиться от vpn и продолжить использовать сеть, нам нужно отменить эти правила. Для этого пишем скрипт unkillswitch.sh:

#!/bin/bash
sudo ufw reset 
sudo ufw default allow incoming
sudo ufw default allow outgoing
sudo ufw enable

Теперь нужно разрешить эти файлы выполняться, это делается командой:

sudo chmod +x killswitch.sh unkillswitch.sh

Теперь подключаемся к vpn и запускаем скрипт:

sudo ./killswitch.sh

После этого весь трафик вне vpn будет заблокирован.
Внимание! Если вы активируете скрипт ДО подключения к vpn, то не сможете к нему подключиться, так-как весь трафик будет дропаться.
Когда отключаетесь от vpn, соответственно выполняете:

sudo ./inkillswitch.sh

На этом все.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.