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