iptables:NATなしでパケットを別のIPにリダイレクトする

iptables:NATなしでパケットを別のIPにリダイレクトする

自宅の接続に複数のパブリックIPを持つために、複数のIPを持つVPSをリースし、openvpnサーバーとパブリックIPを必要とする自宅のすべてのサーバーを設定し、VPN接続を備えたDNAT / SNATを実行しています。 VPSからopenvpnを介して特定のパブリックIPに向かうトラフィックを自分のホームサーバーにリダイレクトします。

-A PREROUTING -d xxx.xxx.xxx.xxx/32 -j DNAT --to-destination 172.17.0.6
-A POSTROUTING -s 172.17.0.6/32 -j SNAT --to-source xxx.xxx.xxx.xxx

メールサーバー/ネットワークなどで1年以上こういうふうに動作してきたのですが…かなりカッコいいですね。

一つの問題があります。私のサーバーに着信するパケットはVPNサーバーのIPに関連付けられているため、IPベースのアクセスリストは利用できず、メールサーバーでRBLを使用することもできません。

NATなしでトラフィックをリダイレクトするようにiptableに指示する方法はありますか?

私のクライアントでは、デフォルトゲートウェイはVPNサーバーなので、とにかくパケットはVPNに戻ります。

ありがとう

答え1

ソースの代わりにターゲットを変更するには、「SNAT」ルールを削除します。

質問を注意深く読めず、申し訳ありません。

私のサーバーyyyyがxxxxをpingしていて、私のVPNサーバーに表示され、「ターゲットxxxxを172.17.0.6に送信し、私のホームサーバーからソースが172.17.0.1のパケットを受信します」としましょう。

DNATただソースではなく接続の宛先を変更します。表示されるソースが172.17.0.1の場合は、パケットに影響を与える問題に記載されていない他のSNATまたはMASQUERADEルールが必要です。ホームサーバー接続に影響を与えないようにルールを削除するか、その範囲を制限する必要があります。

追加のサポートが必要な場合は、関連していると思われるルールだけでなく、サーバーの完全なiptablesルールのリストも公開してください。

私のVPNに戻って再び奪われますyyyy

いいえ、(疑似)接続の最初のパケットを処理するときに確立されたステータストレースを使用して逆変換を実行します。 iptables natテーブルは、接続の最初のパケットのみを処理します。

関連情報