はじめに
nmap(Network Mapper)は、
ネットワーク上のデバイスをスキャンして、
どのポートが開いているか、どのサービスが動いているか、
さらにはそのデバイスのOSまで調べることができるツールです。
簡単に言うと、nmapは
「ネットワークの状況を覗き見る双眼鏡」のような役割を果たします。
今回は、nmapの基本的な使い方を解説します。
なぜnmapが必要なのか?というと、
例えば、ネットワークに複数のサーバーや
デバイスが接続されているとします。
これらのデバイスがどのポートを使って通信しているか、
どんなサービスが動いているかを調べることで、
セキュリティチェックやトラブルシューティングが容易になります。
nmapを使えば、
これらの情報を簡単に取得できます。
nmapのインストール方法
まず、nmapを使うためには
Linuxにインストールする必要があります。
ほとんどのLinuxディストリビューションで
簡単にインストールできます。
Ubuntuの場合は、
以下のコマンドを実行するだけです。
sudo apt update
sudo apt install nmap
他のディストリビューションでも、
同様にパッケージマネージャーを
使ってインストールが可能です。
基本的なポートスキャン
nmapを使う最も基本的な機能は、
ポートスキャンです。
ポートとは、
デバイスがインターネットを通じて
やり取りする窓口のようなもので、
これをスキャンすることで、
デバイスがどの窓口で通信を行っているのかがわかります。
TCPスキャン(-sT)
TCPスキャンは、
標準的なスキャン方法で、
TCP(Transmission Control Protocol)を
使ってポートの状態を調べます。
これを使えば、
ポートが「開いている」かどうかを
正確に確認できます。
nmap -sT <ターゲットのIPアドレス>
TCPは、
データの送信を保証するプロトコルで、
手紙を郵便で送るときに
「受け取り確認」をもらうようなものです。
これにより、
確実にデータが相手に届いたことが確認できます。
SYNスキャン(-sS)
SYNスキャンは、
より高速にスキャンを行う方法です。
TCPコネクションを確立する前に、
スキャン対象のポートが
開いているかどうかを確認できます。
通常のTCPスキャンよりも効率的で、
対象に負荷をかけにくいという特徴があります。
nmap -sS <ターゲットのIPアドレス>
UDPスキャン(-sU)
UDP(User Datagram Protocol)は、
TCPと異なり「受け取り確認」をしないプロトコルです。
これは、すばやくデータを送信するのに便利ですが、
逆に送信が失敗しても気づきにくいという特徴があります。
UDPスキャンは、
UDPポートの状態を確認するために使います。
nmap -sU <ターゲットのIPアドレス>
その他のスキャン技術
基本のスキャン以外にも、
nmapは特殊なスキャン方法を提供しています。
それぞれの方法には、
特定の状況で役立つ特徴があります。
NULLスキャン(-sN)
NULLスキャンは、
非常に静かなスキャンで、
パケットにフラグを全く設定せずに送信します。
特定の防御システムを避けるのに役立つ場合があります。
FINスキャン(-sF)
FINスキャンでは、
セッションの終了を示すパケットを送り、
応答がないかどうかを確認します。
通常とは異なる動作で、
ファイアウォールを回避する可能性があります。
Xmasスキャン(-sX)
Xmasスキャンは、
すべてのフラグが立ったパケットを送るスキャンで、
特定のシステムで有効です。
5. nmapスクリプトエンジン (NSE) の利用
nmapのもう一つの強力な機能は、
Nmap Scripting Engine (NSE) です。
NSEを使うと、標準のスキャンに加えて、
より詳細な調査やテストを行うことができます。
NSEスクリプトの基本的な使い方
nmap --script <スクリプト名> <ターゲットのIPアドレス>
NSEは、まるで「追加のレンズ」を
使ってネットワークを見るようなもので、
標準的なスキャンでは見えない情報を取得できます。
pingスイープによるネットワークホストの探索
pingスイープは、
ネットワーク上のホストが存在するかどうかを確認する方法です。
これにより、
特定のサーバーが動作しているかどうかを迅速に確認できます。
nmap -sn <ターゲットのサブネット>
スキャン時の権限による動作の違い
nmapを実行する際に、
ユーザの権限によって結果が異なる場合があります。
特にroot権限で実行することで、
より詳細な情報を得られることが多いです。
ファイアウォールを回避したスキャン
多くのネットワークは、
ファイアウォールによってスキャンを遮断していますが、
nmapにはそれを回避するためのオプションがあります。
例えば、
パケットの内容を少し変えることで、
ファイアウォールの検知を避けることができます。
詳細なオプション設定
nmapには、
スキャン結果をさらに細かく制御するための
オプションが豊富に用意されています。
例えば、
ターゲットのOSやサービスのバージョンを調べるオプションや、
結果をファイルに出力するオプションがあります。
- ターゲットOSを確認する(-O)
- 動作しているサービスのバージョンを確認する(-sV)
- 出力形式を指定する (-oN, -oG, -oA)
アグレッシブモードとスキャン速度指定
nmapには、
短時間で多くの情報を取得できる
アグレッシブモード(-A)があり、
システムやサービスの詳細を
一度に把握するのに便利です。
また、
スキャン速度を調整する(-T0 〜 -T5)ことで、
ネットワーク負荷に応じて適切なスキャンが行えます。
ポート指定と範囲指定
特定のポートやポート範囲を
スキャンすることも可能です。
例えば、
80番ポート(HTTP用)や
443番ポート(HTTPS用)のみを
スキャンすることで、
特定のサービスの動作状況を調べることができます。
nmap -p 80,443 <ターゲットのIPアドレス>
まとめ
nmapは、
初心者でも簡単に使えるツールでありながら、
ネットワーク管理やセキュリティ対策において非常に強力です。
基本的なポートスキャンから始めて、
必要に応じてさまざまなスキャンオプションを活用することで、
より詳細な情報を取得できます。
まずは基本的なスキャンを試し、
少しずつ機能を使いこなしてみましょう!