Linux nmap コマンド
nmap(Network Mapper)は、Linuxシステムで最も強力なネットワーク探索およびセキュリティ監査ツールの1つです。システム管理者やネットワークセキュリティ専門家を支援します:
- ネットワーク上のアクティブなホストを発見する
- 開放されているポートとサービスをスキャンする
- OSの種類とバージョンを識別する
- ネットワークサービスの脆弱性を検出する
nmapはその柔軟性、強力な機能、クロスプラットフォーム特性により、ネットワークセキュリティ評価、システム管理、ネットワーク監視などの分野で広く利用されています。
基本構文
nmapの基本コマンド形式は次のとおりです:
nmap [扫描类型] [选项] {目标规范}
ここで:
スキャンタイプ:nmapが使用するスキャン技術を指定オプション:スキャン動作を設定する各種パラメータターゲット仕様:IPアドレス、ホスト名、またはIP範囲を指定可能
よく使うスキャンタイプ
TCP SYN スキャン (-sS)
最も一般的でデフォルトのスキャン方式で、「ハーフオープンスキャン」とも呼ばれます:
nmap -sS 192.168.1.1
特徴:
- 高速かつステルス性が高い
- TCPスリーウェイハンドシェイクを完了しない
- root権限が必要
TCP 接続スキャン (-sT)
標準的なTCP接続スキャン:
nmap -sT 192.168.1.1
特徴:
- root権限が不要
- 完全なTCP接続を確立する
- 速度が遅く、検出されやすい
UDP スキャン (-sU)
UDPポートをスキャン:
nmap -sU 192.168.1.1
特徴:
- UDPスキャンは速度が遅い
- 多くのUDPサービスは応答しない
- root権限が必要
OS検出 (-O)
ターゲットホストのOSを識別します:
nmap -O 192.168.1.1
よく使うオプションパラメータ
ポート指定 (-p)
特定のポートまたはポート範囲をスキャン:
例
nmap -p 1-100 192.168.1.1 # 1〜100番ポートをスキャン
nmap -p- 192.168.1.1 # 全65535ポートをスキャン
サービスバージョン検出 (-sV)
サービスの詳細なバージョン情報を調査します:
nmap -sV 192.168.1.1
スキャン速度 (-T)
スキャン速度を制御します(0〜5、数字が大きいほど高速):
nmap -T4 192.168.1.1 # 较快的扫描速度
出力形式
複数の出力形式オプション:
例
nmap -oX result.xml 192.168.1.1 # XML形式
nmap -oG result.gnmap 192.168.1.1 # grep可能な形式
実用的な例
基本的なネットワークスキャン
nmap 192.168.1.1
出力例:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-05-01 10:00 UTC Nmap scan report for 192.168.1.1 Host is up (0.045s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https
包括的スキャン(OS+サービスバージョン)
nmap -A 192.168.1.1
サブネット全体をスキャン
nmap 192.168.1.0/24
ファイルから対象リストを読み込む
nmap -iL targets.txt
スキャン結果の解釈
nmap出力におけるポート状態の意味:
| 状態 | 説明 |
|---|---|
| open | ポートが開放されており、アプリケーションが待ち受けている |
| closed | ポートが閉じている(ホストには到達可能だが、待ち受けるアプリケーションがない) |
| filtered | ポートがファイアウォール/ネットワークによってフィルタリングされ、状態を判定できない |
| unfiltered | ポートにはアクセスできるが、開放か閉鎖かを判定できない(ACKスキャン用) |
| open|filtered | ポートが開放されているのかフィルタリングされているのか判定できない(UDPスキャンで一般的) |
| closed|filtered | ポートが閉じているのかフィルタリングされているのか判定できない |
セキュリティと法的注意事項
- 合法的な使用:スキャンする権限があるネットワークとシステムのみをスキャンする
- 許可を取得する:企業ネットワークで使用する前に、書面による許可を必ず取得する
- 乱用を避ける:大量の高速スキャンは攻撃行為とみなされる可能性がある
- プライバシーを尊重する:自分が所有していないネットワークリソースをスキャンしない
上級テクニック
ファイアウォールの回避
例
nmap --data-length 100 192.168.1.1 # ランダムデータを追加
nmap -D RND:5 192.168.1.1 # デコイスキャン
定期スキャンスクリプト
例
DATE=$(date +%Y%m%d)
nmap -sS -p- -T4 -oN scan_$DATE.log 192.168.1.0/24
結果の比較
ndiff scan1.xml scan2.xml
よくある質問
Q: nmapスキャンになぜroot権限が必要ですか?A: 一部のスキャンタイプ(SYNスキャンなど)はネットワークパケットを直接操作する必要があり、これにはroot権限が必要です。
Q: スキャン速度を速くするには?A: 使用します-T4 或 -T5オプションでタイムアウト時間を短縮するか、スキャンするポート範囲を制限します。
Q: nmapスキャンはファイアウォールに検出されますか?A: スキャンタイプとファイアウォール設定によります。SYNスキャンはフル接続スキャンよりもステルス性が高いです。
Q: IPv6アドレスをスキャンするには?A: IPv6アドレスを直接使用するだけです:nmap 2001:db8::1
学習リソースのおすすめ
- 公式ドキュメント:
man nmap - Nmap公式書籍:『Nmap Network Scanning』
- オンラインチュートリアル:https://nmap.org/book/toc.html
- インタラクティブ学習:https://tryhackme.com/room/furthernmap
nmapを習得することで、強力なネットワーク探索能力を身につけ、システム管理やネットワークセキュリティ業務の強固な基盤を築くことができます。簡単なスキャンから始めて、徐々に複雑なオプションやテクニックに挑戦することをお勧めします。
その他の拡張