【CentOS Stream 9】Firewalldの基本操作

この記事は約20分で読めます。

Firewalld の基本操作のまとめです。

Firewalldにおける各種サービスの定義はゾーンに対して設定します。
設定したゾーンとネットワークインターフェイスを関連付けることで設定が有効となります。

 

Firewalldの自動起動を設定する

Bash
systemctl enable firewalld

Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service  /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service  /usr/lib/systemd/system/firewalld.service.

 

Firewalldを起動する

Bash
systemctl start firewalld

 

デフォルトゾーンを表示する

Bash
firewall-cmd --get-default-zone
public

 

現在の設定を表示する

Bash
firewall-cmd --list-all

public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

 

定義されている全てのゾーンを表示する

Bash
firewall-cmd --list-all-zones

block
target: %%REJECT%%
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

(途中省略)

 

ゾーンを指定して許可されているサービスを表示する

Bash
firewall-cmd --list-service --zone=external
ssh

 

デフォルトゾーンを変更する場合

Bash
firewall-cmd --set-default-zone=external
success

 

特定のインターフェイスのゾーンを変更する

Bash
firewall-cmd --change-interface=ens33 --zone=external
success

firewall-cmd --list-all --zone=external
external (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh
ports: protocols:
forward: yes
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:

 

定義されているサービスの一覧を表示する

Bash
firewall-cmd --get-services

RH-Satellite-6 RH-Satellite-6-capsule afp amanda-client amanda-k5-client amqp amqps apcupsd audit ausweisapp2 bacula bacula-client bareos-director bareos- file daemon bareos-storage bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin -testnet-rpc bittorrent-lsd ceph ceph-exporter ceph-mon cfengine checkmk-agen t cockpit collectd condor-collector cratedb ctdb dds dds-multicast dds-unicas t dhcp dhcp v6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-s warm dropbox-lansync elasticsearch etcd-client etcd-server finger foreman for eman-proxy freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-t rust ftp galera ganglia-client ganglia-master git gpsd grafana gre high-avail ability http http3 https ident imap imaps ipfs ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kp rop kshell kube-api kube-apiserver kube-control-plane kube-control-plane-secu re kube-controller-manager kube-controller-manager-secure kube-nodeport-servi ces kube-scheduler kube-scheuler-secure kube-worker kubelet kubelet-readonly kubelet-worker ldap ldaps libvirt libvirt-tls lightning-network llmnr llmnr-c lient llmnr-tcp llmnr-udp managesieve matrix mdns memcache minidlna mongodb m osh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nbd nebula netbios-ns netd ata-dashboard nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-sto rageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s p ostgresql privoxy prometheus prometheus-node-exporter proxy-dhcp ps2link ps3n etsrv ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc -bind rquotad rsh rsyncd rtsp salt-master samba samba-client samba-dc sane si p sips slp smtp smtp-submission smtps snmp snmptls snmptls-trap snmptrap spid eroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui syncthing-relay synergy syslog syslog-tls telnet tentacle tftp tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server warpin ator wbem-http wbem-https wireguard ws-discovery ws-discovery-client ws-disco very-tcp ws-discovery-udp wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server zerotier

 

定義ファイルの場所

定義されているサービスの定義ファイルは以下の場所に保管されています。
独自に定義を追加する場合は当該ディレクトリにXMLファイルを保存します。

Bash
ls /usr/lib/firewalld/services

RH-Satellite-6-capsule.xml  galera.xml            memcache.xml      sane.xml
RH-Satellite-6.xml          ganglia-client.xml    minidlna.xml      sip.xml
afp.xml                     ganglia-master.xml    mongodb.xml       sips.xml
amanda-client.xml           git.xml               mosh.xml          slp.xml
amanda-k5-client.xml        gpsd.xml              mountd.xml        smtp-submission.xml

(途中省略)

 

サービスを追加する

http(例)を追加する

Bash
firewall-cmd --add-service=http
success
firewall-cmd --list-service
cockpit dhcpv6-client http ssh

 

http(例)を削除する

Bash
firewall-cmd --remove-service=http
success
firewall-cmd --list-service
cockpit dhcpv6-client ssh

 

恒久的に追加する [–permanent]

恒久的に変更する場合は [–permanent] または [runtime-to-permanent] オプションを指定します。
上記オプションを指定しない場合はシステムを再起動すると設定は元に戻ります。

Bash
firewall-cmd --add-service=http --permanent
success
firewall-cmd --list-service
cockpit dhcpv6-client ssh

 

恒久的に追加する : [–runtime-to-permanent]

Bash
firewall-cmd --add-service=http
success

firewall-cmd --list-service
cockpit dhcpv6-client http ssh

firewall-cmd --runtime-to-permanent
success

 

ポートを追加/削除する

恒久的に変更する場合は上記の例と同様に –permanent または –runtime-to-permanent オプションを指定します。

TCP 475(例)を追加する

Bash
firewall-cmd --add-port=475/tcp
success

firewall-cmd --list-port
475/tcp

 

TCP 475(例)を削除する

Bash
firewall-cmd --remove-port=465/tcp
success

firewall-cmd --list_port

 

ICMPのタイプを追加/削除する

ICMPとは「Internet Control Message Protocol」の略で、インターネット プロトコル(IP)による通信で発生したエラーの通知や、通信相手の動作確認、通信制御用メッセージのやり取りに使用されるプロトコルです。

echo-request(例)を追加する

Bash
firewall-cmd --add-icmp-block=echo-request
success

firewall-cmd --list-icmp-blocks
echo-request

 

echo-request(例)を削除する

Bash
firewall-cmd --remove-icmp-block=echo-request
success

firewall-cmd --list-icmp-blocks

 

指定可能なICMPタイプの一覧を表示する

Bash
firewall-cmd --get-icmptypes
address-unreachable bad-header beyond-scope communication-prohibited destinat ion-unreachable echo-reply echo-request failed-policy fragmentation-needed ho st-precedence-violation host-prohibited host-redirect host-unknown host-unrea chable ip-header-bad neighbour-advertisement neighbour-solicitation network-p rohibited network-redirect network-unknown network-unreachable no-route packe t-too-big parameter-problem port-unreachable precedence-cutoff protocol-unrea chable redirect reject-route required-option-missing router-advertisement rou ter-solicitation source-quench source-route-failed time-exceeded timestamp-re ply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redi rect tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-trans it unknown-header-type unknown-option

 

設定を反映する

Bash
firewall-cmd --reload

firewall-cmd --list-service
cockpit dhcpv6-client http ssh

コメント

タイトルとURLをコピーしました