HTTPトラフィックをVPN接続にバインドするには、これらのiptablesルールをどのように変更しますか?

HTTPトラフィックをVPN接続にバインドするには、これらのiptablesルールをどのように変更しますか?

私はフォローしましたこのガイドtransmission-daemonDebianを実行しているデバイスとデータを送受信するためにVPNサービスを設定します。

#!/bin/sh

# Print environment variables for transmission's benefit
printenv > /etc/openvpn/myprovider/vpn.env


# Set up VPN routes
ip route add default via $route_vpn_gateway dev $dev table 10

ip rule add from $ifconfig_local/32 table 10
ip rule add to $route_vpn_gateway/32 table 10

ip route flush cache


# Add firewall rules
iptables -A INPUT -i $dev -p udp --dport 24328 -j ACCEPT
iptables -A INPUT -i $dev -p tcp --dport 24328 -j ACCEPT

iptables -A OUTPUT -o $dev -p udp --sport 24328 -j ACCEPT
iptables -A OUTPUT -o $dev -p tcp --sport 24328 -j ACCEPT

私はこれを使用しましたTorGuard IPテスト急流どのIPアドレスから接続しているかを確認してください。 TorGuard Torrentは正しいVPN IPアドレスを表示します。

ただし、WebブラウザとオンラインIP検索サービスを介して自分のIPアドレスを確認すると、実際の「自宅」IPアドレスが表示されます。

私がこれらの設定を理解する方法iptablesは、VPNトラフィックがトランスポートポート(24328)にのみ転送されることを許可し、他のすべてのトラフィックが破棄されるように設定されていることです。その場合、トラフィックは通常のインターネット接続を介して実行されているようです。この説明は正しいですか?

一般的なブラウザトラフィック(HTTP)トラフィックもVPN接続にバインドされ、他のサービス/ポートは変更されないようにこれらのルールを変更する方法はありますか?

私はPhantomJSブラウザを使用しており、デフォルトポートをデフォルト以外のポートに設定することが可能だと思います。

答え1

これらのファイアウォールルールは通常、トラフィックがブロックされていることを示し、特定のポートに入って来るトラフィックを許可するためにのみ使用されます。ポリシーに基づいてすべてのトラフィックが明白に許可されるため、これらのルールはトラフィックに何も追加しません。

次に、2番目のルーティングルールもあまり役に立たないようです。これは、デバイスに$devすでに$route_vpn_gatewayIPアドレスがあり、トラフィックがすでにそのデバイスにルーティングされているためです。

最初のルーティングルールは、$ifconfig_localからのすべてのトラフィックをルーティングする(他の方法ではルーティングされない)ルールを「完了」する必要があります$dev。これは、ローカルトラフィックが発生する場所であるためです$ifconfig_local127.0.0.1すべてのトラフィックがVPNを通過するわけではないため、そうでは$ifconfig_localありません127.0.0.1

iptables-saveこのコマンドを使用してiptables設定を表示し、このコマンドを使用しip route listてパスを表示できます。

関連情報