ファイアウォールのゾーンとは?
ファイアウォールのゾーンの基本を解説します。
アクセス制御方式のこと
ゾーンとは、通信の設定を簡単にするための区分けです。ゾーンを利用した区分けの方式をゾーンベースポリシーモデルと呼びます。
この機能は、LinuxのCentOS7で採用されているパケットフィルタリング型ファイアウォールのfirewalldに搭載されています。CentOS6以前はiptablesという別のファイアウォールが搭載されており、アクセス制御方式も異なりました。
性質単位で制御できる
firewalldのインターフェース(接触面)をグループ化し、性質ごとのアクセス制御が設定できます。たとえば、WebサーバとのインターフェースはゾーンA、LANとのインターフェースはゾーンBを適用するなどの設定が可能です。
一度作成したゾーンは複数のインターフェースに割り当てられるため、同じ性質のインターフェースを個別に設定しなくてよいのが特長です。
先ほどの例でいえば、Webサーバとのインターフェースが複数あった場合、それらすべてにゾーンAを一括適用できます。同じ設定を何度もする必要がないため、管理が簡単です。
firewalldには新規の状態で9種類のゾーンが準備されており、それらはNIC(ネットワークアダプタ)に適用することで機能します。ゾーンは自作して増やすことも可能です。
ゾーンの概念が生まれた背景
ゾーンを利用した方式(ゾーンベースポリシーモデル)の誕生にはどのような背景があるのでしょうか。
従来はインターフェースごとの通信制御が主流
ファイアウォールが登場した当初は、インターフェースのセクション単位ごとに通信制御を行う(通信ポリシーを設定する)のが一般的でした。この方式はインタフェースベースポリシーモデルと呼ばれています。
ファイアウォールiptablesでは、この方式が採用されていました。個別に設定するため柔軟性が高いのが特長です。ただし、複数のインターフェースに同じ設定をする場合、一括で設定できないという弱点があります。
通信先の増加でグループごとの制御が主流に
通信先の増加により、グループごとの制御が主流になりました。
通信先が増えると、インタフェースベースポリシーモデルは使いづらくなります。インターフェース数やセキュリティ機能、トラフィック量の増加や複雑化により、個別設定では大きな手間を要するようになったためです。
ゾーンベースポリシーモデルは、この問題を解決するために開発されました。同じ性質のインターフェースには同じゾーンを適用するだけで済むため、管理や運用の手間を削減できます。
CintOS7から実装されたfirewalldでは、このゾーンを利用してインターフェースをグループごとに簡単に設定できるようになりました。
ゾーンを効果的に設定するには?
CentOS7で標準搭載されたゾーンを、効果的に設定する方法を2つ解説します。
ゾーンのサービスを追加・削除して独自にグループ分けをする
ゾーンは追加・削除できます。ゾーンで通信をグループ化し、状況に合ったファイアウォール環境を構築しましょう。また、firewalldのゾーンはあらかじめ9種類搭載されていますが、これらの一部は編集できます。
たとえば、publicというゾーンは「dhcpv6-client」と「ssh」の2つのサービスしか許可していませんが、以下のように記述することで「http」を加えられます。
- ・firewall-cmd --zone=public --add-service=http
permanentオプションで設定を恒久化する
ゾーンは編集しても、その編集内容は再起動時に破棄されてしまいます。それを防ぐためには、permanentオプションを利用しましょう。たとえば、publicにhttpを恒久的に追加する場合は、以下の2つを記述します。
- ・firewall-cmd --zone=public --add-service=http --permanent
- ・firewall-cmd --reload
「permanent」を加えただけではすぐに反映されないので、「reload」で再読み込みさせる必要があります。
ファイアウォールのゾーンを理解して、適切に設定を!
ファイアウォールのゾーンとは、インターフェースをセクション単位ではなく性質単位で設定するための方式です。
LinuxのCentOS7で利用できます。ネット環境の複雑化に応じて誕生した概念で、複数のインターフェースをまとめて管理しやすい特長があります。ゾーンはあらかじめ搭載された内容の編集や、新規追加や削除が可能です。
通信環境に合ったゾーンの設定をしてみてはいかがでしょうか。