Ограничить Deluge только tun0, но разрешить Deluge Web UI через eth0

Ограничить Deluge только tun0, но разрешить Deluge Web UI через eth0

После многочисленных поисков мне удалось ограничить сетевой трафик только VPN-интерфейсом tun0 с помощью следующей команды:

sudo iptables -A OUTPUT -m owner --uid-owner deluge \! -o tun0 -j REJECT

Но теперь я не могу получить доступ к WebUI через eth0 на порту 8112 (т.е. 192.168.0.23:8112)

Могу ли я использовать другое правило iptables для предоставления доступа к WebUI в локальной сети?

решение1

Это заставит Deluge использовать только VPN-туннель, за исключением вашей локальной подсети.

iptables -A OUTPUT -m owner --uid-owner deluge ! -d 192.168.1.0/24 \! -o tun0 -j REJECT

Логика заключается в том, что он блокирует весь ВЫХОД, который не является VPN-туннелем, за исключением локальной подсети.

Убедитесь, что вы проверили, какой пользователь использует ваш deluge. и настройте подсеть, чтобы она соответствовала вашей. Также проверьте в ifconfig, что имя вашего туннеля, в моем примере, tun0

решение2

Другой способ — разрешить 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

решение3

Использование контейнеров (LXC/LXD/Docker):

Если вы запустите интерфейс Wireguard на хосте, а затем добавите интерфейс в контейнер, в котором запущен Deluge, как единственный интерфейс, то доступ будет ограничен исключительно интерфейсом Wireguard.

Вы можете добавить прокси-устройство, которое привязывается к порту webui на локальном хосте внутри контейнера и прослушивает любой адрес на хосте.

Iptables не нужен.

Связанный контент