web-dev-qa-db-ja.com

VPNを介した特定のプログラムのトラフィック

delugeのトラフィックをVPN(OpenVPN)経由でのみ許可し、他のトラフィックをiptablesを使用しないようにすることは可能ですか?

2
M. Martz

アプリケーションを具体的にターゲットにすることはできないため、依存関係のない唯一の解決策は、すべてのポートをVPNに転送するiptables構成を作成することです。しかし、何を転送するかを知っている必要があり、それはエラーが発生しやすいです。

より良い解決策は、Linuxコンテナを使用してアプリを内部で実行することです。次に、コンテナのネットワークカードにすべてのトラフィックをVPNに転送させます。これはArchのチュートリアルですが、基本的な概念はすべてのディストリビューションに適用されます。

https://wiki.archlinux.org/index.php/OpenVPN_in_Linux_containers

1
jecxjo

Delugeユーザーガイドには、それに関するページがあります: VPNを使用したDelugeのセットアップ 。基本的なトレント-VPNセットアップのスクリプトは このGitHubリポジトリ にあります。 README.mdファイルにはOpenVPNについて少しでもあります:

これらのスクリプトをOpenVPNで使用するには、リポジトリのクローンを作成し、vpn_base.shでインターフェースとユーザーに正しい値を設定します。 openvpnクライアント構成を編集し、次の行を追加します。

up "/path/to/repo/link_up_user_filter.sh"

Openvpnクライアントの起動時に外部スクリプトを自動的に実行できるようにするには、引数--script-security 2を指定してopenvpnを実行するか、次の行をクライアント構成に追加します。

script-security 2

彼らがvpn_base.shで話している「値」は次のとおりです。

VPNIF="tun0"
NETIF="eth1"
VPNUSER="vpnuser"
TABLE_ID=42
MARK_ID=0x10

私はこれらのスクリプトにあまり精通していませんが、次のスクリプトに対応していると思います。

  • VPNトラフィックのネットワークインターフェイス。
  • インターネットへのネットワークインターフェース。
  • VPNソフトウェアを実行しているユーザー(あなたの場合はopenvpn?)
  • 使用可能なルーティングテーブルID。
  • 使用可能なパケットマークID。

セットアップが完了すると、スクリプトはいくつかのルーティング/ファイアウォールルールをセットアップし、DelugeトラフィックはOpenVPNを通過するはずです。

警告の言葉:これらのスクリプトはnatmangle、およびfilterをフラッシュするようですIPTables内のテーブル。これにより、これまでに作成したIPTables構成がすべて消去されます。

iptables -F -t nat
iptables -F -t mangle
iptables -F -t filter

必ず最初にiptables-saveを使用してテーブルを保存するか、user_filter/iptables_user_filter.shファイルを編集してください。

さらに詳しい情報が必要な場合は、次のリンクを参考にしてください。

1
John WH Smith