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

Над настройками, которые я сейчас пробую (частично скрытый IP-адрес моего сервера vpn), что я делаю неправильно?
2 ответа
Вы можете сделать это, просто используя графический интерфейс ufw:
- Настройте UFW для глобального запрета исходящего трафика (так же, как вы сделали)
- Добавьте следующие два правила, учитывая, что
eth0это ваш публичный интерфейс,tun0интерфейс, созданный VPN иxxx.xxx.68.138Ваш VPN IP:- Разрешить подключение к VPN IP через общедоступный интерфейс: добавьте правило с
Policy=Allow,Direction=Out,Interface=eth0а такжеTo=xxx.xxx.68.138 - Разрешить все через интерфейс VPN: добавить правило с
Policy=Allow,Direction=Out,Interface=tun0а такжеTo=0.0.0.0/0
- Разрешить подключение к VPN IP через общедоступный интерфейс: добавьте правило с
Это все!
Вы почти сделали это, вы просто забыли разрешить исходящий трафик через 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