CentOS7からはこれまでのiptablesに代わって firewalld が導入されています。設定方法・コマンドも変わっていますのでよく使うものをまとめます。
基本コマンド
まずはここから。基本的な起動や自動起動、反映、設定確認を行うコマンドです。
起動
1 |
# systemctl start firewalld |
終了
1 |
# systemctl stop firewalld |
自動起動
1 |
# systemctl enable firewalld |
自動起動解除
1 |
# systemctl disable firewalld |
設定反映
1 |
# firewall-cmd --reload |
設定確認(以下はデフォルトの設定内容)
1 2 3 4 5 6 7 8 9 10 |
# firewall-cmd --list-all public (default, active) interfaces: ens32 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: |
設定確認(全てのzone)
1 |
# firewall-cmd --list-all-zones |
設定確認(zoneを指定)
1 |
# firewall-cmd --list-all --zone=xxxxx |
設定コマンド
サービス名を指定して許可(httpサービスを例に記載)
1 |
# firewall-cmd --zone=public --add-service=http --permanent |
サービス名を指定して拒否
1 |
# firewall-cmd --zone=public --remove-service=http --permanent |
ポート番号を指定して許可
1 |
# firewall-cmd --zone=public --add-port=80/tcp --permanent |
ポート番号を指定して拒否
1 |
# firewall-cmd --zone=public --remove-port=80/tcp --permanent |
行末の --permanent をつけないで実行した場合は、即時反映されますが、firewalldの再起動やreloadで元に戻ってしまいます。付けて実行した場合(↑例の場合)は、恒久的な設定となるが、再起動やreloadを実行しないと反映されない。
そのため、firewalldの再起動やreloadをしたくない場合は、--permanent を付けないで実行した後に、--permanent を付けて再度実行することで恒久的な反映が可能です。
以上です。
↓↓↓ 持っていると便利な一冊。