CentOS8には標準でファイアウォールとしてfirewalldがインストールされています。サービスの起動方法から設定方法まで紹介します。
サービス起動、停止方法 サービス確認方法
ファイアウォール サービスの状態確認方法
ファイアウォールのサービスの現在の状態は systemctl status firewalld で確認することが出来ます。(デフォルトは起動しています。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[root@centos8 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor p> Active: active (running) since Sat 2020-03-07 15:21:01 JST; 33s ago Docs: man:firewalld(1) Main PID: 790 (firewalld) Tasks: 2 (limit: 5047) Memory: 37.3M CGroup: /system.slice/firewalld.service └─790 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork -> 3月 07 15:21:00 centos8.lab.server-network-note.net systemd[1]: Starting firew> 3月 07 15:21:01 centos8.lab.server-network-note.net systemd[1]: Started firewa> [root@centos8 ~]# |
Active :active (running) と表示されていたら起動中になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@centos8 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor p> Active: inactive (dead) since Sat 2020-03-07 15:23:57 JST; 2s ago Docs: man:firewalld(1) Process: 790 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (> Main PID: 790 (code=exited, status=0/SUCCESS) 3月 07 15:21:00 centos8.lab.server-network-note.net systemd[1]: Starting firew> 3月 07 15:21:01 centos8.lab.server-network-note.net systemd[1]: Started firewa> 3月 07 15:23:57 centos8.lab.server-network-note.net systemd[1]: Stopping firew> 3月 07 15:23:57 centos8.lab.server-network-note.net systemd[1]: Stopped firewa> [root@centos8 ~]# |
停止中は Active: inactive (dead) と表示されます。
firewalld サービス起動方法
1 |
systemctl start firewalld |
firewalld サービス停止方法
1 |
systemctl stop firewalld |
自動起動設定状態確認方法
自動起動設定方法は systemctl is-enabled firewalld で確認できます。
1 2 3 |
[root@centos8 ~]# systemctl is-enabled firewalld enabled [root@centos8 ~]# |
enabled と表示されていたら自動起動が設定されています。
自動起動設定方法
firewalld の自動起動は systemctl enable firewalld で設定できます。
1 2 3 4 |
[root@centos8 ~]# 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. [root@centos8 ~]# |
自動起動停止設定方法
firewalld の自動起動停止は systemctl disable firewalld で設定できます。
1 2 3 4 |
[root@centos8 ~]# systemctl disable firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@centos8 ~]# |
スポンサーリンク
firewalld 設定方法
恒久設定 --permanent 設定反映 --reload
firewalldの設定コマンドはオプションの --permanent を設定しないと一時的に設定になり再起動すると設定が消えてしまいます。設定反映させるには --reload を行う必要があります。
1 2 3 4 5 6 7 |
# 下記は service http を追加しています。 --permanent を指定することで再起動して設定を保持します。 [root@centos8 ~]# firewall-cmd --permanent --add-service=http success # 下記コマンドで設定を反映 [root@centos8 ~]# firewall-cmd --reload success [root@centos8 ~]# |
ゾーンの確認方法
fiwalld から「ゾーン」というグループ化したフィルタリングルールをインターフェイス毎に割り当てを行っています。インターフェイスがどのゾーンに属しているか以下のコマンドで確認することが出来ます。
1 2 3 4 |
[root@centos8 ~]# firewall-cmd --get-active-zones public interfaces: ens2 [root@centos8 ~]# |
ゾーンの設定を確認には下記コマンドで確認することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@centos8 ~]# firewall-cmd --zone=public --list-all public (active) target: default icmp-block-inversion: no interfaces: ens2 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@centos8 ~]# |
標準で用意されているゾーン
block | 受信パケットを拒否(送信元にICMPエラーまたはTCPリセットを返す) 送信パケットの戻り通信は許可される。 |
dmz | ファイアウォールのDMZ用に定義されているゾーン |
drop | 受信パケットを遮断 送信パケットの戻り通信は許可される。 |
external | ファイアウォールの外部ネットワークのインターフェイス用に定義されているゾーン |
home | 家庭用クライントPCとして定義されたゾーン |
internal | ファイアウォールの内部ネットワークのインターフェイス用に定義されているゾーン |
public | サーバーとして最低限必要な受信許可されているルール、全てのインターフェイスのデフォルのゾーン設定値 |
trusted | 全ての通信を許可するルール |
work | 業務要クライアントPCとして定義されたゾーン |
全てのゾーンの表示方法は下記コマンドで確認することが出来ます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[root@centos8 ~]# 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: dmz target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: / 省略 / [root@centos8 ~]# |
スポンサーリンク
ゾーンの設定変更
デフォルトのゾーンを変更するコマンドは下記です。
1 2 3 |
[root@centos8 ~]# firewall-cmd --set-default-zone=trusted success [root@centos8 ~]# |
インターフェイスのゾーンを変更するコマンドは下記です。
1 2 3 |
[root@centos8 ~]# firewall-cmd --change-interface=ens3 --zone=drop success [root@centos8 ~]# |
ゾーンの作成、削除
ゾーンの新規作成、削除は下記コマンドで実行できます。
1 2 3 4 5 6 7 |
#ゾーン test を新規作成 [root@centos8 ~]# firewall-cmd --new-zone=test --permanent success #ゾーン test を削除 [root@centos8 ~]# firewall-cmd --delete-zone=test --permanent success [root@centos8 ~]# |
ゾーンへのサービス追加・削除
ゾーンにサービスの追加、削除を実施するコマンドは下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# ゾーン public から サービス http を追加するコマンド [root@centos8 ~]# firewall-cmd --permanent --zone=public --add-service=http success #設定反映 [root@centos8 ~]# firewall-cmd --reload success #設定を反映されたことを下記コマンドで確認することが出来ます。 [root@centos8 ~]# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client http ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: # ゾーン public から サービス http を削除するコマンド [root@centos8 ~]# firewall-cmd --permanent --zone=public --remove-service=http success #設定反映 [root@centos8 ~]# firewall-cmd --reload success # 下記コマンドでhttpが削除されている [root@centos8 ~]# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@centos8 ~]# |
定義されているサービスの確認方法
追加したいサービスを確認するのには下記コマンドで実行できます。
1 2 3 4 |
#停止さているサービスを確認するコマンド [root@centos8 ~]# firewall-cmd --get-services RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns 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 proxy-dhcp ptp pulseaudio puppetmaster quassel radius redis rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tftp tftp-client 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 [root@centos8 ~]# |
ゾーンへのポート追加・削除
ゾーンに設定されているポート番号を指定して追加、削除するコマンドになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# ゾーン public に tcp 80 を追加するコマンド [root@centos8 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp success #設定を反映 [root@centos8 ~]# firewall-cmd --reload success #ports 80/tcp が追加されている。 [root@centos8 ~]# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client ssh ports: 80/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: # ゾーン public から tcp 80 を削除するコマンド [root@centos8 ~]# firewall-cmd --permanent --zone=public --remove-port=80/tcp success #設定反映 [root@centos8 ~]# firewall-cmd --reload success # 80/tcp が削除されている。 [root@centos8 ~]# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@centos8 ~]# |
接続元のIPアドレス追加・削除
特定のIPアドレスをサービスに対して接続ができます。例えば特定のアドレスを許可する場合はゾーンtrustedに割り当てることで実現できる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# ゾーン trusted に 192.168.0.0/24 を追加するコマンド [root@centos8 ~]# firewall-cmd --permanent --zone=trusted --add-source=192.168.0.0/24 success #設定を反映 [root@centos8 ~]# firewall-cmd --reload success #192.168.0.0/24 が追加されていることを確認コマンド [root@centos8 ~]# firewall-cmd --list-all --zone=trusted trusted (active) target: ACCEPT icmp-block-inversion: no interfaces: sources: 192.168.0.0/24 services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: #ゾーン trusted から 192.168.0.0/24 を削除するコマンド [root@centos8 ~]# firewall-cmd --permanent --zone=trusted --remove-source=192.168.0.0/24 success #設定反映 [root@centos8 ~]# firewall-cmd --reload success #ゾーン trusted から 192.168.0.0/24 が削除を確認コマンド [root@centos8 ~]# firewall-cmd --list-all --zone=trusted trusted target: ACCEPT icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@centos8 ~]# |
CentOS8 その他設定方法は下記ページからどうぞ
CentOS8 設定方法