firewalldの設定(CentOS7)

CentOS6まではファイアウォールとしてiptablesを利用してきました。
CentOS7でもこのiptablesは利用できますが、新たにfirewalldというソフトウェアが導入されました。
メンテナンスもしやすいので、このfirewalldを利用します。

1. iptablesの停止

firewalldはiptablesとは同時に利用ができません。
そこで、iptablesがインストールされている場合は、これを停止させる必要があります。
# systemctl stop iptables.service
# systemctl disable iptables.service

2. firewalldの設定

(1) インストール
# yum install firewalld

(2) firewalldの起動/停止
■起動
# systemctl start firewalld.service
■停止
# systemctl stop firewalld.service
■自動起動設定
# systemctl enable firewalld.service

(3) 必要なサービス/ポートを追加
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public --permanent
# firewall-cmd --add-service=smtp --zone=public --permanent
# firewall-cmd --add-service=pop3 --zone=public --permanent
# firewall-cmd --add-service=imap --zone=public --permanent
# firewall-cmd --add-port=587/tcp --zone=public --permanent
※「--permanent」を追加しないとサーバ再起動時に元に戻ってしまいます。

(4) 特定のIPのみアクセス許可
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="xxxx.xxxx.xxxx.xxxx" service name="http" accept"
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="xxxx.xxxx.xxxx.xxxx" service name="https" accept"

(5) 特定のポートをIP制限する場合
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="xxxx.xxxx.xxxx.xxxx" port protocol="tcp" port="14942-14943" accept"

(6) サービス/ポートを削除
# firewall-cmd --remove-service=smtp --zone=public --permanent

(7) 設定の再読み込み
設定を変更したら、必ず実行します。
# firewall-cmd --reload

(8) 設定されているサービス/ポートの一覧表示
# firewall-cmd --list-all --zone=public


最終更新:2021年10月20日 15:26