12.5. その他のデバグツール

言うまでもなく、ファイヤーウォールスクリプトのデバグに非常に役立つツールが他にもある。このセクションでは、あなたのファイヤーウォールが様々な方向から (内側から、外側からなど) 見てどのように見えるかを調べられる、主立ったツールを、簡単に紹介する。僕が取り上げることにしたのは nmapnessus だ。

12.5.1. Nmap

nmap は、ファイヤーウォールのありのままの姿を観察し、開いているポートや、もっとローレベルの様々な情報が調べられる、優れたツールだ。 OS特定機能 (OS fingerprinting) や、多岐に渡るポートスキャン方式をサポートしており、 IPv6 にも IPv4 にも対応。ネットワークスキャン機能も備えている。

スキャン時のコマンドライン書式は基本的には非常に簡潔だ。 -p 1-1024 のように、スキャンするポートを指定するのを忘れずに。例として下記を見ていただこう。

blueflux@work3:~$ nmap -p 1-1024 192.168.0.1

Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2004-03-18 17:19 CET
Interesting ports on firewall (192.168.0.1):
(The 1021 ports scanned but not shown below are in state: closed)
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
587/tcp open  submission

Nmap run completed -- 1 IP address (1 host up) scanned in 3.877 seconds
        

OS特定 (フィンガープリント) 機能を使えばスキャン先システムの OS を推察することもできる。フィンガープリント機能は root 権限を必要とするが、そのホストが常々周りからどのように認識されているかが分かって面白い。 OSフィンガープリント を使うと、下の例のような結果が得られる。

work3:/home/blueflux# nmap -O -p 1-1024 192.168.0.1

Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2004-03-18 17:38 CET
Interesting ports on firewall (192.168.0.1):
(The 1021 ports scanned but not shown below are in state: closed)
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
587/tcp open  submission
Device type: general purpose
Running: Linux 2.4.X|2.5.X
OS details: Linux Kernel 2.4.0 - 2.5.20
Uptime 6.201 days (since Fri Mar 12 12:49:18 2004)

Nmap run completed -- 1 IP address (1 host up) scanned in 14.303 seconds
        

見て分かるように、 OSフィンガープリントとて完璧ではない。しかし、幾つかに絞り込めるだけでもありがたい。あなたにとっても、アタッカーにとっても。ひいては、あなたにとって有益だということになる。肝心なのは、アタッカーに的確な OS 特定をさせないよう、与える情報をなるべく少なくすること。 nmap で解析した情報を見れば、あなたの OS がアタッカーにどう見えているのかが、あなたにも分かるというわけだ。

nmap には nmapfe (Nmap Front End) というグラフィカルユーザインターフェイスも添付されている。これは良くできた nmap フロントエンドで、もう少し複雑な検索がしたい時に使うと便利だろう。参考までに、スクリーンショットを下に示しておく。

もちろん nmap には他にもいろいろな使い方がある。 nmap のホームページで様々なことが発見できるだろう。詳しくは Nmap の資料 をご覧いただきたい。

ご理解いただけたと思うが、 nmap は自分のホストを試験するのに優れたツールであり、どのポートが開いていてどのポートが開いていないかを知ることができる。例えば、設定か完了した後に nmap を使えば、意図した通りのことが達成できているかどうかが分かる。適切なポートから適切な反応が返ってくるか、といったような事柄だ。

12.5.2. Nessus

nmap が開放ポートなどを表示するいわゆるローレベル域のスキャナだとすれば、 nessus プログラムは本当の意味でのセキュリティスキャナだといえる。 nmap はいろいろなポートに接続してスキャンを行うが、分かるのは、どう頑張っても動作しているサーバのバージョンくらいまでだ。 nessus はもう一歩踏み込んで、開放ポートを全て挙げ、それぞれのポートでどんなプログラムのどのバージョンが動いているかを調べ、それらプログラムに対して様々な欠陥試験 (security threats) を行って、最終的に、そのサーバで見つかった脆弱性をリストアップしてくれる。

これが自分のホストをよりよく知るのに非常に有効なツールであることは、もう理解いただけただろう。 nessus プログラムはサーバ-クライアント型になっており、 nessus デーモンを活用すればマシンの内外どちらからでもファイヤーウォールの状態が簡単に、しかもかなり詳しく調べられる。クライアントはグラフィカルユーザインターフェイスになっており、それを使って nessus デーモンへログインし、幾つか設定を行い、脆弱性のスキャンを行う対象ホストを指定すればOKだ。作成されるレポートは例えば下のようなものとなる。

Caution

ただし nessus はアタック先のマシンあるいはサービスをクラッシュさせる可能性もあるので注意が必要だ。幸い、そうしたクラッシュの危険性のあるアタックはデフォルトでは無効になっている。