
セキュリティの世界に足を踏み入れると、必ず耳にするツールの一つが「Nmap」です。ハッカー映画にも登場することがあるこのツール、一体何ができて、どのように使えばいいのでしょうか?
この記事では、セキュリティ学習を始めたばかりの初心者の方に向けて、Nmapの基本的な概要からインストール方法、そして実践的な使い方まで、コマンド例や実行結果を交えながら分かりやすく解説していきます。

この記事を読めば、Nmapを使ったネットワーク探索の第一歩を踏み出せるはずです!
誰でも無料で参加できるハッキング体験会の参加者募集中!!

ポートスキャンツール『Nmap』とは

Nmapは、ネットワークの探索やセキュリティ監査を行うための、非常に強力で多機能なオープンソースのツールです。元々はポートスキャンツールとして開発されましたが、現在では多くの機能が追加され、ネットワーク管理者やセキュリティ専門家にとって必須のツールとなっています。
Nmapの主な用途
Nmapは具体的に以下のような目的で使用されます。
- ポートスキャン: サーバーやコンピュータのどの「ドア(ポート)」が開いているかを確認します。
- ホスト発見: ネットワーク上にどのようなデバイス(PC、サーバー、スマートフォンなど)が接続されているかをリストアップします。
- OS・サービス検知: ターゲットのOS(Windows, Linuxなど)や、動いているサービス(Webサーバー、メールサーバーなど)のバージョン情報を特定します。
- 脆弱性スキャン: Nmapのスクリプト機能(NSE)を使い、既知の脆弱性が存在しないかを簡易的に診断します。
Nmapの特徴
Nmapが世界中のエンジニアに愛用されているのには、以下のような理由があります。
- ✅ 高速かつ柔軟: 状況に応じてスキャン方法や速度を細かく調整できます。
- ✅ クロスプラットフォーム: Windows, macOS, Linuxなど、主要なOSで動作します。
- ✅ 強力なスクリプトエンジン(NSE): 用途に合わせて機能を拡張でき、単純なポートスキャン以上のタスクを実行できます。
- ✅ 豊富な出力形式: スキャン結果をテキスト形式やXML形式など、様々な形で保存できます。
Nmapのダウンロードとインストール

Nmapは公式サイトからダウンロードできますが、OSのパッケージマネージャーを使うと簡単にインストールできます。
Windowsの場合
Windowsでは公式インストーラー(Nmap Setup)を使うのが最も簡単です。
Nmap公式サイトのダウンロードページにアクセスし、「Latest stable release self-installer」からインストーラー(.exeファイル)をダウンロードして実行してください。インストールウィザードの指示に従うだけで完了します。
インストール後、コマンドプロンプトやPowerShellを起動し、以下のコマンドでNmapが正しくインストールされたか確認できます。
C:\> nmap -v
Nmap version 7.92 ( https://nmap.org )
...
macOSの場合
macOSでは、パッケージ管理ツールであるHomebrewを使うのが便利です。
$ brew install nmap
Linux (Debian/Ubuntu) の場合
$ sudo apt update
$ sudo apt install nmap
Linux (CentOS/RHEL/Fedora) の場合
$ sudo dnf install nmap
いずれのOSでも、インストール後に nmap --version
を実行してバージョン情報が表示されれば成功です。
Nmapの基本的な使い方 – 5つのステップ

インストールが完了したら、早速Nmapを使ってみましょう。ここでは、最も基本的なスキャンの流れを5つのステップで紹介します。ただし、一つ一つ覚える必要はありません。作業効率のために、chatgptにやり方をきいたり、結果の解説をしてもらう事を進める。
※スキャンのテストには、Nmapが公式に提供しているスキャン練習用のホスト `scanme.nmap.org` を使いましょう。
Step 1: ターゲットの指定方法
Nmapコマンドの基本形は nmap [スキャンタイプ] [オプション] {ターゲット}
です。ターゲットは以下のように指定できます。
- IPアドレス:
nmap 192.168.1.1
- ホスト名:
nmap scanme.nmap.org
- CIDR表記(範囲指定):
nmap 192.168.1.0/24
Step 2: 最も基本的なスキャン(TCPスキャン)
まずは、オプションなしでシンプルなスキャンを実行してみます。これにより、ターゲットのよく使われるポート(Well-Known Ports)の状態を確認できます。

結果の見方は以下の通りです。
- PORT: ポート番号とプロトコル(tcp/udp)
- STATE: ポートの状態
open
: ポートが開いており、サービスが応答を待っています。closed
: ポートは閉じられており、サービスは稼働していません。
- SERVICE: そのポートで一般的に使われるサービス名(ssh, httpなど)
Step 3: スキャンタイプの選択(SYNスキャン)
-sS
オプションを付けると、「SYNスキャン(ステルススキャン)」を実行します。これはTCPの接続を完全に確立させずにポートの状態を判断するため、より高速で、検知されにくいという特徴があります。特に理由がなければ、この -sS
を使うのが一般的です。(root/Administrator権限が必要です)
$ sudo nmap -sS scanme.nmap.org

実行結果は先ほどの通常スキャンとほぼ同じですが、スキャンメカニズムが異なります。
Step 4: OSとバージョンの特定
-A
オプションは、OS検知、バージョン検知、スクリプトスキャン、トレースルートを一度に実行する強力なオプションです。これにより、ターゲットに関するより詳細な情報を得られます。今回は都合上、-Pnもつけてる。

先ほどの結果に加え、VERSION
列にSSHやWebサーバーの具体的なバージョンが表示されたり、OS details
でOSがLinuxであることなどが推測できたりします。
Step 5: スキャン結果の保存
スキャン結果をファイルに保存しておくと、後で分析する際に便利です。-oN
オプションでテキスト形式で保存できます。
# result.txt という名前でテキスト保存
$ nmap -A -oN result.txt scanme.nmap.org

Nmapのお役立ち機能(応用編)

基本的な使い方をマスターしたら、さらに便利なオプションも試してみましょう。
よく使われる便利なスキャンオプション
-p-
: 1番から65535番までの全ポートをスキャンします(通常は主要な1000ポートのみ)。-T4
: スキャン速度を上げます(T0〜T5まであり、T4はアグレッシブ)。ただし、ネットワークに負荷をかけるので注意が必要です。-v
: スキャンの進行状況を詳細に表示します。-vv
とするとさらに詳しくなります。-sn
: ポートスキャンを行わず、ネットワーク内のどのホストがアクティブか(Ping応答があるか)だけを素早く確認します(Pingスキャン)。
Nmap Scripting Engine (NSE) で脆弱性を探す
Nmapの真骨頂とも言えるのが、Nmap Scripting Engine (NSE) です。これを使えば、様々な自動化タスクを実行できます。特に、vuln
カテゴリのスクリプトを使えば、既知の脆弱性がないかをスキャンできます。
コマンド例:ターゲットの脆弱性をスキャンする
$ nmap --script vuln scanme.nmap.org
注意:これはあくまで簡易的な診断であり、本格的な脆弱性診断ツールの代わりにはなりません。
実践!シナリオ別Nmap活用例
ここでは、より実践的なNmapの活用シナリオを2つ紹介します。
シナリオ1:自分のWebサーバーの公開ポートを確認する
自分でWebサーバーを構築した際、「意図しないポートが外部に公開されていないか?」を確認するのは非常に重要です。自分のサーバーのグローバルIPアドレスに対してNmapを実行してみましょう。
目的: 自分の管理下にあるサーバーのセキュリティ設定(ファイアウォールなど)が正しく機能しているかを確認する。
# 自分のサーバーのIPアドレスをスキャン
$ nmap -sS -A YOUR_SERVER_IP_ADDRESS
# 想定される結果(例:WebとSSHのみ公開)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
もしこの結果に、FTP(21/tcp)やデータベース(3306/tcp)など、公開するつもりのないポートが `open` と表示されたら、サーバーのファイアウォール設定を見直す必要があります。
シナリオ2:LANに新しく接続された未知のデバイスを見つける
自宅やオフィスのネットワークに、「誰かが勝手にデバイスを接続していないか?」を確認したい場合があります。-sn
オプションで、ネットワーク内のアクティブなホストを一覧表示できます。
目的: 管理しているローカルネットワーク内のデバイスを棚卸しする。
# 自宅のネットワーク範囲をスキャン(ルーターが 192.168.1.1 の場合など)
$ nmap -sn 192.168.1.0/24
Starting Nmap 7.92 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.15
Host is up (0.052s latency).
Nmap scan report for 192.168.1.28
Host is up (0.12s latency).
...
表示されたIPアドレスのリストを見て、自分のPCやスマートフォンなど、心当たりのないIPアドレスがあれば、それが未知のデバイスである可能性があります。
【最重要】Nmap利用時の絶対的な注意点 – 倫理と法律
Nmapは非常に強力なツールですが、その力を無闇に振るってはいけません。使い方を誤ると、サイバー攻撃とみなされる可能性があります。
絶対に覚えておいてください:許可なく第三者のネットワークやサーバーにNmapでスキャンをかけることは、絶対にやってはいけません。
これは、他人の家のドアを片っ端からガチャガチャと開けようとする行為に似ています。たとえ悪意がなくても、相手にとっては攻撃であり、不法行為です。日本では不正アクセス禁止法に抵触する恐れがあります。
Nmapを使った学習は、必ず以下の環境で行ってください。
- 自分の管理下にあるPCやネットワーク(自宅のLANなど)
- `scanme.nmap.org` のような、スキャンが許可されている学習用サイト
- CTF(Capture The Flag)など、ルールでスキャンが許可されている競技環境
技術を学ぶことと、それを正しく使うことはセットです。常に倫理観を持ってツールを扱いましょう。
まとめ
今回は、ネットワーク探索ツール「Nmap」の基本的な使い方から、実践的な活用例、そして利用上の注意点までを解説しました。
- Nmapはネットワークの状態を知るための強力なツールである。
- インストールは各OSのパッケージマネージャーで簡単に行える。
nmap -sS -A [ターゲット]
が基本かつ強力なスキャン方法。- 自分の管理下にある環境で、設定確認などの目的で実践的に活用できる。
- 最も重要なのは、許可のない相手に絶対に使用しないという倫理観。
Nmapを正しく使いこなせれば、セキュリティの知識やスキルは格段に向上します。ぜひ、安全な環境で色々なオプションを試しながら、その奥深さを探求してみてください!
誰でも無料で参加できるハッキング体験会の参加者募集中!!
