5.9. ポート転送

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

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

あるポートから別のポートにトラフィックをリダイレクトする前に、パケットが到達するポート、使用されるプロトコル、リダイレクト先を確認しておく必要があります。
ポートを別のポートにリダイレクトするには、以下のコマンドを実行します。
~]# 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/mask
  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/mask>
別のアドレスにリダイレクトした転送ポートを削除するには、以下を行います。
  1. 転送したポートを削除するには、以下を行います。
    ~]# firewall-cmd --remove-forward-port=port=port-number:proto=<tcp|udp>:toport=port-number:toaddr=<IP/mask>
  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