
一部のファイアウォールモデルではポート変換が可能です。いくつかのプロトコルを使用して、ある受信(受信)ポートを別のポートに変更することを意味します。また、内部ポートを元のポートの一部の外部ポート(アウトバウンドトラフィック)に戻すこともできます。
以下のDMZ外部ファイアウォールモデル。 DMZファイアウォールを使用するのではなく、iptablesを使用してこれらすべてのタスクがサーバーで直接発生したいとします。 CentOS 6サーバーでこれを行うことを許可するコマンドは何ですか?
DMZネットワークルールモデル:
TCPトラフィックがあり、パブリックポートが8082で、内部ポートが8081であるとします。たとえば、DMZのTomcat(クライアント)は、外部DMZファイアウォールの外側にポート8081にTCPパケットを送信し、インターネットを介して8082にいくつかのパブリックIPに送信されます。逆に、正規IPの要求が8082の同じサーバーに送信されると仮定すると、そのサーバーのDMZに入ると、ポートは8081に変わります。
- パブリックポート = 8082
- 内部ポート = 8081
iptablesネットワークルールモデル:
- サーバー外部ポート = 8082
- Tomcat はポート = 8081 の物理サーバーで TCP 要求を送受信しています。
答え1
解決策は、iptables
定義されたNATルールを使用することです。
この例では、$physicalServerIP(ローカルIP)と$ publicIP(パブリックIP)を参照します。
ポート8081のサーバーに接続しようとする試みが実際にポート8082のサーバーに移動するようにTomcatをリダイレクトするには($ physicalServerIPにあると仮定):
iptables -t nat -A PREROUTING -p tcp -s $physicalServerIP --dport 8081 -j REDIRECT --to-port 8082
ポート8082の$ publicIPに到着する受信要求は、ポート8081の$ physicalServerIPに送信できます。
iptables -t nat -A PREROUTING -d $publicIP -p tcp -m tcp --dport 8082 -j DNAT --to-destination $physicalServerIP:8081
以前のNATを完了するには、$ physicalServerIPからのパケットをパブリックインターフェイスからNATを介して送信(返却)するように指示します。
iptables -t nat -A POSTROUTING -s $physicalServerIP/32 -j SNAT --to-source $publicIP
このアプローチを念頭に置いて、LAN全体がNATを通過するようにするには、前の32
コマンドを24
LANが$ physicalServerIP / 24の場合に変更できます。
答え2
次のポートマッピングコマンドを試してください。 8082で接続を確立し、内部的にポート8081にマッピングするのに役立ちます。
iptables -t nat -I プリセット -p tcp --dport 8082 -j REDIRECT --to-ports 8081