Firewall Builderによるファイアウォールの設定Leverage OSS(1/2 ページ)

IPトラフィックのフィルタリング設定に役立つFirewall Builderは、定義したパケットフィルタリングポリシーとその実装を分けることで、ハードウェアに依存しない運用に役立ってくれる。

» 2008年08月20日 05時39分 公開
[Ben-Martin,ITmedia]
SourceForge.JP Magazine

 Firewall Builder(fwbuilder)は、IPトラフィックのフィルタリング設定に役立つグラフィカルアプリケーションだ。このツールでは、ユーザーが定義したフィルタリングポリシーをCiscoルータおよびLinksysルータで使われる各種言語やiptablesの仕様に変換できる。定義したポリシーとその実装をこうして分けることにより、ファイアウォールを実行するハードウェアを変更してもポリシーを定義し直さずに済む。

 fwbuilderのパッケージは、Ubuntu HardyとFedora 9の各リポジトリに収められている。openSUSEの10.3にもワンクリックでインストール可能なパッケージがあるが、まだopenSUSE 11には対応していない。本稿では、64ビット版Fedora 9マシンでfwbuilderのバージョン2.1.19をソースからビルドして使用する。fwbuilderのパッケージは、libfwbuilderとfwbuilderという2つのtarballになっている。先にライブラリをインストールする必要があるが、どちらのパッケージも通常の「./configure; make; sudo make install」という手順でインストールできる。わたしの環境では、configureの実行中に次の警告が出たが、無視しても問題はない。

Running qmake: /usr/lib64/qt-3.3/bin/qmake

WARNING: icns.path is not defined: install target not created



テンプレート テンプレート

 fwbuilderを立ち上げると、右のスクリーンショットにあるようなメイン画面(「New Firewall」[新規ファイアウォール]ダイアログの後ろ側)が現れる。新規ファイアウォールを作成するには、ツリービュー内の[Firewalls]を右クリックする。ファイアウォールテンプレートを利用してiptablesによるファイアウォールを作成する場合には、先ほどの新規ファイアウォールダイアログが表示される。fwbuilderには多くのユーザーが使いそうなファイアウォールやそれに近いものがテンプレートとして用意されているため、はじめてのユーザーでも簡単に使える。

 スクリーンショットにあるテンプレート1(「fw template 1」)は、ISPから動的IPアドレスが割り当てられ、ローカルの固定非公開サブネットがサーバの2番目のネットワークインタフェースに設定される状況に対応している。テンプレート2もテンプレート1に似ているが、ローカルネットワーク上のDHCPサーバが想定されている点が異なる。テンプレート3はDMZ(DeMilitarized Zone:非武装地帯)サブネットの設定用であり、サーバの3つのネットワークインタフェースがそれぞれ、静的IPアドレスを持つインターネット側のインタフェース、ローカルの非公開サブネット、インターネットからアクセス可能なDMZサブネットになっている。

 4番目の項目「host fw template 1」は、単純に1台のホストを保護するもので、このホストへのSSHアクセスだけを許可する。この手のファイアウォールポリシーは単純ではあるが、ノートPCユーザーが素早くファイアウォールを設置できるようにリストに用意されている。テンプレート「linksys firewall」はLinksysルータでの利用を想定したもの、「c36xx」はCiscoルータ用のサンプルである。また、テンプレート「web server」は、ファイアウォールを実行するサーバへのHTTPおよびSSHトラフィックを許可する。

ファイアウォールルールの編集 ファイアウォールルールの編集

 次のスクリーンショットは、テンプレート1用のファイアウォールルールを示したものだ。画面の上側にあるグリッド内の各セルをクリックすると、下側のペインにそのセルのデータを編集する領域が表示される。このテンプレートのファイアウォールでは、単純にTCP接続の種類やポート番号を入力する代わりに、SSHサービスのオプションが画面左側のツリービュー内に用意されている(選択中のルールの接続先の定義にこのオプションが使われている)。テンプレートから参照されているサービスは、システム定義の一部として読み取り専用になっているため、ペイン上で詳細は確認できるが編集はできない。カスタムのポートでSSHを実行する場合は、SSHのシステムカタログを編集してもよいし、画面左側の標準(システム)カタログのツリービューで該当するアイコンを右クリックして「Duplicate/Place in library User(ユーザーライブラリに複製/配置)」を選択することでSSHサービスの個人用コピーを作成することもできる。なお、左側のツリービューのすぐ上にあるドロップダウンリストでは、標準(システム)カタログかユーザーカタログのどちらかを選択できる。

 個人用にコピーしたSSHサービスのポート定義は、自由に編集できる。編集したSSHサービス定義を利用するには、該当するアイコンを画面左側のツリービューからファイアウォールルールのサービスセルにドラッグ&ドロップすればよい。こうした操作はすべて問題なく行えるが、このままだとユーザーインタフェース上の問題が1つ残る。標準(システム)カタログとユーザーカタログのどちらのSSHサービス定義も名前が同じになっていることだ。つまり、先ほどのサービスセルに自分が編集したSSHサービスをドラッグすると、同じセル内に2つのSSHエントリが表示され、標準(システム)カタログ版との区別がつかなくなる。この問題は、編集したSSHサービス定義の名前を変更するだけで回避できる。

 画面左側のツリー上でファイアウォール自体をクリックするか、ファイアウォールポリシーを示す画面上部のグリッドで任意のセルをクリックすると、ホストとファイアウォールの両方の設定の編集が可能になる。ホストの設定では、マシン上にある特定のツールのパスを設定するオプションが存在し、FINおよびkeep-aliveのタイムアウトや明示的輻輳通知(ECN:Explicit Congestion Notification)、タイムスタンプ、SYNクッキーの有効化といったさまざまなTCP設定を変更できる。もっと一般的なホスト設定のオプションとしては、カーネルによるアンチスプーフィングのサポート、ソースルーティングの無視、各種ICMPパケットの処理方法などがある。「template 1」のファイアウォールでは、これらの設定がすべてデフォルトのままになっている。

 また、画面左側のツリーからファイアウォールをクリックして、画面の「Firewall details(ファイアウォールの詳細情報)」セクションにある「Firewall settings...(ファイアウォールの設定)」ボタンを押すと、一定時間内のパケット上限数のようなグローバルオプションの設定、生成されたファイアウォールウォールの調整に有効なprologおよびepilogコマンドの追加、カスタマイズの際に変更が必要になる各種システムパスの指定ができる。既知の接続との関連がないパケットをデフォルトでドロップするかどうかなど、拒否するパケット(送り返すICMPメッセージ)の指定や、最初のファイアウォールルールを実行する前に、確立済みおよび関連のある接続を受け入れるかどうかの指定も行える。

       1|2 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ