wlan1 のトラフィックを VPN 経由でルーティングし、wlan0 のトラフィックを eth0 にルーティングする

wlan1 のトラフィックを VPN 経由でルーティングし、wlan0 のトラフィックを eth0 にルーティングする

ワイヤレス ルーターをセットアップして VPN を利用しようとしています。この特定のトピックについては、まだ初心者です。どなたかヒントを、できれば実用的な解決策を教えていただけたらと思います。Web を隅々まで検索しましたが、次の問題に対する納得のいく解決策は見つかりませんでした。

私は、2 つのワイヤレス インターフェイス (wlan0 と wlan1) と、インターネットに接続された物理ネットワーク インターフェイス (eth0) を備えた Ubuntu ベースのデバイスを持っています。また、おそらく tun0 か何かになる VPN (最初に購入する必要がある VPN プロバイダーへの openvpn) にも接続する予定です。wlan1 に接続するデバイスからのトラフィックはすべて VPN 経由でパイプされ、wlan0 のすべてのトラフィックはインターネットに直接ルーティングされるようにしたいと考えています。

私の質問は次のとおりです: a) これはそもそも可能ですか? b) (a == yes) の場合、どうすればいいですか?

信頼できるソリューションが必要なので、できれば汚いハッキングはしないでください。

よろしくお願いします、ピア

答え1

これはポリシーベース ルーティングを使用して行われます。

通常、ルーティングの決定は宛先ネットワークに基づいて行われますが、ポリシーベースのルーティングでは、接続のあらゆる側面に基づいてルーティングできます。シナリオは単純です。着信インターフェイスwlan1tun0

まず、「vpn」(または任意の名前) という新しいルーティング テーブルを設定します。

echo "200 vpn" >> /etc/iproute2/rt_tables

200 vpnまたは、このファイルを編集して最後に追加することもできます。

次に、ルールを追加する必要があります。

sudo ip rule add iif wlan1 lookup vpn

これは、「着信インターフェイスの場合はwlan1、通常のルーティング テーブルではなく、「vpn」という名前のルーティング テーブルを使用する」という意味です。

次に、VPN ルーティング テーブルにデフォルト ルートを追加します。

sudo ip route add default dev tun0 table vpn
sudo ip route flush cache

これは、「vpn」と呼ばれるルーティング テーブルを使用しているものはすべて、tun0 インターフェイスをデフォルト ゲートウェイとして使用することを意味します。次に、念のためルート キャッシュをフラッシュします。

次のコマンドを使用して、VPN ルーティング テーブルを表示できます。

sudo ip route list table vpn

今は、VPN がアクティブ化された後に、おそらくスクリプトとしてこれらのコマンドを実行するだけです。openvpn には、それらを追加できるポストアップ スクリプトがあるはずです。

関連情報