Блокировать интернет, если соединение с 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
В script
xxx.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