Pull to refresh

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

На этом все.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.