私はネットワーク関連の知識があまりなく、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で使用して機能し続けています)が、その方法を知りたいので、このルールも永続的にしたいと思います。
ありがとう
使用する --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
そして、それがあなたが望むことをするなら、 それを永続的にする 。
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
ルールが復元されます。
それがあなたを助けることを願っています