ネットワーク管理やセキュリティ対策を行う上で、ネットワーク内の状況を正確に把握することは欠かせません。
そんなときに非常に頼りになるのが「nmap(エヌマップ)」というコマンドツールです。
nmapはLinux環境で広く使われているネットワークスキャナで、対象となるホストの生存確認や開いているポートの調査、OSの特定など、さまざまな用途に対応しています。
この記事では、nmapの基本的な使い方から、実践的なコマンド例、便利なオプションまで、初学者にもわかりやすく解説します。
nmapは「Network Mapper」の略で、ネットワーク探索やセキュリティ監査に使用されるオープンソースのツールです。
Linuxをはじめ、WindowsやmacOSなど主要なOSで利用できるクロスプラットフォーム対応のツールとして人気があります。
セキュリティの専門家はもちろん、企業のネットワーク管理者や学習中のエンジニアにも広く使われています。
たとえば以下のような目的でnmapが利用されます。
多くのLinuxディストリビューションでは、nmapは標準リポジトリに含まれています。以下のようなコマンドで簡単にインストールできます。
sudo apt update
sudo apt install nmap
sudo dnf install nmap
インストール後、nmap -v
でバージョン情報を確認できます。
最も基本的な使い方は、特定のホストやIPアドレスに対してスキャンを行うシンプルな構文です。
nmap [対象のホストやIPアドレス]
nmap 192.168.1.10
このコマンドでは、192.168.1.10というIPアドレスに対して、標準的なポートスキャン(1〜1000番ポート)を実行します。
nmap 192.168.1.1 192.168.1.2 192.168.1.3
または、IPレンジで指定:
nmap 192.168.1.1-50
さらに、サブネット指定も可能:
nmap 192.168.1.0/24
ホストが生きているか確認したいだけなら、以下のようにpingスキャンを使います。
nmap -sn 192.168.1.0/24
(※昔の-sP
は現在-sn
に統一されています)
特定のポートだけをスキャンしたい場合:
nmap -p 22,80,443 192.168.1.10
ポート範囲の指定も可能です:
nmap -p 1-1000 192.168.1.10
ステルススキャンとも呼ばれる手法で、TCPのSYNパケットを使ってポートをチェックします。管理者権限が必要です。
sudo nmap -sS 192.168.1.10
対象ホストが使っているOSを推測します。正確な結果にはroot権限が必要です。
sudo nmap -O 192.168.1.10
ポートごとに動いているサービスの種類やバージョンを調べます。
nmap -sV 192.168.1.10
sudo nmap -A 192.168.1.10
-A
は、OS検出、バージョン検出、スクリプトスキャン、tracerouteを一括で実行する強力なオプションです。
nmapには「NSE(Nmap Scripting Engine)」というスクリプト機能が搭載されており、脆弱性診断や高度な情報収集に利用できます。
nmap --script=vuln 192.168.1.10
これは代表的な脆弱性スクリプトを実行する例です。
スキャン結果はファイルに出力することができます。以下はXML形式、grep形式、通常形式で保存する例です。
nmap -oX output.xml 192.168.1.10
nmap -oG output.grep 192.168.1.10
nmap -oN output.txt 192.168.1.10
これらのファイルはレポート作成や解析に役立ちます。
nmapは、シンプルな構文で強力なネットワークスキャンを可能にするLinuxツールです。
基本的なpingスキャンから、SYNスキャン、OSやサービスの検出、さらにはスクリプトによる脆弱性診断まで、さまざまな用途に対応しています。
ネットワークの可視化やセキュリティチェックを行いたい場合は、nmapを活用することで大きな助けになるでしょう。
ただし、使い方には注意が必要であり、許可された環境でのみ利用することが大切です。
nmapの操作に慣れてくると、より複雑なスキャンも自在に扱えるようになります。まずはこの記事を参考に、基本のコマンドから試してみてください。