Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.9. ポート転送

firewalld を使用すると、システムで特定のポートに到達する着信トラフィックが、選択した別の内部ポートまたは別のマシンの外部ポートに配信されるようにポートのリダイレクトを設定できます。

5.9.1. リダイレクトするポートの追加

あるポートから別のポートまたは別のアドレスにトラフィックをリダイレクトする前に、パケットが到達するポート、使用されるプロトコル、リダイレクト先の 3 つを確認しておく必要があります。
ポートを別のポートにリダイレクトする場合は、次のコマンドを実行します。
~]# firewall-cmd --add-forward-port=port=port-number:proto=tcp|udp|sctp|dccp:toport=port-number
別の IP アドレスで、別のポートにポートをリダイレクトする場合は、次のコマンドを実行します。
  1. 転送するポートを追加します。
    ~]# firewall-cmd --add-forward-port=port=port-number:proto=tcp|udp:toport=port-number:toaddr=IP
  2. マスカレードを有効にします。
    ~]# firewall-cmd --add-masquerade

例5.1 同一マシンで TCP ポート 80 からポート 88 へのリダイレクト

ポートをリダイレクトするには、以下を行います。
  1. TCP トラフィックに対して、ポート 80 からポート 88 へリダイレクトします。
    ~]# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=88
  2. 新しい設定を永続化します。
    ~]# firewall-cmd --runtime-to-permanent
  3. そのポートがリダイレクトされていることを確認します。
    ~]# firewall-cmd --list-all 

5.9.2. リダイレクトしているポートの削除

リダイレクトしているポートを削除するには、次のコマンドを実行します。
~]# firewall-cmd --remove-forward-port=port=port-number:proto=<tcp|udp>:toport=port-number:toaddr=<IP>
別のアドレスにリダイレクトした転送ポートを削除するには、以下を実行します。
  1. 転送したポートを削除するには、以下を行います。
    ~]# firewall-cmd --remove-forward-port=port=port-number:proto=<tcp|udp>:toport=port-number:toaddr=<IP>
  2. マスカレードを無効にするには、次のコマンドを実行します。
    ~]# firewall-cmd --remove-masquerade
注記
この方法を使用するポートのリダイレクトは、IPv4 ベースのトラフィックでのみ機能します。IPv6 リダイレクト設定には、リッチルールを使用する必要があります。詳細は、「リッチランゲージ構文を使用した複雑なファイアウォールルールの設定」 を参照してください。
外部システムにリダイレクトするには、マスカレードを有効にする必要があります。詳細は、「IP アドレスのマスカレードの設定」 を参照してください。

例5.2 同じマシンで TCP ポート 88 に転送されるポート 80 の削除

ポートのリダイレクトを削除するには、以下を行います。
  1. リダイレクトしたポートの一覧を表示します。
    ~]# firewall-cmd --list-forward-ports 
    port=80:proto=tcp:toport=88:toaddr=
  2. ファイアウォールからリダイレクトしたポートを削除します。
    ~]# firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=88:toaddr=
  3. 新しい設定を永続化します。
    ~]# firewall-cmd --runtime-to-permanent