После многих поисков я смог ограничить сетевой трафик только для VPN-интерфейса tun0, используя следующую команду:
sudo iptables -A OUTPUT -m owner --uid-owner deluge \! -o tun0 -j REJECT
Но теперь я не могу получить доступ к WebUI через eth0 через порт 8112 ( т.е. 192.168.0.23:8112)
Можно ли использовать другое правило iptables для предоставления доступа к веб-интерфейсу в локальной сети?
Это вынудит наводнение только использовать туннель vpn за исключением к Вашей локальной подсети.
iptables -A OUTPUT -m owner --uid-owner deluge ! -d 192.168.1.0/24 \! -o tun0 -j REJECT
логика - то, что это блокирует весь ВЫВОД что-либо, что не является туннелем VPN за исключением к локальной подсети.
Удостоверяются, что Вы проверяете, какого пользователя Ваше наводнение использует. и скорректируйте подсеть для соответствия Вашему. Также проверьте в ifconfig что Ваше туннельное название, в моем примере, tun0
Иначе должен только позволить соединению VPN и веб-интерфейсу пробегаться через eth0 и блокировать все остальное:
-A INPUT -s my.vpn.net -i eth0 -p udp -m udp --sport 1194 -j ACCEPT
-A INPUT -s my.local.ip -i eth0 -p udp -m udp --sport 8112 -j ACCEPT
-A INPUT ! -i tun0 -j DROP
-A OUTPUT -d my.vpn.net -o eth0 -p udp -m udp --dport 1194 -j ACCEPT
-A OUTPUT -d my.local.ip -i eth0 -p udp -m udp --sport 8112 -j ACCEPT
-A OUTPUT ! -o tun0 -j DROP