サービスの定義ファイルは/usr/lib/firewalld/servicesに、XML形式のファイルで格納されています。CentOS 7では「http」「https」「ssh」などの主要なサービスはあらかじめ定義済みとなっています。
例えば、「sshの定義ファイル(ssh.xml)」の中身は以下の通りです。
# cat /usr/lib/firewalld/services/ssh.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>SSH</short> <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description> <port protocol="tcp" port="22"/> </service>
定義を個別に追加したい場合は、/etc/firewalld/servicesへ、記述フォーマットに沿ったXML形式のファイルを作成します。
例えば、「電子メールクライアントからのメール送信に使うポートである、サブミッションポート(TCP 587番ポート)を、submissionサービスとして登録する」場合は、以下のように作業します。
/etc/firewalld/services/配下に「submission.xml」ファイルを「#vi /etc/firewalld/services/submission.xml」で作成します。中身は以下の通りです。
<?xml version="1.0" encoding="utf-8"?> <service> <short>submission</short> <description>(サービスについての説明を書きます) </description> <port protocol="tcp" port="587"/> </service>
# firewall-cmd --reload success
正しく追加されたかを確認します。
# firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh submission telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https
sshとtelnetの間に、作業した「submission」が追加されていることが確認できました。
これまでのiptablesを用いたパケットフィルタリングでは、INPUT/OUTPUT/FORWARDそれぞれのチェインに対して、厳密な設定をする必要がありました。また、iptablesコマンドは、多くの設定オプションを正しく把握していないと設定が難しい課題がありました。
CentOS 7のFirewalldでは、iptablesでのパケットフィルタリング設定から管理方法が大きく変更されたことで、これまでiptablesでのパケットフィルタリングに慣れていたシステム管理者にとって、移行への障壁となっている部分があります。
しかし、Firewalldは「INPUT方向の制御に特化」していること、そして、ゾーンとサービスの組み合わせによって、「許可/拒否の設定の仕組みが理解しやすく」なり、「設定の確認も容易」になりました。また、ゾーンとサービスを組み合わせた管理の仕組みは、プロトコルやポートやセッションなどの挙動を意識せずに設定できるため、「TCP/IPの深い知識がない管理者であっても管理しやすい」設計になったと言えます。
管理がシンプルになったことで、これまでiptablesでパケットフィルタリング設定の管理を行ってきたシステム管理者にも、煩雑な運用から解放されるメリットがあります。この機会にぜひ覚えて活用していきましょう。
Copyright © ITmedia, Inc. All Rights Reserved.