web-dev-qa-db-ja.com

IptablesとのTCP接続の転送

私はrinetdと同じようにこれらの接続をルーティングしたいいくつかのIPアドレスからサーバーへの接続を受け取りますが、IPに基づいて、指定されたホストに接続するための接続が行われます。

ちょうどこのような:

IP 10.10.12.1    => CONNECTS TO MY SERVER => MY SERVER REDIRECTS IT TO 82.12.12.1
IP 10.10.12.2    => CONNECTS TO MY SERVER => MY SERVER REDIRECTS IT TO 81.121.12.10

この機能を実現するために、独自のデーモンを作成する必要はありますか?

2
opc0de

iptablesでできること:

Sudo iptables -t nat -A PREROUTING -s 10.10.12.1 -j DNAT --to 82.12.12.1
Sudo iptables -t nat -A POSTROUTING -s 10.10.12.1 -d 82.12.12.1 -j MASQUERADE

最初のコマンドは、パケットの宛先アドレスを変更し、外部ホストにリダイレクトします。 2番目のコマンドは送信元アドレスを変更するため、外部ホストはサーバーに応答を送信できます。

おそらく、特定のポートを宛先とするパケットのみをリダイレクトしたいでしょう。 10.10.12.1がTCPポート80および1234を介してのみ82.12.12.1と通信する場合、最初のiptablesコマンドは次のようになります。

Sudo iptables -t nat -A PREROUTING -s 10.10.12.1 -p tcp -m multiport --destination-ports 80,1234 -j DNAT --to 82.12.12.1
4
Eric Carvalho