Для того, чтобы интернет работал только если включен VPN в iptables прописываю следующие команды:
iptables --flush
iptables --delete-chain
iptables -t nat --flush
iptables -t nat --delete-chain
iptables -P OUTPUT DROP
iptables -A INPUT -j ACCEPT -i lo
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A OUTPUT -j ACCEPT -d 123.45.67.89 (VPN server)
iptables -A OUTPUT -j ACCEPT -o tun0
После чего сохраняю эти правила с помощью:
netfilter-persistent save
В итоге вывод команды iptables -L:
root@host:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere 123.45.67.89
ACCEPT all -- anywhere anywhere
А команда cat /etc/iptables/rules.v4 выдает вот что:
root@host:~# cat /etc/iptables/rules.v4
# Generated by iptables-save v1.6.0 on Wed Apr 25 12:57:29 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 123.45.67.89/32 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT
COMMIT
# Completed on Wed Apr 25 12:57:29 2018
# Generated by iptables-save v1.6.0 on Wed Apr 25 12:57:29 2018
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [7:392]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Wed Apr 25 12:57:29 2018
Все должно работать и работало на протяжении года, но сегодня по какой-то причине перестало. Фаервол начал пускать трафик в интернет даже если выключен VPN при таких правилах фаервола.
Все, что я делал сегодня: обновил virtualbox и добавил новый VPN сервер в network manager.
То ли я в упор чего-то не вижу, то ли я даже не знаю куда думать... У кого-нибудь есть идеи?
OS: Debian 9.4 x64