web-dev-qa-db-ja.com

IPTablesルールをFirewalldルールに変換してリダイレクトする

私はネットワーク関連の知識があまりなく、firewalldの動作を理解するのに苦労しています。

RESTサービスを開発していて、実際にはポート8080でリッスンしていて、ポート80で8080にリダイレクトされるリクエストを送信できるようにしたいと考えています。

CentOS 6でそれを行うために、私はiptablesとそのようなルールを使用しました:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

CentOS 7に移行しましたが、iptablesも存在し、引き続き機能します。firewalldがデフォルトのファイアウォールソフトウェアであるため、そのソフトウェアの使用を開始する必要があると思います...実際、どのように機能するのか理解できません。私の単一のiptablesルールをファイアウォールのあるルールに変換する方法。私はfirewalldがiptablesルールを「理解」していることを知っています(実際、私はこのルールをfirewalldで使用して機能し続けています)が、その方法を知りたいので、このルールも永続的にしたいと思います。

ありがとう

1
Cheloute

使用する --add-forward-portポート転送を設定します。

から firewall-cmd manページ:

       --add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]
       [--timeout=timeval]
           Add the IPv4 forward port for zone. If zone is omitted, default
           zone will be used. This option can be specified multiple times. If
           a timeout is supplied, the rule will be active for the specified
           amount of time and will be removed automatically afterwards.
           timeval is either a number (of seconds) or number followed by one
           of characters s (seconds), m (minutes), h (hours), for example 20m
           or 1h.

           The port can either be a single port number portid or a port range
           portid-portid. The protocol can either be tcp, udp, sctp or dccp.
           The destination address is a simple IP address.

したがって、次のようなことを行います。

firewall-cmd --zone=whatever --add-forward-port=port=80:proto=tcp:toport=8080

そして、それがあなたが望むことをするなら、 それを永続的にする

1
Michael Hampton

iptablesはデフォルトのファイアウォールツールであり、すべてのLinuxバージョンにインストールされています。 Firewalldは便利なツールなので、ユーザーはそれを知らなくても「iptablesルール」を操作できます。事前定義されたゾーンとサービス(特定のポートに自動的に変換される)をその場で取得できるため、firewall-cmd ...コマンドを使用するのは非常に簡単なようです。再起動や不便を感じることなく、firewalld.serviceをリロードできます。

CentOS7でもiptablesを使用できますが、firewalldを無効にする必要があります(さらにマスクする必要があります)。

systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld

Iptables-servicesとiptables-utilsをインストールします。

yum install -y iptables-services iptables-utils

これで、CentOS7でiptablesを使用する準備が整いました

再起動後も存続するために構成を保存する必要がある場合:

iptables-save >/etc/sysconfig/iptables

また、iptablesルールのシーケンスを変更する場合は、ファイル(/ your_fileなど)を編集してから、次の操作を実行できます。

iptables-restore </your_file

ルールが復元されます。

それがあなたを助けることを願っています

0
ikoustou