Irohabook
0
1574

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 を使う。

次の記事

CentOS