Блокировать интернет, если соединение с vpn обрывается

Попытка настроить gufw так, чтобы, если мое vpn-соединение оборвалось, мой компьютер больше не мог выходить в интернет.

Мой план состоял в том, чтобы заблокировать все исходящие, но разрешить только соединение с IP-адресом моего сервера vpn, но я обнаружил, что при внедрении брандмауэра я не могу загружать сайты, даже если vpn подключен.

Настройки Gufw

Над настройками, которые я сейчас пробую (частично скрытый IP-адрес моего сервера vpn), что я делаю неправильно?

2 ответа

Вы можете сделать это, просто используя графический интерфейс ufw:

  • Настройте UFW для глобального запрета исходящего трафика (так же, как вы сделали)
  • Добавьте следующие два правила, учитывая, что eth0 это ваш публичный интерфейс, tun0 интерфейс, созданный VPN и xxx.xxx.68.138 Ваш VPN IP:
    1. Разрешить подключение к VPN IP через общедоступный интерфейс: добавьте правило с Policy=Allow, Direction=Out, Interface=eth0 а также To=xxx.xxx.68.138
    2. Разрешить все через интерфейс VPN: добавить правило с Policy=Allow, Direction=Out, Interface=tun0 а также To=0.0.0.0/0

Это все!

Вы почти сделали это, вы просто забыли разрешить исходящий трафик через VPN, потому что глобальное запрещение исходящего трафика применяется ко всем интерфейсам, включая тот, который создан VPN.

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

Попробуйте что-то вроде этого

Вы хотите изменить ufw правила, основанные на interface статус.

Хорошее место для такого рода действий в /etc/network/if-down.d/ а также /etc/network/if-up.d/

Вы можете в этой папке положить какой-нибудь скрипт и выполнить действие. Например, поместите этот скрипт в /etc/network/if-down.d/ изменить ufw правила каждый раз, когда tun0опускаться.

Сделать скрипт под названием script с разрешениями на выполнение 755

sudo nano /etc/network/if-down.d/script

Сценарий

# Check interface
[ "$IFACE" != "tun0" ] || exit 0
# Do something
sudo ufw default deny outgoing
sudo ufw allow out to xxx.xxx.xxx.xxx

Изменить разрешение сценария

chmod 755 /etc/network/if-down.d/script

В scriptxxx.xxx.xxx.xxx представлять IP вашего vpn сервер

когда vpn переподключи нужно еще раз поменять ufw правила. Сделай еще один скрипт script2

sudo nano /etc/network/if-up.d/script2

Сценарий что-то вроде этого

# Check interface
[ "$IFACE" != "tun0" ] || exit 0
# Do something
sudo ufw default allow outgoing
#also you can add more ufw rules ...
sudo ufw ....

Изменить разрешение сценария

chmod 755 /etc/network/if-up.d/script2

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

Другие вопросы по тегам