連載
» 2016年02月18日 05時00分 公開

CentOS 7で始める最新Linux管理入門(4):ハマる前に理解する「Firewalld」の設定方法、「iptables」との違い (4/4)

[大喜多利哉,@IT]
前のページへ 1|2|3|4       

XMLファイルで、定義したサービスを「追加」する

 サービスの定義ファイルは/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サービスとして登録する」場合は、以下のように作業します。

(1)「submission.xml」ファイルを作成する

 /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でパケットフィルタリング設定の管理を行ってきたシステム管理者にも、煩雑な運用から解放されるメリットがあります。この機会にぜひ覚えて活用していきましょう。


筆者紹介

大喜多利哉(おおきた としや)

photo

1978年生まれ、神奈川県横須賀市出身。メーカー系システムインテグレーター、ISP、商社系ネットワークインテグレーターで、インフラエンジニアとしてプリセールスからITインフラ設計/構築/運用と、上流工程より一貫して携わる。現在はWebシステム開発運用会社でオンプレミス環境からパブリッククラウドへの移行案件を担当している。


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。