nmapとは

map を一言で定義すると「ポートスキャンツール」です。

ポートとは

「ポート」とは、ネットワークからある一つのマシンへの入口のことです。 入口は一つとは限りません。ポートの実体は16ビットの整数ですので、 最大で65536個の入口がありえます。しかし、全ての入口が開いていることは 通常はありえません。 上記のとおりポートの実体は整数ですので、 その番号のことを「ポート番号」と呼びます。

なぜポートという概念が必要なのでしょうか? 一つのマシン上では複数のネットワークサーバを動作させることが可能です。 例えば一つのマシン上で Web サーバと ssh サーバを同時に動かす場合を 考えましょう。この場合、ネットワークからそのマシンへやって来たデータ (「パケット」と呼ばれます)がどちらのサーバ宛てのデータなのかを OSが区別できなくてはなりません。そこで用いられるのが「ポート番号」です。 Web サーバ宛てのデータの先頭部分(「ヘッダ」と呼ばれる)には 「80」という数字が入っており、ssh サーバ宛てのデータには「22」が 入っています。 この数字(ポート番号)のおかげで、そのマシン上で動いている OSはどのサーバ宛てのデータなのかが区別できるのです。

どのサーバにどのポート番号が割り当てられているかはある程度は 決められており、ftp サーバは21番、ssh サーバは22番、 メールサーバは25番、Web サーバは80番……といったところです。 一覧は /etc/services というファイルを見ましょう。 もちろん、そのポート番号に対応するサーバがそのマシン上で 動いていないと、そのポート番号宛てにデータを送っても 何の反応も起きません。

nmapは何をするのか

nmap はあるマシンに対して、1番ポートから順に手当たり次第に データを送りつけて反応があるかどうかを見るツールです。 このような行為を「ポートスキャン」と呼びます。 オプションを指定しない限りは1番から1024番までデータを送りつけます。

ポートスキャンで何がわかるのかというと、そのマシン上で どういったサーバが動作中かが判明するのです。 例えば80番ポートが反応したら Web サーバが動作していると分かります。 それだけではセキュリティ上の直接の脅威にはなりません。 しかし、あるサーバが動作していることが分かると、 そこからさらに詳しく調べていくことで侵入の糸口をつかまれて しまったりするのです。 例えばサーバプログラムのバージョンを調べてそれがバグのある バージョンであることが分かると侵入は容易になります。

すなわち、nmap はサーバ侵入の最初のステップとして、 開いている入口(ポート)調べるためのツールとして 使うことができるのです。 そのことは逆に言うと、サーバ管理者が自分の管理するマシンに対して どのポートが不用意に開いてしまっているかを調べるためにも 使える、ということ意味します。

Thanks

このページの元は2004年度前期TA大平君が作成してくれました。
Comments