Linuxローカルファイアウォールのポート変換 - CentOS 6のiptables

Linuxローカルファイアウォールのポート変換 - CentOS 6のiptables

一部のファイアウォールモデルではポート変換が可能です。いくつかのプロトコルを使用して、ある受信(受信)ポートを別のポートに変更することを意味します。また、内部ポートを元のポートの一部の外部ポート(アウトバウンドトラフィック)に戻すこともできます。

以下の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コマンドを24LANが$ physicalServerIP / 24の場合に変更できます。

おすすめ記事