Как автоматически отключить интернет при обрыве VPN/OpenVPN в Linux
- AJIekceu4
- 02.10.2018
- 9 467
- 11
- 30.01.2021
- 4
- 4
- 0
- Содержание статьи
Существует огромное количество ситуаций, в которых может потребоваться блокировать исходящий трафик при разрыве VPN/OpenVPN соединения для сохранения собственной анонимности/приватности.
Описание
Технически, мы просто будем блокировать весь трафик, который идет не через VPN/OpenVPN с помощью фаервола iptables. В таком случае, даже если в какой то момент времени будет разорвано ваше VPN соединение, никто не сможет увидеть ваш IP, который выдал провайдер. Подразумевается, что у вас уже настроено рабочее VPN соединение, через которое можно получить доступ к сайтам и к DNS серверам. Первым делом устанавливаем пакет iptables-persistent, он позволяет автоматически применять правила iptables при загрузке вашего компьютера.
apt update
sudo apt install iptables-persistent
На вопрос о сохранении правил для IPv4 - отвечаем утвердительно, в результате в файле /etc/iptables/rules.v4 будут сохранены текущие правила.
Переименовываем файл /etc/iptables/rules.v4
в /etc/iptables/rules_old.v4
(он понадобится в случае, если мы захотим вернуть изначальные настройки фаервола). Создаем файл /etc/iptables/rules.v4
и открываем для редактирования любым удобным текстовым редактором (я пользую nano для этих целей):
sudo nano /etc/iptables/rules.v4
Вставляем в этот файл следующее содержимое:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -s x.x.x.x -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -d x.x.x.x -p tcp --dport 443 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT
COMMIT
- x.x.x.x - это IP адрес VPN/OpenVPN сервера к которому вы будете подключаться.
- tcp - это протокол, который используется при подключении к VPN, если будет использоваться udp, то надо заменить tcp на udp. Данная строка будет тогда выглядеть так:
-A OUTPUT -d x.x.x.x -p udp --dport 443 -j ACCEPT
- 443 - это порт, к которому происходит подключении. Если используется отличный от 443, то надо его заменить на актуальный.
- tun0 - название вашего интерфейса, который появляется при создании VPN-тоннеля. Если используется отличный от tun0, то надо его заменить на актуальный.
Теперь пытаемся применить наши правила:
sudo iptables-restore < /etc/iptables/rules.v4
Если после ввода команды не вылезло никаких предупреждений, то значит правила применились, а после перезагрузки, они должны будут применяться автоматически при старте ОС.
Теперь, без активного VPN/OpenVPN соединения не должно быть доступа к сайтам и даже DNS серверам. А после установки VPN соединения - все должно работать как обычно, т.к. весь исходящий трафик будет идти через VPN.
Если мы захотим вернуть старые правила (которые были активны на ПК в момент установки iptables-persistent), то можно применить их следующей командой:
sudo iptables-restore < /etc/iptables/rules_old.v4
/etc/iptables/rules.v4
Добавить комментарий