| Nmapとは / Port Scanとは |
|
Nmapとは、一言で言えばPort Scanを行うツールです。Port Scanが何かということについてはここでは詳しくは述べませんが、簡単に説明しておきます。 WWWやFTPなど、外部から接続するユーザーに対してサービスを提供するサーバーは、提供するサービスごとに特定のポート番号を割り当て、その番号で外部からの接続を待っています。この状態を"ポートがオープンしている"と呼びます。 通常、ある任意のサーバーで何番のポートがオープンしているということは基本的に分かりません。通常はそのようなことを知る必要性はありませんし、また知ってもどうなる物ではありませんが、サーバーのセキュリティホールを突いて侵入を試みるクラッカーにとっては、どのポートが開いているかということは非常に重要な情報になります。例えばある特定のポートを利用するサービスにセキュリティホールがあることが分かっていて、そのポートがあるサーバーでオープンされてことをクラッカーが知ったら、そこにクラッキングをかけるでしょう。 ここで気が付くかと思いますが、Port Scanを行うこのNmapは、クラッキングからサーバーを防御する側にとって、どのポートが開いているのか、不必要なポートは開いていないか、またクラッカーの侵入によってオープンされているポートはないか、といったことを確認するために非常に有効なツールであると同時に、クラッカーにとってもクラッキングを行う情報を得るために悪用できるツールでもあるわけです。 不用意にインターネット上の見知らぬサーバーに対してNmapを利用してPort Scanを行うと、Scanを受けている側からすればアタックを受けているようにしか見えないので、自分が管理しているサーバーのチェック以外には、決して利用しないようにして下さい。 |
| Nmapの入手と関連ドキュメント |
| NmapはInsecure.orgが開発・配布を行っています。ソースコードやバイナリパッケージ、各種ドキュメントについては、Insecure.orgから入手するのが間違いありません。 Insecure.orgのTopPage Nmapの公式ページ ドキュメント類も併せて配布されています。各国語版のドキュメントがありますが、2003年1月6日の時点で、日本語のドキュメントは一つしかありません。 Remote OS detection via TCP/IP Stack FingerPrinting 本当はManの日本語版があるのが理想だと思われますが、管理人が調べた限りでは一切存在していないようでした。しかし、当サイトのアクセス解析の結果を眺めると、Nmapの情報を求めてこのページを訪れる方が非常に多いようでしたので、管理人が翻訳を行いました。 翻訳の対象としたのは、Nmapのドキュメントページにあるこちらです。このファイルは2003年1月6日現在の最新開発版であるNmap 3.10α9のManページで、同時点での最新安定版であるVer.3.00に付属しているManの内容と若干異なる部分があります。管理人が把握している差異を以下に示しておきます。 ・"-6"オプション(IPv6サポート)がVer.3.00にはない 上記以外にも差異がある可能性があります。また、99%は正しいと思いますが、誤訳がある可能性も否定できません。そこら辺を踏まえた上でご利用ください。 Nmap Manページ日本語版正直言って、この情報がどれだけ必要とされているのか見えない部分があります。もし非常に多くの方が必要とされているのでしたら、Nmap本家にContributeしてもいいかなと思っていますが、自分一人では翻訳の品質を担保することさえ出来ません。もし本格的に動くならば、それなりの手続きを踏む必要があると思っています。 その目安とするために、Nmap Manページ日本語訳が役に立った、という方がいらしゃったら、情報交換掲示板の方に一言でもいいのでコメントして頂ければと思います。ご協力お願いいたしますm(__)m |
| Nmapの起動 |
|
導入については触れません。なにしろRedhat Ver.8では初期導入されているので、書きようがありません(^^;。ただし、RPMが利用できる環境ならばそちらで導入できますし、Windows版はインストーラー付、SolarisやDebian、FreeBSDなどでもパッケージ化されたNmapが用意されているので、導入が問題となることはまずないでしょう。 本題の利用方法ですが、色々な意味でわかりやすいので、先に紹介したGUI版のフロントエンドを利用するといいと思います。下の画面はRedhat Ver.8上のターミナルから、"nmapfe &"でGUIを起動した画面です。左側はrootで起動、右側は一般ユーザーで起動した画面です
チェックボックスの数が全く違うのが一目でわかると思いますが、Nmapはネットワークのかなり低層の機能をフルに利用するため、root権限で起動しないと真価が発揮できません。
通常、Nmapを利用するのはシステム管理者だと思われますので、自分の責任においてrootで起動するようにしましょう。 |
| Nmapの利用例 |
|
利用方法については、述べるべき事は多くはありません。全てはManに書かれています。 ただし、NmapのManは、私が知る限り最大サイズの巨大なManなので、よほど英語とネットワークの両方に明るい人でないと読むすら起きないでしょう。たとえ一読したとしても、自分が達成したい目的と自分の環境とを併せて考えて、最適の解を導き出すのは非常に困難な作業になるでしょう。 しかし、マシンの簡単なセキュリティチェックに利用するのであれば、それほど込み入ったオプションを駆使する必要がないというのもまた事実です。ここでは、ごく簡単かつありがちな利用方法を幾つか例として挙げるに留めておきます。これ以上の利用方法を求めるのであれば、Manを参照してください。また、以下の例はroot権限を持っている前提でオプションの指定を行います。 Manの中には、インターネット上の任意のホストを対象にスキャンを行う方法も紹介されていますが、攻撃の前準備と認識される可能性があるので、絶対に行わないでください。ここでは、基本的にローカルネットワークのみをスキャン対象として想定しています。同様の意味で、自分の身元を隠蔽したり、スキャン対象ホストを騙すようなオプションについては、ここでは一切触れません。 例1 : nmap -sS 192.168.0.2 ・192.168.0.2でオープンしているTCPポートをスキャンする。 例2 : nmap -sS -p 1-65535 192.168.0.2 ・-pはポート番号指定用のオプション。上記の例だと1番~65535番ポートまでを指定している。 例3 : nmap -sS -O 192.168.0.2/24 ・スキャン対象範囲として、192.168.0.2のホストが所属するサブネット全体を指定。 例4 : nmap -sP 192.168.0.2/24 ・-sPはPingスキャンを意味する。スキャン対象の範囲は例3と同じ。 例5 : nmap -sO 192.168.0.2 ・-sOはIPプロトコルスキャンを意味する。 例6 : nmap -sS 192.168.0.2 -v ・スキャン対象/方式は、例1と同じ。 例7 : nmap -sS 192.168.0.2 -oX /home/ryu/Nmap_XML.log ・スキャン対象/方式は例1と同じ。 例8 : nmap -sS 192.168.0.2 -oS /home/ryu/Nmap_ScriptKiddie.log ・スキャン対象/方式は例1と同じ。 例9 : nmap -sS -iR -p 80 ・-iRは、Nmapにランダムにスキャン対象ホストを選ばせるオプション。 ここまでの内容を大体理解できれば、Nmapの基本の基本は抑えたといってもいいでしょう。実際はもっと様々なオプションがありますが、それらについてはManに譲ります。 最後にもう一度書いておきますが、くれぐれもNmapを見ず知らずのホストに利用しないでください! |