nmap(Network Mapper)は、ネットワーク上のホストやサービスを探索し、稼働しているポートやOS、サービスの種類を検出するためのコマンドです。
サーバー管理やセキュリティ診断で、開いているポートや稼働中のサービスを確認するときに利用されます。
構文(Syntax)
nmap [オプション] [ターゲットホストまたはネットワーク]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-p PORT | ポートを指定してスキャン | nmap -p 22 192.168.1.10 |
-p PORT1-PORT2 | ポート範囲を指定 | nmap -p 20-80 192.168.1.10 |
-sS | TCP SYN スキャン(高速・一般的) | nmap -sS 192.168.1.10 |
-sT | TCP Connect スキャン | nmap -sT 192.168.1.10 |
-sU | UDP スキャン | nmap -sU 192.168.1.10 |
-O | OS検出 | nmap -O 192.168.1.10 |
-sV | サービスバージョン検出 | nmap -sV 192.168.1.10 |
-A | 詳細スキャン(OS, バージョン, スクリプト, traceroute) | nmap -A 192.168.1.10 |
-Pn | ホスト発見をスキップ(pingせずにスキャン) | nmap -Pn 192.168.1.10 |
-T[0-5] | スキャン速度を調整(0=遅い, 5=速い) | nmap -T4 192.168.1.10 |
実行例
単一ホストのスキャン
nmap 192.168.1.10
出力例:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
ポート範囲を指定してスキャン
nmap -p 20-100 192.168.1.10
サービスとバージョンを特定
nmap -sV 192.168.1.10
出力例:
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3
80/tcp open http Apache httpd 2.4.52
ネットワーク全体をスキャン
nmap 192.168.1.0/24
(同一ネットワーク内のホストを探索)
OS検出
sudo nmap -O 192.168.1.10
ステルススキャン(SYNスキャン)
sudo nmap -sS 192.168.1.10
エラー例(対象ホストがダウンしている)
nmap 192.168.1.200
出力例:
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
関連コマンド
netcat (nc): 手動でポートに接続してテストできる。socat: 多用途のネットワーク接続ツール。ss/netstat: ローカルのポート利用状況を確認する。
備考
nmapは管理者権限(sudo)が必要なオプションがあります(例: OS検出、SYNスキャン)。- ネットワーク管理やセキュリティ診断では有用ですが、無断で外部ネットワークをスキャンすることは不正アクセス行為にあたる可能性があるため注意してください。
nmapにはスクリプトエンジン(NSE)があり、脆弱性診断や高度な検出にも利用できます。
参考
- 公式サイト: https://nmap.org/
- manページ: https://nmap.org/book/man.html

コメント