Rocky Linux 8
Sponsored Link

Firewalld : 基本操作2021/07/22

 
Firewalld の基本操作です。
Firewalld における各種サービスの定義はゾーンに対して設定します。
設定したゾーンとネットワークインターフェースを関連付けることで設定が有効となります。
[1] Firewalld を利用するには、サービスを起動しておく必要があります。
[root@dlp ~]#
systemctl enable --now firewalld

[2] デフォルトでは、以下のように [public] ゾーンがデフォルトゾーンとしてネットワークインターフェースに適用され、cockpit, dhcpv6-client, ssh サービスが許可されています。[firewall-cmd] コマンドで様々な操作を行う際に、適用先のゾーン指定 (--zone=***) を省略した場合は、このデフォルトゾーンに対して設定が適用されます。
# デフォルトゾーンを表示

[root@dlp ~]#
firewall-cmd --get-default-zone

public
# 現在の設定を表示

[root@dlp ~]#
firewall-cmd --list-all

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

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

[root@dlp ~]#
firewall-cmd --list-all-zones

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

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

[root@dlp ~]#
firewall-cmd --list-service --zone=external

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

[root@dlp ~]#
firewall-cmd --set-default-zone=external

success
# 特定のインターフェースのゾーンを変更 (*1)

[root@dlp ~]#
firewall-cmd --change-interface=enp1s0 --zone=external

success
[root@dlp ~]#
firewall-cmd --list-all --zone=external

external (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0
  sources:
  services: ssh
  ports:
  protocols:
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

# *1 : [change-interface] では [--permanent] を付加しても永続化されず再起動すると戻る

# 永続化する場合は [nmcli] を使用する

[root@dlp ~]#
nmcli connection modify enp1s0 connection.zone external

[root@dlp ~]#
firewall-cmd --get-active-zone

external
  interfaces: enp1s0
public
  interfaces: enp7s0
[3] 定義されているサービスの一覧を表示する。
[root@dlp ~]#
firewall-cmd --get-services

RH-Satellite-6 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 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-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql 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 tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

# 定義されているサービスの定義ファイルは以下の場所に保管されている

# 独自に定義を追加する場合は当該ディレクトリに XML ファイルを保存する

[root@dlp ~]#
ls /usr/lib/firewalld/services

amanda-client.xml        isns.xml                  redis-sentinel.xml
amanda-k5-client.xml     jenkins.xml               redis.xml
amqps.xml                kadmin.xml                RH-Satellite-6.xml
amqp.xml                 kdeconnect.xml            rpc-bind.xml
apcupsd.xml              kerberos.xml              rquotad.xml
audit.xml                kibana.xml                rsh.xml
.....
.....
ipp.xml                  pulseaudio.xml            xmpp-server.xml
ipsec.xml                puppetmaster.xml          zabbix-agent.xml
ircs.xml                 quassel.xml               zabbix-server.xml
irc.xml                  radius.xml
iscsi-target.xml         rdp.xml
[4] 許可するサービスを追加/削除する。
永続的に変更する場合は [--runtime-to-permanent] オプション または [--permanent] を指定する。
永続化オプションを指定しない場合は、システムを再起動すると設定は元に戻る。
# 例として [http] を追加する (設定は即時有効になる)

[root@dlp ~]#
firewall-cmd --add-service=http

success
# 例として [http] を削除する (設定は即時有効になる)

[root@dlp ~]#
firewall-cmd --remove-service=http

success
# [http] を恒久的に追加する (--runtime-to-permanent)

# 設定が即時に有効となるランタイムモードへ追加

[root@dlp ~]#
firewall-cmd --add-service=http

success
# 現在のランタイムモードで有効となっているルールを永続化モードへ追加

# ただし、この場合、永続化モードにのみ追加されていたが、

# 現在のランタイムモードには読み込まれていなかったサービス/ポートの設定は消失する

[root@dlp ~]#
firewall-cmd --runtime-to-permanent

success
# [http] を恒久的に追加する (--permanent)

# [--permanent] オプションを指定した場合、

# 設定はランタイムモードには追加されないため、設定は即時に有効にはならない

[root@dlp ~]#
firewall-cmd --add-service=http --permanent

success
# 永続化モードのルールをランタイムモードに読み込んで設定を有効化

# ただし、この場合、現在のランタイムモードに読み込まれていたが、

# 永続化モードには追加されていなかったサービス/ポートの設定は消失する

[root@dlp ~]#
firewall-cmd --reload

success
# ランタイムモードで有効なサービスを表示する

[root@dlp ~]#
firewall-cmd --list-service

cockpit dhcpv6-client http pop3 ssh
# 永続化モードに追加されているサービスを表示する

[root@dlp ~]#
firewall-cmd --list-service --permanent

cockpit dhcpv6-client http ntp ssh
[5] ポートを追加/削除する。
# 例として [TCP 465] を追加する

[root@dlp ~]#
firewall-cmd --add-port=465/tcp

success
[root@dlp ~]#
firewall-cmd --list-port

465/tcp
# 例として [TCP 465] を削除する

[root@dlp ~]#
firewall-cmd --remove-port=465/tcp

success
[root@dlp ~]#
firewall-cmd --list-port

 
[6] ICMP のタイプを追加/削除する。
# 例として [echo-request] を追加する

[root@dlp ~]#
firewall-cmd --add-icmp-block=echo-request

success
[root@dlp ~]#
firewall-cmd --list-icmp-blocks

echo-request
# 例として [echo-request] を削除する

[root@dlp ~]#
firewall-cmd --remove-icmp-block=echo-request

success
[root@dlp ~]#
firewall-cmd --list-icmp-blocks
# 指定可能な ICMP タイプの一覧を表示する

[root@dlp ~]#
firewall-cmd --get-icmptypes

address-unreachable bad-header beyond-scope communication-prohibited destination-unreachable echo-reply echo-request failed-policy fragmentation-needed host-precedence-violation host-prohibited host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement neighbour-solicitation network-prohibited network-redirect network-unknown network-unreachable no-route packet-too-big parameter-problem port-unreachable precedence-cutoff protocol-unreachable redirect reject-route required-option-missing router-advertisement router-solicitation source-quench source-route-failed time-exceeded timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redirect tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-transit unknown-header-type unknown-option
関連コンテンツ