【CentOS Stream 9】Firewalldの基本操作

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

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

 

Firewalldの自動起動を設定する

# 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を起動する

# systemctl start firewalld

 

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

# firewall-cmd --get-default-zone
public
#

 

現在の設定を表示する

# 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:
#

 

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

# 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:

(途中省略)

#

 

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

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

 

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

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

 

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

# 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:

 

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

# 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ファイルを保存します。

# 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(例)を追加する

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

 

http(例)を削除する

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

 

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

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

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

 

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

# 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(例)を追加する

# firewall-cmd --add-port=475/tcp
success
# firewall-cmd --list-port
475/tcp
#

 

TCP 475(例)を削除する

# firewall-cmd --remove-port=465/tcp
success
# firewall-cmd --list_port

#

 

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

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

echo-request(例)を追加する

# firewall-cmd --add-icmp-block=echo-request
success
#  firewall-cmd --list-icmp-blocks
echo-request
#

 

echo-request(例)を削除する

# firewall-cmd --remove-icmp-block=echo-request
success
# firewall-cmd --list-icmp-blocks

#

 

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

# 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
#

 

設定を反映する

# firewall-cmd --reload

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

コメント

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