実行するサーバーがVPNに接続されている場合にのみ、送信がトラフィックを送受信するようにします。
I 同様のこの質問を見つけました しかし、VPNを介してすべてのトラフィックを強制したくはありません。また、コマンドラインからfirestarterを使用する方法についての良いガイドを見つけることができませんでした。
代わりにufwの使用を考えていましたが、ファイアウォールの経験がほとんどないため、コミュニティが助けてくれることを望んでいます。
私が持っていたアイデアの1つは、33442などの特定のポートを使用して送信を強制し、VPNサーバーのIPアドレスからそのポートへのトラフィックのみを許可することでした。 Ubuntuサーバーガイドを確認し、次のようなことができると思います。
Sudo ufw enable
Sudo ufw deny port tcp from localhost to any port 33442
Sudo ufa allow port tcp from localhost to VPNIP port 33442
Sudo ufw deny port udp from localhost to any port 33442
Sudo ufa allow port udp from localhost to VPNIP port 33442
この論理はその塩を保持していますか?どうしますか? VPNIP、VPNサーバーのパブリックIPに何を使用しますか、またはVPNが接続するローカルサブネット範囲を指定する必要がありますか?
ご協力いただきありがとうございます!
vpnroute
グループを作成します。
Sudo groupadd vpnroute
tun0
インターフェイスを通過しないiptables
グループのメンバーによって行われた発信ネットワーク接続を拒否するvpnroute
ルールを追加します。
Sudo iptables -A OUTPUT -m owner --gid-owner vpnroute \! -o tun0 -j REJECT
vpnroute
グループのメンバーとして送信プロセスを開始します。
Sudo -g vpnroute transmission-gtk &
複雑なシステムスクリプトに基づくvpnには、より長い「方法」を使用しないでください...!iptablesが最高の(そして絶対確実な)方法です!!!-送信ユーザーとグループに基づいたIPNルールを使用してvpnを制御します( systemdスクリプト、upおよびdownスクリプトなどを使用するより複雑な「ハック」メソッドのように...)そしてそれはとても簡単です!
ステップ1-セットアップ:(伝送がインストールされているため、debian-transmissionユーザーが存在すると仮定します!)
Sudo apt-get install iptables
Sudo apt-get install iptables-persistent
ステップ2-transmission-ip-rulesファイルを作成する
Sudo nano transmission-ip-rules
#!/bin/bash
から始まる以下のコードブロックにテキストを追加します
#!/bin/bash
# Set our rules so the debian-transmission user group can only route through the vpn
NET=192.168.1.0/25
GROUP=debian-transmission
IFACE_INTERNAL=eth0
IFACE_VPN=tun0
ALLOW_PORT_FROM_LOCAL=9091
iptables -A OUTPUT -d $NET -p tcp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -d $NET -p udp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o $IFACE_VPN -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o lo -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -j REJECT
# not needed - but added these to properly track data to these interfaces....when using iptables -L -v
iptables -A INPUT -i $IFACE_VPN -j ACCEPT
iptables -A INPUT -i $IFACE_INTERNAL -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# track any forward (NAT) data for completeness - don't care about interfaces
iptables -A FORWARD
ファイルを保存してから実行します
Sudo iptables -F
Sudo chmod +x transmission-ip-rules
Sudo ./transmission-ip-rules
次に、これらのルールがリブート間で持続することを確認します:
Sudo dpkg-reconfigure iptables-persistent
両方のプロンプトで[はい]をタップします。完了!
このスクリプトの素晴らしい点は、デバイスを介してすべてのデータを追跡できることです!発行するとき
Sudo iptables -L -v
vpnスクリプトが適切に機能していることを確認できるように、どのインターフェイスとどの側のINPUTまたはOUTPUTにデータが送信されるかが表示されます。例えば;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1749K 661M ACCEPT all -- tun0 any anywhere anywhere
3416K 3077M ACCEPT all -- eth0 any anywhere anywhere
362K 826M ACCEPT all -- lo any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 all -- any any anywhere anywhere
Chain OUTPUT (policy ACCEPT 2863K packets, 2884M bytes)
pkts bytes target prot opt in out source destination
1260 778K ACCEPT tcp -- any eth0 anywhere 192.168.1.0/ 25 tcp spt:9091 owner GID match debian-transmission
0 0 ACCEPT udp -- any eth0 anywhere 192.168.1.0/ 25 udp spt:9091 owner GID match debian-transmission
1973K 1832M ACCEPT all -- any tun0 anywhere anywhere owner GID match debian-transmission
8880 572K ACCEPT all -- any lo anywhere anywhere owner GID match debian-transmission
13132 939K REJECT all -- any any anywhere anywhere owner GID match debian-transmission reject-with icmp-port-unreachable
このスクリプトは、VPNからの接続、切断、再起動で徹底的にテストされています。それは素晴らしく機能します。送信にはVPNのみを使用できます。他のスクリプトに対するこのスクリプトの大きな利点は、(iptables -L -v
を介して)転送で引き継がれたもの(INPUT(all)およびForward(all)ルールを追加することで)がデータを集計することを確認できることです。インターフェイスeth0、vpn(tun0)ごと)。それで、あなたは何が起こっているかを正確に知っています!!!データの合計は送信と正確に集計されません-残念ながら、入力側でdebian-transmissionユーザーを区別することはできず、余分なオーバーヘッドとおそらく同じVPNを使用する他のプロセスの両方がありますが、データは大体集計されますINPUT側で、vpnの動作を確認するためにOUTPUTで約半分になります。もう1つ注意すべきことは、VPN切断(すべてのトラフィックが伝送で停止する)に時間がかかり、伝送のために再接続して新しいVPNに「行き着く」ので、トレントを再び開始するのに約5分かかる場合でも心配しないでください。 。
ヒント-Google「MAN iptables」と 帯域幅監視に関するこの記事 を参照してください。このスクリプトの仕組みを1行ずつ知りたい場合...
理想的には、特定のインターフェース(VPNインターフェース)にバインドする機能を持つトレントクライアントを使用する必要があります。
トレントクライアントの中で、デリュージはこれを行います。したがって、Delugeをインストールし、[設定]でインターフェイスを構成すると、設定が完了します。