
私のUbuntuコンピュータでポートのローカルリダイレクトを使用しようとしていますiptables
。透明プロキシに似ています。私のシステムをポート80に置き、リモートホストとポートにリダイレクトしたいすべてをキャプチャしたいと思います。
これを達成するためにNATおよび事前ルーティング機能を使用できますかiptables
?
答え1
次のiptables
ルールを試してください。
$ sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination IP:80
上記の内容は次のとおりです。
- NATテーブル()に次のルールを追加します
-t nat
。 -A
このルールはアウトバウンドトラフィック()に追加されます()OUTPUT
。- 私たちはTCPトラフィック()にのみ興味があります
-p tcp
。 - ターゲットポート80()のトラフィックにのみ興味があります
--dport 80
。 - 一致すると、DNAT(
-j DNAT
)にジャンプします。 - このトラフィックを別のサーバーのIP @ポート80(
--to-destination IP:80
)にルーティングします。
DNATとは何ですか?
DNAT
This target is only valid in the nat table, in the PREROUTING and OUTPUT
chains, and user-defined chains which are only called from those chains.
It specifies that the destination address of the packet should be modified
(and all future packets in this connection will also be mangled), and
rules should cease being examined.
引用する
答え2
特定の宛先ホストへのトラフィックのみを処理するように、これをより具体的に作成できます。たとえば、postfixエラーが発生し、キューのメッセージを古いIPアドレスに送信したい場合です。
iptables -t nat -A OUTPUT -p tcp -d {ONLY_TO_THIS_DESTINATION} --dport 25 -j DNAT --to-destination {NEW_IP}:25
答え3
これにより、ポートをすべてのIPアドレスに変換できます。ここで最も大きな違いは、このフィールドにIPアドレスがないことです--to-destination
。
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination :80