4.

nmap によるポートスキャンの基礎 | ネットワーク入門

編集
この記事の要点
  • nmap (Network Mapper) は対象ホストの開いているポート・稼働サービス・OS を調査する定番のネットワークスキャナ
  • 代表的なスキャン手法に TCP SYN スキャン (-sS, 高速・要 root) と TCP connect スキャン (-sT, 非 root でも可) がある
  • -sV でサービスとバージョンを推定、-O で OS を推定できる。ファイアウォール/サービス棚卸しの検証に有用
  • スキャンは許可された自社/自分の管理対象にのみ行う。無断スキャンは不正アクセス禁止法等に抵触しうる
  • 結果は open / closed / filtered の 3 状態で読む。filtered はファイアウォールに遮断されている兆候

概要

nmap (Network Mapper) は、対象ホストやネットワークに対してどのポートが開いているか、どんなサービスが動いているか、OS は何かといった情報を調査するためのオープンソースのスキャナです。ファイアウォール設定の検証、公開サービスの棚卸し、脆弱性診断の初手として広く使われます。ここで扱う「ポートスキャン」は、対象の各 ポート番号 に接続を試み、その応答から開放状態を判定する技術です。必ず自分が管理する、または明示的に許可を得たホストにのみ実施してください。

仕組み

nmap は対象ポートへ TCP/UDP のパケットを送り、その応答パターンから状態を判定します。代表的な TCP スキャン手法は次の 2 つです。

  • TCP SYN スキャン (-sS): TCP の 3way ハンドシェイクのうち SYN だけを送り、SYN/ACK が返れば open、RST なら closed、無応答なら filtered と判定する。コネクションを完全には張らない (ハーフオープン) ため高速で、相手のアプリログに残りにくい。raw socket を使うので root 権限が必要。
  • TCP connect スキャン (-sT): OS の connect() を使って通常どおり接続を完成させる方式。非 root でも実行できるが遅く、相手のログに接続記録が残る。SYN スキャンが使えない環境のフォールバック。

応答の判定結果は open (受け付けている)、closed (ホストは応答するがそのポートは閉じている)、filtered (ファイアウォール等で遮断され応答が得られない) の 3 状態で表現されます。filtered と closed の区別は、ファイアウォールの有無を見極めるうえで重要です。

実用例

以下はすべて、自分が管理する検証ホスト (例では scanme.nmap.org という nmap 公式が公開しているスキャン練習用ホスト、または自社サーバ) を想定した例です。

# 代表的な高速スキャン (SYN スキャン、要 root)
sudo nmap -sS scanme.nmap.org

# 非 root でも動く connect スキャン
nmap -sT scanme.nmap.org

# 全 65535 ポートを対象に
sudo nmap -p- 192.168.1.10

# サービスとバージョンを推定
sudo nmap -sV -p 22,80,443 192.168.1.10

# OS 推定もまとめて (要 root)
sudo nmap -sS -sV -O 192.168.1.10

# サブネット全体の稼働ホスト発見 (ping スキャンのみ、ポートは見ない)
nmap -sn 192.168.1.0/24

# 結果をファイルに保存 (証跡として)
sudo nmap -sV -oN scan-result.txt 192.168.1.10

出力では各ポートが 22/tcp open ssh のように「ポート/プロトコル 状態 サービス」の形式で並びます。-sV を付けるとさらにバージョン文字列が付与され、古い脆弱なバージョンの洗い出しに役立ちます。

主な用途

  • ファイアウォール検証: 許可したポートだけが open、それ以外が filtered/closed になっているかを外部視点で確認する。
  • サービス棚卸し: 意図せず開いている不要ポート・古いサービスを発見する。
  • 変更後の差分確認: 設定変更の前後でスキャンし、開放ポートが想定どおり変わったかを照合する。
  • 脆弱性診断の初手: 開いているポートとバージョンを把握し、後続の精密診断につなげる。

スキャン手法の比較

手法オプション権限速度ログ痕跡
SYN スキャン-sSroot 必須速い残りにくい
connect スキャン-sT不要遅い残る
UDP スキャン-sUroot 推奨非常に遅い環境依存
ping スキャン-sn環境依存速い少ない

注意点

  • 許可された対象のみ: 自分の管理外ホストへの無断スキャンは不正アクセス禁止法等に抵触するおそれがある。診断は対象の所有者の明示的同意のもとで実施する。
  • 侵入検知に引っかかる: IDS/IPS や WAF はポートスキャンを攻撃前兆として検知・遮断する。自社環境でも事前に関係部署へ連絡する。
  • UDP スキャンは不確実: UDP はステートレスで応答が返らないことが多く、open|filtered という曖昧な判定になりやすい。時間もかかる。
  • filtered の解釈: filtered は「閉じている」ではなく「ファイアウォールで遮られて判定できない」。closed と混同しない。
  • 負荷: -p- による全ポートスキャンや高速オプションは対象に負荷をかける。本番サービスへは時間帯やレートに配慮する。

関連リンク

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ウェルノウンポート一覧
  2. ポートフォワーディング
  3. ポートの確認方法
  4. nmapによるポートスキャン

最近更新/作成されたページ