実験環境の構築と各ツールの使い方
残念ながら、スペースの関係上、各ツールのインストール方法を紹介することはできません。各ツールのドキュメントをよく読んで、チャレンジしてみてください。気を付けなければならないのは、特に理由がない限り、これらのツールをファイアウォールにインストールしてはいけません。なぜならば、万が一ファイアウォールが乗っ取られたときに、これらのツールを悪用されてしまう可能性があるからです。
これらのツールに限らず、ファイアウォールにインストールするソフトウェアは注意深く選択し、できる限り余計なものをインストールしないようにします。
●実験環境の構築
ファイアウォールの設定が完了したら、図1のようにマシンを設置します。クライアントとサーバは、どんなOSでも構いません。これから紹介するツールをインストールしておきます。また、サーバにはファイアウォールを通過させるサービスをあらかじめ起動しておきます(今回の場合は、wwwとftp)。
ファイアウォールと、サーバ(またはクライアント)の間は、ハブを用いて接続しますが、スイッチングハブを使わずに普通のハブを使用すると、同一ネットワークのホスト上でtcpdumpなどを用いたパケットの解析ができるので便利でしょう。
●nmapの使い方
nmapはポートスキャン用プログラムですが、さらにOSのフィンガープリント(OSごとのTCP/IPの実装の微妙な違い。つまり指紋のようなもの)を用いて、OSの推測も行うことができます。例えば、イントラネット側のマシンから、nmapを用いてOSの推測を行うと、以下のような結果が出力されます(リスト3)。
この結果から、OSがSolaris 8であることが分かります。しかし、インターネット側のマシンからnmapを実行すると、結果は以下のようになります(リスト4)。ここで、「-P0」オプションが追加されていることに気を付けてください。nmapは、スキャンを行う前にまずpingを行って、反応がないマシンへのスキャンは行いません。このpingの結果を無視してスキャンを実行するオプションが「-P0」です。
IP Filterを導入して、ICMPにも応答しないようなルールを適用したマシンからは、OSの推測に必要な情報が十分得られないためOSの検出に失敗します。攻撃者にしてみれば、OSの種類が分かれば攻撃をしかけやすくなりますので、必要がなければICMPも許可しないように設定するとよいでしょう。
●tcpdumpの使い方
tcpdumpは、ネットワークを流れるパケットをダンプするツールです。以下は、tcpdumpの実行例です(リスト5)。「-n」オプションは、表示されるパケットの情報について、アドレス変換(IPアドレスからホスト名への変換など)を行わないためのものです。アドレスの変換を行うと表示速度が低下するので、特に必要がなければ常にこのオプションを有効にして実行するとよいでしょう。
- (1)〜(2): ARP要求*4と、その応答です
- (3): SYNフラグの付いたパケット
- (4): SYN/ACKフラグの付いたパケット
- (5): ACK フラグの付いたパケット。ここでコネクションが確立されます
- (6)〜(7): サーバがクライアントのIPアドレスを逆引きしようとしています
*4IPアドレスから、NIC(ネットワーク・インターフェイス・カード)のアドレスに変換するためのプロトコルをARP (Address Resolution Protocol) といいます
tcpdumpは、ネットワークを流れるパケットをすべてダンプするため、場合によっては見る必要のないパケットの情報まで表示されます。これでは非常に見づらいので、パケットの種類を絞ってダンプすることができます(リスト6)。tcpdumpは、さらに複雑な表現を用いてダンプするパケットを限定することができます。詳しい使い方はマニュアルを参照してください。
tcpdump -n tcp and port 21
TCPの21番ポートのパケット
tcpdump -n tcp and port 21 and \( host x.x.x.x or host y.y.y.y \)
TCPの21番ポートで、アドレスが「x.x.x.x」または「y.y.y.y」に関するパケット
●hping2の使い方
hping2は、pingの強力版のようなツールで、任意のTCP/UDP/ICMPパケットを生成してホストのスキャンを行うことができます。pingは、ICMP(もしくはUDP)パケットをホストに送って、その戻りのパケットから、ホストが存在してネットワーク的に到達できることを確認するツールですが、ごく限られた種類のパケットしか生成できないため、IP Filterのようなパケットフィルタリングが施されたホストには通用しません。
hping2は、ファイアウォールで許可されたポートを通過するように、任意のパケットを生成することができるので、ファイアウォールを越えてパケットを通過させることができます。従って、hping2の実行結果(サーバの応答)から、ファイアウォールのルールが正しく設定されていることを確認することができます。
例えばリスト7では、ファイアウォールのTCP/21番ポートに、SYNフラグ(「-S」オプション)が付いたパケットを送っています。それに対して、SYN/ACKフラグが付いた(実行結果の「flags=SA」の部分)応答パケットが戻ってきているため、パケットがファイアウォールを正しく通過して、サーバからの応答があることを確認できます。
同様にして、リスト8ではFINフラグ(「-F」オプション)の付いたパケットを使われていないポートに送っていますが、応答がありません。ファイアウォールの設定が甘いと、RST/ACKフラグが付いたパケットが返ってくることがあります。
ここまでで、ファイアウォールの検査および、トラブルシューティングに使えるツールを紹介しました。次は、複数のサーバを単一マシン上でエミュレーションできる、VMwareを紹介します。
VMwareを使った複数サーバのエミュレーション
VMwareは、intelアーキテクチャのPCをエミュレートすることによって、仮想環境上でOSを複数起動できるソフトウェアです。VMwareを使うことにより、ファイアウォールの実験環境において複数のサーバが必要になる場合など、わざわざサーバを必要台数分用意しなくても、VMwareが起動したマシン上にある程度集約することができます。
ベースとなるOS(「ホストOS」と呼びます)は、WindowsやLinuxに対応しています。仮想環境上で動作するOS(「ゲストOS」と呼びます)には、Windows 9x/NT/2000、Linux、FreeBSDなどがあります。
WindowsをホストOSに選んだ方が、扱いは簡単になります。ホストOSの違いとVMwareの動作には機能的な違いはないので、特に理由がなければWindows版を使うとよいでしょう。
ネットワーク機能においても、ゲストOSと実マシン上で動作しているOSには、まったく違いはありません。ただし、ゲストOSをインストールしたときのVMwareのネットワークのモードが、「bridged」になっている必要があります(画面2)。
「bridged」で設定されたゲストOSは、ホストOSのNICを共有する形になります。この場合、ホストOSとゲストOSは同じネットワークセグメントである必要はなく、ホストOSの存在をまったく意識することなくインストールすることができます。
ゲストOSのインストールが完了したら、サービスの設定を行います。ただし、応答パケットが返されて、ファイアウォールを通過することさえ確認できればよいので、本番環境と同じような設定にする必要はありません。サービスを起動させておくだけで、ほとんどの場合は問題はないでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.