CentOS7 で使用するファイアウォールの基本的な使い方についての記載します。
firewallにはゾーンという概念がある。
デファルトで9つほど用意されている特に指定しなければデフォルトゾーンはpublicになる。(block,dmz,drop,external,home,internal,public,trusted,work)
基本操作
# firewall-cmd [オプション...]
ヘルプ表示 firewall-cmd --help バージョン表示 firewall-cmd --version
設定内容の確認
許可されているサービスを表示する
# firewall-cmd --get-services
現在の設定を表示(publicゾーン)
# firewall-cmd --list-all
定義されている全てのゾーンを表示
# firewall-cmd --list-all-zones
dmzゾーンの設定を表示
# firewall-cmd --list-all --zone=dmz
許可するサービスの追加
許可には大きく2通りある。実行時・永続(GUIの設定名称)の2種類です。
実行時にするとOSが再起動すると設定がなくなります。また永続だとOSを再起動しても設定がなくなりません。
publicゾーンへhttpサービスを追加した例
実行時の追加
# firewall-cmd --add-service=http --zone=public
永続の追加
# firewall-cmd --add-service=http --permanent --zone=public # firewall-cmd --reload
永続設定の場合は、設定ファイルに書き込みするだけなので設定をリロードしないと現時点の設定がで繁栄されません。
※設定に成功すると「success」と表示されます。
※「public」の設定内容は、ファイル「/etc/firewalld/zones/public.xml」に保存されます。
その他の設定ファイルは、/usr/lib/firewalld/zones/ にあります。
ポートによるアクセス許可の設定
サービスを指定してアクセス許可以外にポートを指定することも可能です。
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload
指定のサービスが許可されたかを確認
# firewall-cmd --query-service=http --zone=public
許可されていたならば、「yes」と表示されます。
ゾーンの許可ルールから削除
# firewall-cmd --remove-service=http --zone=public
デフォルトゾーンを変更
通常デフォルトのゾーンはpublicです。そのデフォルトゾーンを変更します。
# firewall-cmd --set-default-zone=external