CentOs9 Firewallを設定する
CentOs9で、firewallの設定の方法をまとめて記載してます。Firewalldは、CentOs9のファイアーウォールを設定するサービスのことです。
環境
- OS CentOS Stream release 9
ポートの許可
恒久的にポート88を許可する
$ sudo firewall-cmd --add-port=88/tcp --zone=public --permanent
reloadしないと反映しません
$ sudo firewall-cmd --reload
設定したポート88を削除
$ sudo firewall-cmd --remove-port=88/tcp --zone=public --permanent
firewallで許可されているポートを一覧確認する
※「reload」して反映されていないものは、表示されません。
$ sudo firewall-cmd --list-ports --zone=public
88/tcp 5432/tcp 6379/tcp
恒久的のみ確認する場合は以下を実行します
$ sudo firewall-cmd --list-ports --zone=public --permanent
また、ポートを一括で追加する場合は、以下のように実行します。
$ sudo firewall-cmd --add-port={8082,8083}/tcp --zone=public --permanent
サービスの許可
恒久的にhttpsサービスを許可する
$ sudo firewall-cmd --add-service=https --zone=public --permanent
reloadで反映
$ sudo firewall-cmd --reload
httpsサービスを削除する
$ sudo firewall-cmd --remove-service=https --zone=public --permanent
reloadで反映する
$ sudo firewall-cmd --reload
firewallで許可されているービスを一覧確認する
$ sudo firewall-cmd --list-services --zone=public
恒久的のみ確認する場合は以下
$ sudo firewall-cmd --list-services --zone=public --permanent
登録可能サービス確認
登録可能なサービス名を一覧で確認するには以下のコマンドを実行します。
$ firewall-cmd --get-services
RH-Satellite-6 RH-Satellite-6-capsule amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit collectd condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger foreman foreman-proxy freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp galera ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-api kube-apiserver kube-control-plane kube-controller-manager kube-scheduler kubelet-worker ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nbd netbios-ns nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rquotad rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wireguard wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
IPアドレスの許可
恒久的にIPアドレスを指定して許可
※ここでは「192.168.1.0~192.168.1.255」まで許可してます。
$ sudo firewall-cmd --add-source=192.168.1.0/24 --zone=public --permanent
恒久的のみ確認する場合は以下
$ sudo firewall-cmd --reload
IPアドレスの拒否
恒久的にIPアドレスを指定して拒否
$ sudo firewall-cmd --add-source=192.168.1.0/24 --zone=drop --permanent
reloadで反映
$ sudo firewall-cmd --reload
デフォルトゾーンの設定確認
デフォルトゾーンの設定確認は、以下のコマンドで可能です。
デフォルトゾーンの確認
$ sudo firewall-cmd --list-all
デフォルトゾーンの恒久的のみ確認
$ sudo firewall-cmd --list-all --permanent
全てのゾーンの確認
$ sudo firewall-cmd --list-all-zones
activeなゾーンの確認
$ sudo firewall-cmd --get-active-zones
全てのゾーンの恒久的のみ確認
$ sudo firewall-cmd --list-all-zones --permanent
ゾーンの追加
ゾーンの追加は、以下のコマンドで可能です。
$ sudo firewall-cmd --new-zone=testzone --permanent
「/etc/firewalld/zones」に「testzone.xml」が追加されます。
ゾーンの削除
ゾーンの削除は以下となります。
$ sudo firewall-cmd --delete-zone=testzone --permanent
「/etc/firewalld/zones」にあった「testzone.xml」 がリネームされて「testzone.xml.old」となります。
ステータス確認
ステータスは、以下で確認できます。
$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-08-22 10:13:43 JST; 2 days ago
Docs: man:firewalld(1)
Main PID: 839 (firewalld)
Tasks: 4 (limit: 21898)
Memory: 44.2M
起動と停止
firewallを起動する場合と、停止する場合は、以下のコマンドを実行します。
起動
$ sudo systemctl start firewalld
停止
$ sudo systemctl stop firewalld
自動起動
マシン起動時に、自動起動を行う場合は「enable」を使用します。
有効化
$ sudo systemctl enable firewalld
無効化
$ sudo systemctl disable firewalld
状態確認
$ sudo systemctl is-enabled firewalld
バージョン確認
使用してるfirewallのバージョンは、以下で確認できます。
$ sudo firewall-cmd --version
1.0.0
ヘルプ
ヘルプを実行する場合は、以下となります。
$ firewall-cmd --help
設定ファイルを直接編集
「/etc/firewalld/zones」にある「public.xml」を直接編集して設定することも可能です。
TCP 80番ポートの通信許可をする場合<port protocol="tcp" port="80"/>
編集する前に、バックアップをとっておく場合は「cp」コマンドでコピーしておきます。
$ sudo cp /etc/firewalld/zones/public.xml{,.`date +%y%m%d_%H%M%S`}
編集後は、reloadすることで反映されます。
$ sudo firewall-cmd --reload
GUI
「firewall-config」をインストールするとGUIでfirewallの設定を行うことが可能です。
$ sudo dnf install firewall-config
インストールされていることが確認できます。
このソフトを使用すると、GUIからfirewallを設定することが可能です。
-
前の記事
Linux 表形式で出力する 2022.08.24
-
次の記事
Windowsバッチ 文字化けした場合の対処法 2022.08.24
コメントを書く