はじめに
この実験では、無料かつオープンソースのネットワークスキャナーである Nmap でスキャン対象を指定する方法を学びます。この実験では、IP アドレス 127.0.0.1 を使用したローカルホストのスキャン、IP 範囲 (例:192.168.1.1 - 10)、サブネット (例:192.168.1.0/24)、Xfce でのターゲットリスト作成とスキャン、特定の IP をスキャンから除外すること、および Xfce ターミナルでの結果の確認といった様々なスキャンシナリオを網羅しています。
この実験では、無料かつオープンソースのネットワークスキャナーである Nmap でスキャン対象を指定する方法を学びます。この実験では、IP アドレス 127.0.0.1 を使用したローカルホストのスキャン、IP 範囲 (例:192.168.1.1 - 10)、サブネット (例:192.168.1.0/24)、Xfce でのターゲットリスト作成とスキャン、特定の IP をスキャンから除外すること、および Xfce ターミナルでの結果の確認といった様々なスキャンシナリオを網羅しています。
このステップでは、Nmap を使用して自分のマシン、つまり localhost をスキャンする方法を学びます。localhost スキャンはネットワークセキュリティの基本的なステップであり、マシン上で動作しているサービスや脆弱性があるかどうかを理解するのに役立ちます。
始める前に、localhost と Nmap について簡単に説明します。
127.0.0.1 を使用します。localhost をスキャンすると、実際には自分のマシンをスキャンしています。Nmap を使用して localhost をスキャンするには、以下の手順に従います。
Xfce ターミナルを開きます。ターミナルは、Linux オペレーティングシステムと対話するための入り口です。
次のコマンドを入力し、Enter キーを押します。
nmap 127.0.0.1
このコマンドは、Nmap に localhost である IP アドレス 127.0.0.1 をスキャンするように指示します。
出力を確認します。Nmap は、マシン上で動作しているオープンポートとサービスのリストを表示します。出力は次のようになります。
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:10 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000096s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
2121/tcp open ccproxy-ftp
2222/tcp open EtherNetIP-1
3001/tcp open nessus
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
出力は、マシン上のオープンポートとそのポートに関連付けられたサービスを示しています。たとえば、ポート 22 は通常 SSH、ポート 8080 は HTTP プロキシなどに使用されます。STATE 列は、ポートが開いている、閉じている、またはフィルタリングされていることを示します。
注意: 表示される特定のポートとサービスは、マシンの構成によって異なります。
このステップでは、Nmap を使用して IP アドレスの範囲をスキャンする方法を学びます。IP 範囲のスキャンは、ネットワークセグメント内のアクティブなホストを発見するのに役立ちます。
始める前に、IP 範囲について理解しましょう。
192.168.1.1-10 は 192.168.1.1 から 192.168.1.10 までの IP アドレス (両端を含む) を表します。Nmap を使用して IP 範囲 192.168.1.1-10 をスキャンするには、以下の手順に従います。
Xfce ターミナルを開きます。
次のコマンドを入力し、Enter キーを押します。
nmap 192.168.1.1-10
このコマンドは、Nmap に 192.168.1.1 から 192.168.1.10 までのすべての IP アドレスをスキャンするように指示します。
出力を確認します。Nmap は、指定された範囲内の各 IP アドレスのスキャン結果を表示します。出力は次のようになります。
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:11 CST
Nmap done: 10 IP addresses (0 hosts up) scanned in 5.04 seconds
出力は、範囲内の各 IP アドレスの状態を示します。この場合は、192.168.1.1-10 の範囲で、ホストが稼働している状態は見つかりませんでした。ホストが稼働している場合、Nmap はそれらのホスト上で動作しているオープンポートとサービスを表示します。
注意: 表示される特定の IP アドレス、ポート、およびサービスは、ネットワーク構成によって異なります。また、一部のホストは Nmap スキャンをブロックするように設定されているため、実際には稼働している場合でも、ダウンしているように表示される場合があります。
このステップでは、Nmap を使用してサブネット全体をスキャンする方法を学びます。サブネットのスキャンは、ネットワーク管理者やセキュリティ専門家がネットワーク内のすべてのアクティブなホストを発見するために一般的なタスクです。
始める前に、サブネットと CIDR 表記について説明します。
192.168.1.0/24 では、192.168.1.0 がネットワークアドレス、/24 がサブネットマスクを示します。/24 サブネットマスクは、IP アドレスの先頭の 24 ビットがネットワークアドレスに使用され、残りの 8 ビットがホストアドレスに使用されることを意味します。これにより、合計 256 (2^8) 個のアドレスが使用可能になり、192.168.1.0 がネットワークアドレス、192.168.1.255 がブロードキャストアドレスになります。使用可能なホストアドレスは 192.168.1.1 から 192.168.1.254 までです。Nmap によるサブネットスキャンを実演するために、より実践的なアプローチを使用します。
Xfce ターミナルを開きます。
まず、サブネット内に応答するホストがあるかどうかを確認するために、クイックな ping スキャンを試してみましょう。次のコマンドを入力し、Enter キーを押します。
nmap -sn 192.168.1.0/24
-sn オプションは、ポートスキャンを行わずに「ping スキャン」(ホスト発見のみ) を実行するため、はるかに高速です。
ping スキャンが時間がかかりすぎる、または結果が表示されない場合は、Ctrl+C で中断し、代わりにより小さな範囲を試すことができます。
nmap -sn 192.168.1.1-20
これは、範囲内の最初の 20 個の IP アドレスのみをスキャンするため、より管理しやすくなります。
デモンストレーションのために、localhost を含むより小さなサブネットをスキャンしてみましょう。このコマンドを試してください。
nmap 127.0.0.0/30
これは非常に小さなサブネット (4 つのアドレスのみ:127.0.0.0、127.0.0.1、127.0.0.2、127.0.0.3) をスキャンし、迅速に完了するはずです。
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:11 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000096s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
2121/tcp open ccproxy-ftp
2222/tcp open EtherNetIP-1
3001/tcp open nessus
8080/tcp open http-proxy
Nmap done: 4 IP addresses (1 host up) scanned in 0.15 seconds
注意: 192.168.1.0/24 (256 個のアドレス) のような大きなサブネットのスキャンは非常に時間がかかり、LabEx などの仮想化環境のネットワークポリシーによってブロックされる可能性があります。詳細なポートスキャンを実行する前に、まずより小さな範囲をスキャンするか、ホスト発見オプションを使用してアクティブなターゲットを特定することが、より実践的です。
このステップでは、Nmap でターゲットリストファイルを使用して複数のホストをスキャンする方法を学びます。これは、事前に定義された IP アドレスまたはホスト名のリストをスキャンする場合に便利です。
作成済みの targets.txt ファイルを Nmap で使用する手順を以下に示します。
Xfce ターミナルを開きます。
まず、準備された targets.txt ファイルの内容を確認します。次のコマンドを入力し、Enter キーを押します。
cat ~/project/targets.txt
これにより、ファイルの内容が表示されます。
127.0.0.1
192.168.1.1
192.168.1.2
このファイルには、localhost (127.0.0.1) と 192.168.1.x 範囲の 2 つの IP アドレスの合計 3 つの IP アドレスが含まれており、これらをスキャンします。
次に、targets.txt ファイルに記載されている IP アドレスを Nmap でスキャンします。次のコマンドを入力し、Enter キーを押します。
nmap -iL ~/project/targets.txt
-iL オプションは、指定されたファイルからターゲットリストを読み込むように Nmap に指示します。この場合、~/project/targets.txt ファイルから IP アドレスを読み込みます。
出力を確認します。Nmap は、targets.txt ファイル内の各 IP アドレスのスキャン結果を表示します。出力は次のようになります。
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:13 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
2121/tcp open ccproxy-ftp
2222/tcp open EtherNetIP-1
3001/tcp open nessus
8080/tcp open http-proxy
Nmap done: 3 IP addresses (1 host up) scanned in 1.25 seconds
出力は、targets.txt ファイル内の各 IP アドレスの状態を示します。この例では、localhost (127.0.0.1) だけが稼働していることがわかり、他の IP アドレス (192.168.1.1 と 192.168.1.2) は LabEx 環境では到達できません。
このステップでは、Nmap スキャンから特定の IP アドレスを除外する方法を学びます。これは、サブネット全体をスキャンする必要があるが、特定のホスト(ネットワークデバイスやスキャン許可のないサーバーなど)をスキップしたい場合に便利です。
192.168.1.0/24 サブネットスキャンから IP アドレス 192.168.1.5 を除外するには、以下の手順に従います。
Xfce ターミナルを開きます。
次のコマンドを入力し、Enter キーを押します。
nmap 192.168.1.0/24 --exclude 192.168.1.5
--exclude オプションは、Nmap に指定された IP アドレスをスキャンから除外するように指示します。この場合、192.168.1.0/24 サブネットスキャンから 192.168.1.5 を除外します。
出力を確認します。スキャンが開始され、LabEx 環境のネットワーク構成によっては、出力は最小限になる場合があります。
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:13 CST
スキャンは、192.168.1.5 を除くサブネット内のすべての IP アドレスをチェックしようとします。つまり、192.168.1.5 が除外されたため、Nmap は 256 個ではなく 255 個の IP アドレスをスキャンします。
注意: LabEx 環境では、スキャンがネットワークセキュリティポリシーによって中断またはフィルタリングされる可能性があります。表示される特定の IP アドレス、ポート、サービスは、ネットワーク構成によって異なります。また、一部のホストは Nmap スキャンをブロックするように構成されているため、実際には稼働している場合でも、ダウンしているように表示される可能性があります。
この実験では、Nmap でスキャン対象を指定する方法を学びました。まず、コマンド nmap 127.0.0.1 を使用して localhost をスキャンし、SSH (ポート 22)、ccproxy-ftp (ポート 2121)、EtherNetIP-1 (ポート 2222)、nessus (ポート 3001)、および http-proxy (ポート 8080) などの実行中のサービスを特定しました。また、nmap 192.168.1.1-10 で IP 範囲をスキャンし、LabEx 環境ではアクティブなホストが見つからなかったことを学びました。サブネットスキャンについては、ホスト検出のための ping スキャン (nmap -sn) と、より高速な結果を得るための 127.0.0.0/30 などの小さなサブネットのスキャンを含む、実践的なアプローチを学びました。事前に作成された targets.txt ファイルを使用して、nmap -iL targets.txt で複数のターゲットをスキャンし、localhost は正常にスキャンできたものの、他の IP アドレスは到達できないことがわかりました。最後に、nmap 192.168.1.0/24 --exclude 192.168.1.5 を使用して、サブネットスキャンから特定の IP を除外する方法を学びました。これらの演習は、スキャン対象を指定するさまざまな方法と、異なるネットワーク環境に適切なスキャン手法を使用することの重要性を示しました。