Firewalldでファイアウォールを制御する手順を記載します。
Table of Contents
1 Firewalldのインストール
firewalldパッケージをインストールします。
$ sudo yum install firewalld $ sudo systemctl enable firewalld $ sudo systemctl start firewalld
2 ルールの追加
–add-portオプションあるいは–add-serviceオプションでルールを追加します。–permanentオプションがない場合は一時的にルールを反映します。
$ sudo firewall-cmd --add-port=80/tcp $ sudo firewall-cmd --add-service=http
–add-serviceオプションで指定できる引数は/usr/lib/firewalld/services/*のファイル名です。
$ sudo cat /usr/lib/firewalld/services/http.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>WWW (HTTP)</short> <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description> <port protocol="tcp" port="80"/> </service>
–permanentオプションで恒久的にルールを反映します。ただし、ルールの追加後にfirewall-cmd –reloadを実行しないと反映されません。
$ sudo firewall-cmd --add-port=80/tcp --permanent $ sudo firewall-cmd --add-service=https --permanent $ sudo firewall-cmd --reload
3 ルールの表示
–list-allオプションですべてのルールを表示します。
$ sudo firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client https ssh ports: 80/tcp protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules:
–list-portsで–add-portで追加されたルールを表示します。
$ sudo firewall-cmd --list-ports 80/tcp
–list-servicesで–add-serviceで追加されたルールを表示します。
$ sudo firewall-cmd --list-services dhcpv6-client ssh https
4 ルールの削除
–remove-portオプションあるいは–remove-serviceオプションでルールを削除します。–permanentオプションがない場合は一時的にルールを反映します。
$ sudo firewall-cmd --remove-port=80/tcp $ sudo firewall-cmd --remove-service=http
–permanentオプションで恒久的にルールを反映します。ただし、ルールの追加後にfirewall-cmd –reloadを実行しないと反映されません。
$ sudo firewall-cmd --remove-port=80/tcp --permanent $ sudo firewall-cmd --remove-service=https --permanent $ sudo firewall-cmd --reload