Nmap(Network Mapper)は、ネットワークセキュリティ監査やネットワークインベントリの管理などで広く使用される強力なツールです。Nmapを使用することで、ネットワークに接続されているデバイスの情報や、各デバイスに開かれているポートを把握することができます。本記事では、Nmapを使って自分のサーバーの開いているポートを検出する方法について詳しく解説します。
1. Nmapのインストール
Nmapを使用するためには、まず自分のコンピュータにインストールする必要があります。Nmapは、Linux、Windows、macOSのいずれのプラットフォームにも対応しています。

-
Linux(Ubuntu/Debian系)
以下のコマンドでインストールできます。bashsudo apt update sudo apt install nmap
-
Windows
Nmapの公式ウェブサイト(https://nmap.org/download.html)からWindows用のインストーラをダウンロードしてインストールできます。 -
macOS
Homebrewを使ってインストールする場合、以下のコマンドを使用します。bashbrew install nmap
インストールが完了したら、コマンドラインからnmap
コマンドを実行して動作を確認します。
2. Nmapの基本的な使い方
Nmapを使ってサーバーのポートをスキャンする基本的なコマンドの形式は以下のようになります。
bashnmap <ターゲットホスト>
ここで、<ターゲットホスト>
はIPアドレスまたはホスト名です。例えば、特定のサーバーのIPアドレス(例:192.168.1.1)に対してスキャンを行う場合、次のように入力します。
bashnmap 192.168.1.1
このコマンドは、ターゲットホストに開かれているポートの情報を提供します。
3. ポートスキャンの種類
Nmapでは、異なるスキャン手法を使用して、より詳細な情報を得ることができます。代表的なスキャン方法を以下に紹介します。
3.1. TCP接続スキャン
最も基本的なスキャンで、TCP接続を確立して開いているポートを調べます。これを行うには、以下のコマンドを使用します。
bashnmap -sT <ターゲットホスト>
このスキャンは、ターゲットホストのTCPポートに対して、フルTCP接続を行い、どのポートが開いているかを調べます。
3.2. SYNスキャン
SYNスキャン(ステルススキャンとも呼ばれます)は、ターゲットに完全なTCP接続を行わず、ポートが開いているかどうかを確認するためにSYNパケットを送信する方法です。これにより、スキャンがより素早く行われ、ターゲットに対する検出を避けることができます。
bashnmap -sS <ターゲットホスト>
3.3. UDPスキャン
UDPポートをスキャンするには、-sU
オプションを使用します。UDPポートは、TCPポートと異なり、接続を確立しないため、TCPスキャンよりも難易度が高いことがあります。
bashnmap -sU <ターゲットホスト>
4. ポートの範囲を指定する
Nmapでは、スキャン対象のポートを指定することもできます。例えば、1から1000までのポートだけをスキャンしたい場合、次のコマンドを使用します。
bashnmap -p 1-1000 <ターゲットホスト>
特定のポート番号を指定することも可能です。例えば、80番(HTTP)と443番(HTTPS)のみをスキャンする場合は次のようにします。
bashnmap -p 80,443 <ターゲットホスト>
5. スキャン結果の詳細表示
スキャン結果の詳細な情報を得るために、-v
(verbose)オプションを追加すると、スキャンの進行状況や詳細が表示されます。
bashnmap -v <ターゲットホスト>
また、さらに詳細な出力を得るためには、-A
オプションを使用することもできます。このオプションは、OS検出やバージョン検出、スクリプトスキャンなど、追加の機能を有効にします。
bashnmap -A <ターゲットホスト>
6. サービスとバージョンの検出
ポートが開いていることがわかったら、さらにそのポートで稼働しているサービスやそのバージョンを検出することも可能です。-sV
オプションを使うと、Nmapはサービスのバージョン情報を提供します。
bashnmap -sV <ターゲットホスト>
例えば、HTTPサービスが80番ポートで動作している場合、そのバージョン(Apache、Nginx、IISなど)も確認できます。
7. スクリプトによる検査
Nmapには多くのスクリプトが組み込まれており、これらを利用することで、より詳細なセキュリティチェックを行うことができます。-sC
オプションを使用すると、Nmapのデフォルトのスクリプトが実行され、ターゲットホストに対して一連のセキュリティ検査が行われます。
bashnmap -sC <ターゲットホスト>
また、特定のスクリプトを実行したい場合は、--script
オプションを使って指定することができます。
bashnmap --script <スクリプト名> <ターゲットホスト>
8. 結果の保存
スキャン結果をファイルに保存することができます。これにより、後で分析することが可能です。結果を保存するには、-oN
オプションを使って通常のテキストファイルとして保存する方法や、-oX
オプションを使ってXML形式で保存する方法があります。
bashnmap -oN output.txt <ターゲットホスト>
9. サーバーへの負荷を避けるための注意点
Nmapを使用する際は、ターゲットサーバーへの負荷に注意が必要です。過度なスキャンや詳細なスキャンを行うと、サーバーに負荷をかけ、場合によってはサービスが一時的に停止することがあります。スキャンを実行する前に、ターゲットに許可を得ることが重要です。
10. まとめ
Nmapはネットワークのセキュリティ分析やポートスキャンにおいて非常に強力なツールであり、サーバーのセキュリティ状態を把握するために欠かせないツールです。今回紹介したように、ポートスキャンの方法や、サービスのバージョン確認、さらにはセキュリティスキャンまで幅広く対応できるため、ネットワーク管理者やセキュリティ専門家にとって不可欠なツールと言えるでしょう。
使用する際には、ターゲットサーバーの負荷やセキュリティポリシーに注意し、合法的な範囲内で利用するようにしましょう。