firewalldは、Linuxにファイアウォールを実装するサービスです。
firewalldでは、2種類の方法でファイアウォールのルールを登録できます。
種類 | 説明 |
ランタイムルール | メモリ上にルールが保存され、firewalldのリスタートでルールは消去されます。 |
パーマネントルール | ルールはファイル(/etc/firewalld/zones配下)に保存され、firewalldのリスタートでファイルからルールが読み込まれメモリに展開されます。 |
ゾーンに設定されているサービス確認
ゾーンに設定されているサービスを確認します。
以下の結果では、sshとdhcp6-clientのサービスがルールとして許可されています。
$ sudo firewall-cmd –-list-services -–zone=public -–permanent ssh dhcpv6-client
直接ファイルを見ても確認することができます。
$ sudo cat /etc/firewalld/zones/public.xml <?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="ssh"/> <service name="dhcpv6-client"/> </zone> $
ゾーンに設定されているサービス追加
登録可能なサービスの一覧を確認します。
[root@host-172-16-2-103 ~]# firewall-cmd --get-services RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nfs3 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server [root@host-172-16-2-103 ~]#
サービスを追加します。
[root@host-172-16-2-103 ~]# firewall-cmd --add-service=http --zone=public --permanent success [root@host-172-16-2-103 ~]#
登録されているサービスを確認します。
[root@host-172-16-2-103 ~]# firewall-cmd --list-services --zone=public --permanent ssh dhcpv6-client http [root@host-172-16-2-103 ~]#
リロードし、設定を反映します。
[root@host-172-16-2-103 ~]# firewall-cmd --reload success [root@host-172-16-2-103 ~]#
ゾーンに設定されているポート番号確認
ゾーンに設定されているポート番号を確認します。
$ sudo firewall-cmd --list-port --zone=public --permanent 5900-5999/tcp $
ゾーンへのポート番号追加
ゾーンにポート番号を追加します。
$ sudo firewall-cmd --add-port=5900-5999/tcp --permanent success $
ゾーンに設定されているポート番号削除
ゾーンに設定されているポート番号を削除します。
$ sudo firewall-cmd --remove-port=5900-5999/tcp --zone=public --permanent success $
ファイアウォールのログ出力
ログ出力の状態を確認します。無効化された状態が確認できます。
$ sudo firewall-cmd --get-log-denied off $
ファイアウォールで遮断されたパケットをログに出力されるように設定します。
$ sudo firewall-cmd --set-log-denied=all success $
ファイアウォールの設定をリロードし反映します。
$ sudo firewall-cmd --reload success $
ファイアウォールの出力ログ確認
ファイアウォールのログはデフォルトでは、/var/log/messagesに出力されます。
リアルタイムに出力ログを確認します。
$ sudo tail -F /var/log/messages Oct 6 13:18:14 centos7 kernel: FINAL_REJECT: IN=br0 OUT= PHYSIN=eth0 MAC=52:54:00:39:5f:c7:52:54:00:c4:51:aa:08:00 SRC=192.168.24.112 DST=192.168.24.111 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=56787 DF PROTO=TCP SPT=40524 DPT=5000 WINDOW=29200 RES=0x00 SYN URGP=0 Oct 6 13:18:14 centos7 kernel: FINAL_REJECT: IN=br0 OUT= PHYSIN=eth0 MAC=52:54:00:39:5f:c7:52:54:00:c4:51:aa:08:00 SRC=192.168.24.112 DST=192.168.24.111 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=47662 DF PROTO=TCP SPT=40526 DPT=5000 WINDOW=29200 RES=0x00 SYN URGP=0 Oct 6 13:18:24 centos7 kernel: FINAL_REJECT: IN=br0 OUT= PHYSIN=eth0 MAC=52:54:00:39:5f:c7:0c:9d:92:7f:d0:76:08:00 SRC=192.168.24.110 DST=192.168.24.111 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=219 DF PROTO=TCP SPT=54476 DPT=80 WINDOW=29200 RES=0x00 SYN URGP=0