RHEL系(CentOS)
---
Firewalldサービスを起動して実際にポート設定に必要なコマンドを紹介します。
但し、コマンド実行はFirewallサービスが起動している必要があります。
これから説明する注意点を確認してから
Firewalldサービスを起動して設定コマンドを実行してください。
Firewallサービスを起動する前に注意すること
firewalldサービスを起動すると事前に用意されているゾーン(9種類)のいずれかに
設定されます。
デフォルトだと「public」ゾーンでサービスが開始されます。
※ゾーンは個別に作成することもできますが、今回は省略します。
9種類のゾーンについて注意すること
「tursted」ゾーン設定以外は、
Firewalldサービスを起動すると通信が拒否された状態でサービスが開始されます。
■補足情報
1.Firewalldサービスが起動してアクセスが拒否されても
・「コンソール接続できる」
・「SSH接続できるゾーンを設定する」
などの対策をおこなってから実施してください。
2.デフォルトで用意されている
ゾーン(public、dmz、work、home、internal、external)には
「SSH接続」がデフォルトで許可されています。
3.trustedはすべての通信が許可されています。
注意事項
1.Firewalldサービスを起動した瞬間に
・「リモート接続」
・「ネットワークを利用したサービス」
が利用できなくなります。
設定を確認してからFirewalldサービスを起動してください。
2.ネットワークを介して遠隔からサーバにアクセスしている場合
Firewalldサービスを起動した瞬間にアクセスできなくなります。
コンソールからの接続ができないと設定を元に戻せなくなるので
注意してください。
Firewalldサービスの起動設定については、下記の記事をご確認ください。

Firewallサービスの設定で利用するコマンド
設定確認コマンド
---
■デフォルト設定のゾーン確認
# firewall-cmd --get-default-zone
# firewall-cmd --list-all

---
■現在のアクティブゾーンを確認
# firewall-cmd --get-active-zones

---
■すべてのゾーン確認
# firewall-cmd --list-all-zones

---
■指定したゾーンの設定確認(ポリシー変更後の確認で利用)
例:trustedゾーンを指定した場合
# firewall-cmd --zone=trusted --list-all

---
■定義されているサービス一覧を確認
# firewall-cmd --get-services

設定変更コマンド
ゾーン(ZONE)設定変更
---
■デフォルトのゾーン変更
※firewalldサービス起動時のデフォルトゾーンを変更
例:trustedゾーンを指定した場合
# firewall-cmd --set-default-zone=trusted
■補足情報
1.デフォルト設定
/etc/firewalld/firewalld.confファイル
「DefaultZone=trusted」箇所を変更してくれるコマンドになります。
2.ファイルの直接修正も可能

---
■インターフェース(NIC)のゾーン変更
一時的に変更したい場合
※再起動したら設定がデフォルトゾーン設定に変更
# firewall-cmd --zone=trusted --change-interface=enp0s3
enp0s3:ifconfigで確認できるネットワークインターフェース名
恒久的に変更したい場合
※再起動しても設定したゾーン設定で起動
# firewall-cmd --zone=trusted --change-interface=enp0s3 --permanent
■補足情報
1.一時・恒久設定であってもコマンド実行した場合は即時反映となります。
2.インターフェースの設定では「firewall-cmd --reload」は不要
3./etc/sysconfig/network-scripts/ifcfg-XXファイル
「ZONE=trusted」を設定してくれるコマンドになります。
4.ファイルの直接修正も可能
但し、反映にはネットワークサービスの再起動が必要

恒久的なポリシー設定(/etc/firewalld/zone/)
設定変更を恒久的に反映させたい場合は「--permanent」オプションを指定する
※「--permanent」をつけないとサーバ再起動すると設定が元に戻ります。
「--permanent」オプション指定して実行したコマンドは「--reload」を
実行しないと反映されません。
「/etc/firewalld/zones/」内で設定情報を保持しています。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■ゾーン(ZONE)のターゲット(target)を変更する
publicゾーンのターゲットを「default(REJECT)」から「DROP」に変更
# firewall-cmd --zone=public --set-target=DROP --permanent
# firewall-cmd --reload
注意事項
1.ターゲット変更は必ず「--permanent」を設定して実行する
必要があります。
このオプションを設定しないとエラーとなり設定変更できません。
2.「--set-target=」は
「DROP」、「REJECT」、「ACCEPT」と大文字を指定
「default」と小文字を指定
しないとエラーになります。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■指定ゾーン(public)へhttpサービスを許可(利用許可の追加)する
# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --reload

---
■指定ゾーン(public)からhttpサービスをブロック(利用許可の削除)する
# firewall-cmd --zone=public --remove-service=http --permanent
# firewall-cmd --reload

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■特定IPからの指定ポートだけを許可
192.168.11.6からのみ80/tcpを許可する
# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.11.6" port protocol="tcp" port="80" accept" --permanent
# firewall-cmd --reload

---
■特定IPからの指定ポートだけを許可した設定を解除(拒否)
192.168.11.6からのみ80/tcpを許可したものを解除(拒否)
# firewall-cmd --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.11.6" port protocol="tcp" port="80" accept" --permanent
# firewall-cmd --reload

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■特定IPからの指定ポートだけを拒否
192.168.11.6からのみ80/tcpを拒否する
# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.11.6" port protocol="tcp" port="80" drop" --permanent
# firewall-cmd --reload

---
■特定IPからの指定ポートだけを拒否した設定を解除
192.168.11.6からのみ80/tcpを拒否する設定を解除
# firewall-cmd --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.11.6" port protocol="tcp" port="80" drop" --permanent
# firewall-cmd --reload

■補足説明
1.「特定IPからの指定ポートだけを拒否」の利用用途としては
「firewall-cmd --zone=public --add-service=http」の設定で
「http(80/tcp)」を全体で許可していた場合に特定のIPからの
アクセスだけ「http(80/tcp)」を拒否することができます。
2.「アクション(最後に記載)」
accept:この通信を許可する
drop: この通信を拒否し、何も返さない
reject:この通信を拒否し、ICMPメッセージを返す
一時的なポリシー設定
「--permanent」オプションを指定しないので一時的な設定なります。
「firewall-cmd --reload」の実行は不要で即反映します。
---
■特定IPからのアクセスをすべて拒否
192.168.11.14からのすべてのアクセスを拒否
# firewall-cmd --zone=drop --add-source=192.168.11.14

---
■特定IPからのアクセスをすべて拒否する設定を解除
192.168.11.14からのすべてのアクセスを拒否する設定を解除
# firewall-cmd --zone=drop --remove-source=192.168.11.14

コメント