Linuxでリモートマシンの開放ポートを調べる方法(nmap)

Linuxでリモートマシンの開放ポートを調べる方法(nmap)

ここでは、Linuxでリモートマシンで開放されているポートを調査する方法として、nmapコマンドを使った方法を紹介します。

nmapコマンドの書式とオプション

最小構成でインストールしたLinuxではnmapコマンドがインストールされていない場合があり、そのようなときは、パッケージ管理コマンド(yumやdnf)でインストールする必要があります。

書式

nmap [オプション] {ターゲット}

主なオプション

オプション説明
-sTTCPスキャンを実施します。
-sUUDPスキャンを実施します。
-sPpingに応答するホストの一覧を表示します。
-sAACKフラグだけのパケットを送ります。
-AOSとバージョンの検知を試みます。
-OOSを推定します。
-F限定したポートのみを調べます。

主なポートの状態

ポートの状態説明
openポートが開いている状態です。
closedポートが閉じている状態です。
filteredパケットフィルタなどによりポートが開いているかどうか
を判別できない状態です。

nmapコマンドの使い方

対象マシンで開放されているポートを検索するときは、以下のようにコマンドを実行します。

# nmap 192.168.0.1

指定したネットワークで使用されているIPアドレスを調べるときは、以下のようにコマンドを実行します。

# nmap -sP 192.168.0.*

対象マシンのOSや、Webサーバーソフトウェアとバージョンを確認するときは、以下のようにコマンドを実行します。(確認できない場合もあります。)

# nmap -A 192.168.0.1

ファイアーウォールで保護されているか確認するときは、以下のようにコマンドを実行します。(「filtered」と出力されたら保護されています。)

# nmap -sA 192.168.0.1

利用率の高いポートのみをスキャンするときは、以下のようにコマンドを実行します。

# nmap -F 192.168.0.1

あとがき

コマンドのオプションやターゲットの指定方法を工夫することで、さまざまな調査ができますが、第三者のサーバーに対しての不用意なポートスキャンは、不正アクセスと受け取られかねませんので、スキャン対象は自分が管理しているマシンに限定しましょう。