何度も検索した結果、次のコマンドを使用して、Deluge ネットワーク トラフィックを VPN インターフェイス tun0 のみに制限することができました。
sudo iptables -A OUTPUT -m owner --uid-owner deluge \! -o tun0 -j REJECT
しかし、今ではポート8112(つまり192.168.0.23:8112)のeth0経由でWebUIにアクセスできなくなりました。
別の 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
もう 1 つの方法は、VPN 接続と Web インターフェイスのみが 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 インターフェースのみに制限されます。
コンテナ内の localhost 上の webui ポートにバインドし、ホスト上の任意のアドレスをリッスンするプロキシ デバイスを追加できます。
iptablesは必要ありません。