IPCop――ネットワークトラフィックを見張るLinuxディストリビューション
私のLANの構成は常時変動しているが、最小構成時にも少なくとも2台のコンピュータと1つの無線LANアクセスポイントがある。ルータは、ラップトップからインターネットにアクセスするためと、ケーブルで接続するのが面倒な場所に置いてあるHewlett-Packard製のネットワークプリンタにアクセスするために使用している。この基本構成に雑多なコンピュータを一時的に追加したり削除したりしている。
ここで私のLANの構成を述べたのは、IPCopの導入を検討する際にまず最初にすべきことは、LANの構成をどのようにするのかを決めることだからだ。IPCopは単に1台のマシンから、無線LANアクセスポイントとインターネットに直結している複数のサーバがあるようなLANまで、何から何までを取り扱うことができる。
IPCopでは、それぞれが専用のNICを使用する、セキュリティレベルの異なる様々な領域(ゾーン)をLAN上に作成することができる。イーサネットでインターネットに接続している場合、IPCopをインストールしているマシンには少なくとも2枚のNICが必要となる。LANの構成によっては合計で4枚必要となることもあるだろう。モデムでインターネットに接続している場合には1枚だけで済むかもしれない。
IPCopでは、各ゾーン/NICのセキュリティのレベルを色で表現している。
- 赤――保護なしのそのままのインターネット
- 緑――最高レベルで保護された安全領域
- オレンジ――ウェブやメールなどのインターネットサーバ用のDMZ地帯
- 青――無線LANネットワーク
ファイアウォールの「ゾーン」の概念に馴染みがない場合には、それぞれのゾーンのことを、それぞれ別々のネットワークだ(各ゾーン間では特別な許可がなければトラフィックが行き来することができないようになっている)と考えると良いだろう。自分のLANにどのようなゾーンが必要かは、IPCopのインストールを始める前に決めておく必要がある。というのもLANの構成によって、必要となるハードウェア(NICとケーブル)やIPCopのインストール/設定(各ゾーンで使用するアドレスの範囲など)が違ってくるためだ。
もっとも単純な構成はIPCopファイアウォールの内側に1台のマシンがある場合で、赤のゾーンと緑のゾーンだけが必要となる。またこの場合に必要となるNICは2枚で、1枚はインターネットに(私の場合、ケーブルモデム経由で)接続されて、もう1枚は保護されるコンピュータに接続される。今回私の場合は、3枚のNICが必要になった。1枚はケーブルモデム用、もう1枚は緑のゾーン用、そしてもう1枚は青のゾーン用だ。このような構成にすることにより緑のゾーンにあるコンピュータからインターネットにアクセスすることができると同時に、緑のゾーンにあるコンピュータを青のゾーンにある無線LANアクセスポイントから接続している人から保護されるようにすることができる。
今回は、最新版をダウンロードしてそのISOからCDを作成した。また同じページにあるインストールと管理についての文書もダウンロードしておいて、インストールの最中でインターネットにアクセスできない状態の時に問題が起こった時にも、それらの文書を見ることができるようにしておいた。
インストールの手順は短くて簡単だった。CDから起動すると、ハードディスクの全データが失われる恐れがあると警告された後にインストールが始まり、適切な言語、キーボードのレイアウト、インストール方法(ローカル/ネットワーク)を選択した。OKをクリックすると、IPCopがハードディスクのパーティション分割とフォーマットを行なった。この作業は私のシステムのディスク(120GB)では10分以上もかかり、インストールは失敗したのかと思い始めた頃になってようやく、CDからディスクにファイルをコピーするという次のステップに進んだ。
その次のステップでは、緑のゾーン用として使用したいNICとそのIPアドレスを尋ねられた。ここでは単純にIPCopの文書の中の例に従うことにして、緑のゾーンのインターフェースのIPアドレスは「192.168.1.1」とした。この時点でIPCopのインストールは完了だが、緑のゾーンのインターフェース以外の設定は終わっていないという状態だ。
インストーラは次にCDを取り出すように指示したが、リブートするわけではなく、残りのシステム設定を行なうことのできる設定プログラムが起動した。なお設定を変更したい場合には単にIPCopのコンソールでコマンドを入力すれば、いつでもこの設定プログラムを起動することができる。
IPCopの設定やIPアドレスをどうすれば良いのかよく分からない場合は、インストールマニュアルの1.2.1.5節にある図 を見て参考にすると良いだろう。
この設定プログラムではまた、IPCopのroot/administration/backupの各ユーザ用のパスワードを設定することができる。各パスワードを設定した後にOKをクリックすれば、ここで初めてIPCopがハードディスクからブートする。
ブートの際には4つの選択肢が提示される。すなわち「IPCop」、「IPCop SMP」、「IPCop ACPI」、「ACPI /HT対応IPCop SMP」だ。このうちもっとも無難な選択肢は「IPCop」だが、ここでどの選択肢を選んだ場合も、その選択肢がそれ以降リブートすることがあったときのデフォルトになる。
以上でIPCopの緑のゾーンを試してみることができるようになったので、緑のゾーンのマシンからIPCopをインストールしたマシンにpingしてみよう。私の場合は「192.168.1.1」に対してpingすることになった。これがうまく行けば次のステップに進むことができる。これがうまく行かない場合には両方のマシンのケーブルとNICの設定を確認してみよう。別のマシンからIPCopをインストールしたマシンへ直接的に接続している場合には、クロスオーバーケーブルを使用する必要があるかもしれない。クロスオーバーケーブルが不要なNICもあるが、多くのNICはそうではない。
IPCopをインストールしたマシンにpingすることができるようになったら、ブラウザを使ってGUI経由でIPCopを管理することができる。そのためにはブラウザでIPCopのセキュアウェブサーバの445番ポート(デフォルトではhttps://192.168.1.1:445)にアクセスする。ログインするとIPCopのホームページが表示される。ホームページからは、必要に応じてサイト内の特定の各分野――System(システム)、Status(状態)、Network(ネットワーク)、Services(サービス)、Firewall(ファイアウォール)、VPN(VPN)、Logs(ログ)――のページに行くことができる。IPCopのGUIでは、文脈によって内容が変わるヘルプがほぼすべてのページで利用可能になっていて、右下の小さな救命具のアイコンをクリックすれば、その時点で閲覧しているページに関連した適切な文書が表示される。
私の場合インストール作業の一環として、さらに以下のような作業が必要となった。まずラップトップからウェブを閲覧できるようにしたいので、青のゾーンからインターネットにアクセスすることができるようにする必要があった。次に、緑のゾーンにあるデスクトップから青のゾーンにあるネットワークプリンタを使用することができるようにするために、DMZピンホールを開ける必要があった。
無線LANルータにはLinksys WRT54GSを使用しOpenWRTを使用しているのだが、IPCopの設定をいじる前にまず、IPCopの文書で推奨されていたNICへのIPアドレス割り当て案にしたがって、青のゾーンのインターフェースに割り当てたアドレスである「192.168.2.1」に合わせて、ルータを「192.168.2.100」に設定し直した。なおそれまではルータは、現在は緑のゾーンのNICに割り当てているIPアドレスを使用していた。これが終わったらIPCopの設定に取り掛かった。
まず始めにIPCopのGUIの「Firewall(ファイアウォール)」セクションの中の「Blue Access(青のゾーンのアクセス)」ページにアクセスした(このページは青のゾーンを定義している場合にのみ表示される)。このページでは、前もって決めておいたIPアドレスをそれぞれ使用して無線LANルータとラップトップを追加した。次に「Firewall DMZ Pinholes(ファイアウォールDMZピンホール)」のページに移動して、ルータのウェブサーバとデスクトップマシンとの間にピンホールを開けた。こうしておくことでデスクトップマシンから必要に応じてルータの設定を変更することができる。その後、プリンタも同じように管理できるようにするために同じ手順をプリンタについても行なった。最後に、プリンタを実際に使うことができるようにするため、プリンタの新しいIPアドレスを指すようにデスクトップマシンのプリンタのURIを変更する必要があった。
IPCopではいくつかのボタンをクリックするだけでIDSのSnortを利用することができる。さらに、IPCopのゾーンを限定して実行することもできる。IPCopのメインのページから「Services(サービス)」→「Intrusion Detection(侵入検知)」を選択して、Snortに監視させたいすべてのインターフェースにチェックを入れて、「Save(保存)」ボタンを押せば完了だ。私の構成では、侵入しようとした形跡を記録しておくために赤と青のインターフェースの両方についてSnortを実行することにした。
IPCopのインストールは、私にとって勉強にもなったし実際の役にも立った。具体的に言うと、まず赤と青の両インターフェースをSnortで監視できるようになった。また、主には無線LANルータをゾーンで隔離したことのおかげで、これまでよりも優れたLANの保護をすることができるようになった。なお、これらすべてを非常に簡単に管理できるので、ベテランのシステム管理者でなくてもインストールして使用することができる。
今回私が試したIPCopの使用方法は極めてシンプルなものだったが、IPCopはもっと高度な使い方もできるだけでなく、すぐに利用できるアドオンのリストからも分かるように、拡張可能でもある。個人的に将来的には、おそらくウェブサイトを設置したりメールサーバを稼動させたり、ハニーポットや外部からの侵入テスト用ワークステーションのために、DMZ(オレンジのゾーン)を作成してみたいと思っている。
まとめるとIPCopは、完成度が高く、堅固で、洗練されていて、磨きのかかったセキュリティディストリビューションだ。サポートも優れていて、インストール/管理についての文書も非常に優れており、またfreenode.netのIRCチャンネル(#IPCop)は他のIPCopユーザに質問するのにフレンドリーで協力的な場所だということも分かった。メーリングリストもいくつかあって、無線LANルータを思う通りに動かすことができずに一日過ごした後にipcop-userで質問してみたところ、必要としていた正にその情報を得ることができた。私はIPCopに100点満点を付けたい。