Linux / コマンド / nmap - 許可されたホストのポートとサービス調査

nmapはホストとネットワークポートを調査するツールです。自分が管理している、または点検許可を受けた対象で開いているポートとサービスの状態を確認する際に使用します。

以下のTCP(Transmission Control Protocol)検査では、openは接続を受け付けるサービスが見つかった状態、closedは応答が得られたものの待ち受けサービスがない状態を表します。filteredはフィルタリングなどのため開閉を判定できない状態です。これらはその検査地点・方法から見た結果であり、別のネットワークからは違う状態に見える場合があります。

基本的な文法

nmap [オプション] 対象

インストールされている実装とオプションは、配布版によって異なる場合があります。man nmapで現在のシステムの説明を確認してください。

使用例

自分のコンピュータの点検

自分が管理する実習機の127.0.0.1(同じコンピューターを指すループバック)を対象にします。標準的な設定では、利用頻度の高いTCP 1000ポートを調べます。設定や実行権限で探索方式が変わる場合があるため、対象ポートや方式を固定したいときは明示します。

nmap 127.0.0.1

特定のTCPポートに絞る

対象範囲を自分のコンピュータと二つのポートに絞ります。

nmap -sT -p 22,80 127.0.0.1

ホスト発見のみ確認

自分のループバックに対して、ホスト発見だけを行う例です。-snはポートスキャンを省きますが、対象の応答を調べる探索処理まで無通信になる指定ではありません。

nmap -sn 127.0.0.1

自分のコンピュータを対象に結果を読み取る

ポートスキャンは、自分が管理するか明示的に許可された対象でのみ行ってください。実習では外部アドレスの代わりに自分のループバックインターフェースを使用します。

nmap -sT 127.0.0.1

出力で主に確認する列の構造:

PORT     STATE  SERVICE
22/tcp   open   ssh

openは、該当アドレス・ポートで接続を受け取ったことを意味します。実際に開かれたポートがなければ、表の代わりに閉じたポートの概要のみが表示されることがあります。サービス名はポート番号に基づく推定の場合があります。-sVで調べる場合も、検出結果を実際の設定と照合します。ローカルで動作するプロセスは、ssによる待ち受けポートと使用プロセスの確認も使って調べられます。ネットワークに影響を与える可能性のある高速大量スキャンは、許可範囲と運用ポリシーを先に確認する必要があります。

主なオプションと形式

オプション・形式 説明
-sT TCP connect方式でスキャンします。
-p ポート一覧 スキャンするポートを明示的に制限します。
-sn ポートスキャンなしでホスト発見を行います。
-Pn ホストの発見をスキップして対象を稼働中と見なして後続の検査を行います。
-sV ポートのサービスバージョンを推測します。追加のリクエストが発生します。
-oN ファイル プレーンテキストの結果をファイルに保存します。

使用する際の注意点

無断で他人のネットワークをスキャンしないでください。広範なアドレス範囲、サービスバージョンチェック、スクリプトスキャンはトラフィックや検出イベントを増加させます。結果は検査時点やファイアウォールのポリシーに依存するため、運用資産リストや実際のセキュリティ評価を置き換えるものではありません。

よくある質問

nmapでfilteredはポートが閉じているという意味ですか?

いいえ。応答がブロックされているか到達できないため、開いているか閉じているかを確定するのが難しいことを意味します。

公式ドキュメント

オプションの正確な動作や実装ごとの違いは、nmapの公式ドキュメントで確認できます。