2番目のゲートウェイを介してポートリダイレクトを設定してみてください。

2番目のゲートウェイを介してポートリダイレクトを設定してみてください。

ポート161へのすべての接続が別のゲートウェイ(openvpnを介して)を通過し、他の接続が直接接続する構成を設定しようとします。

[ローカルホスト] -> [ゲートウェイ] -> [リモート] - 確認

[localhost] <- [ゲートウェイ] <- [リモート] - VPN トンネルの背後からパケットが消えます。 tun0 ifaceから臭いがすると消えます。

私がしたこと:rt_tablesにgw1を追加してから、このルールを使用しました。

ip route add default via 10.8.0.1 dev tun0 table gw1
ip rule add fwmark 0x1 table gw1
iptables -A OUTPUT -t mangle -o eth0 -p tcp --dport 443 -j MARK --set-mark 1
iptables -A POSTROUTING -t nat -o tun0 -p tcp --dport 443 -j SNAT --to 10.8.0.2
iptables -A OUTPUT -t mangle -o eth0 -p udp --dport 161 -j MARK --set-mark 1
iptables -A POSTROUTING -t nat -o tun0 -p udp --dport 161 -j SNAT --to 10.8.0.2

だから私はtcpとudp接続をテストしており、次のように表示されます。

  • リモート側では、すべてがうまく機能し、パケットはゲートウェイeth0に送り返されます。
  • ゲートウェイでは、パケットはVPNトンネル(tun0)に戻されます。
  • パケットが送信されるlocalhostで、パケットがtsharkの10.8.0.2(tun0)に到着した後に消える様子を表示します。ローカルホストはTCP再送信を実行するか、UDPパケットを再送信します。

Wiresharkはパケットキャプチャを確認しましたが、すべてのポートが正しいため、すべてのトランスポートに同じランダムなダイナミックポートを使用します。私も成功していないままlocalhostでSNATの代わりに仮面舞踏会を試しました。 DNATを使用して成功しないままパケットを127.0.0.1にリダイレクトしようとしましたが、わかりません。おそらく何かが間違っているようです。

このパケットが tun0 の後に消えるのはなぜですか?私の入力チェーンは現在すべてを許可します。 sysctl.confで興味のない新しい「機能」を有効または無効にする必要がありますか?

ありがとう

ベストアンサー1

私のルールが正しい

解決策:

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; done
echo 1 > /proc/sys/net/ipv4/route/flush 

今、すべてがうまくいきます。各ifaceでこの機能を無効にする必要があります。 「all」オプションは正しく機能しません。

おすすめ記事