wlan0からtun0(OpenVPN)にすべてのパケットを転送する方法は?

wlan0からtun0(OpenVPN)にすべてのパケットを転送する方法は?

wlan0とeth0があります。 Eth0はインターネットに接続され、wlan0はアクセスポイントです。 VPNを介してすべてのトラフィックを自動的にルーティングしないように、「--pull-filterignoreredirect-gateway」オプションを使用してOpenVPNサーバーに接続します。これは私が望む仕事ではありません。

wlan0(アクセスポイント)からtun0にすべてのトラフィックをルーティングしようとしています。これにより、自分のアクセスポイントに接続しているすべてのクライアントがVPNを使用します。私はiptablesを使ってこれをやろうとしています。

iptables -A POSTROUTING -t nat -o wlan0 -j MASQUERADE
iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT

これは機能しません(カウンターは更新されません)。 tun0をeth0に変更しようとしましたが、うまくいったので(しかしofcはVPNを完全にバイパスします)、問題がtun0にあるとします。また、IPルーティングテーブルがこれに適していることも読みました。これが本当ならどうすればいいですか?

ベストアンサー1

wlan サブネットが 192.168.1.0/24 で tun0 IP が 10.10.10.99 であるとします。

VPN ゲートウェイで次のコマンドを実行します。

ルーティングを有効にする(まだアクティブでない場合):

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

FORWARDルールを維持しながら、最初の2つの既存のNATルールを削除します。

sudo iptables -t nat -L -n --line-numbers
sudo iptables -t nat -D POSTROUTING 1

NATルールを削除したら、正しい形式で新しいNATルールを追加してください。

sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -o tun0 -j MASQUERADE

最後のステップは、「ポリシールーティング」を使用してルーティングテーブルを処理することです。

sudo ip rule add from 192.168.1.0/24 table 99
sudo ip route add 0.0.0.0/0 via 10.10.10.99 dev tun0 table 99

引用するここそしてここ

おすすめ記事