CentOSにfirewallを設定してhttpとhttpsのポートを開放する
firewall の設定を始める前に CentOS 自体のバージョンを最新にする。
yum update
以降はすべて root 権限で行うとする。root 以外のユーザーは sudo をつけること。
firewalld の起動
firewall のサービスは firewalld と d がついている。まずは firewalld の自動起動を設定する。
systemctl enable firewalld
firewalld を起動する。
systemctl start firewalld
起動したかどうかは、次のコマンドで確認できる。
systemctl status firewalld
firewalld の設定
デフォルトの firewalld は http などのポートを許可していない。firewalld が許可するポートは
firewall-cmd --list-all-zones
で確認する。例えば下のようになる。
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
デフォルトでは http がない。services: dhcpv6-client ssh に注意しよう。http を許可するには
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
とする。また firewall-cmd --list-all-zones でポートを確認しよう。
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh http https
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
services: dhcpv6-client ssh http https からわかるように、http と https が追加されている。
iptables について
CentOS は 7 以降で iptables を利用しない。iptables の代わりに firewalld を使う。