Ubuntu20.04/18.04で確認。
namp
、ss
、lsof
の違いは以下のとおり。
nmap
は開いているポートをすべて表示ss -atun
はLISTEN
しているポートを表示lsof -i
は実際にプロセスが使用しているポートを表示ref. https://www.linuxmaster.jp/linux_skill/2009/02/linux-4.html
$ nmap 127.0.0.1 -sS -Pn -p 80
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-16 08:51 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00052s latency).
PORT STATE SERVICE
80/tcp closed http
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
p
オプションは1-10000
というように範囲していできます。
$ nmap 127.0.0.1 -sS -Pn -p 1-10000
p
オプションでポートを指定しないときは代表的な2000のポートをスキャンしますsU
オプションを指定するとTCPだけでなくUDPもスキャンします-p 1-65535
を指定しますsS
オプションはSYNスキャンのオプションですPn
オプションは事前にpingを発行しないオプションですnmap
はデフォルトでは事前にpingを発行して応答のある対象にのみスキャンを実施しますnmap
を使用してexample.org
にSYNスキャン(sSオプション)を実行します。
$ dig +short example.org | xargs sudo nmap -Pn -sS
Starting Nmap 7.80 ( https://nmap.org ) at 2022-06-03 22:01 UTC
Stats: 0:00:04 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 28.55% done; ETC: 22:01 (0:00:10 remaining)
Nmap scan report for 93.184.216.34
Host is up (0.10s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
1119/tcp closed bnetgame
1935/tcp closed rtmp
同様にp
オプションでポート443を指定してSYNスキャンを実行する。
# ポートを指定してSYNスキャン
$ dig +short example.org | xargs sudo nmap -Pn -sS -p 443
Starting Nmap 7.80 ( https://nmap.org ) at 2022-06-03 22:34 UTC
Nmap scan report for 93.184.216.34
Host is up (0.095s latency).
PORT STATE SERVICE
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds
スキャンの種類
仮にポートを許可していてもデーモンが起動していない場合はNmapのSTAT
はclosed
。
スリーウェイハンドシェイクができないので当然。
# AWSのセキュリティグループではTCP 80を許可
sudo nmap -Pn -n -p 80 -sT 127.0.0.1
Starting Nmap 7.80 ( https://nmap.org ) at 2022-06-04 02:17 UTC
Nmap scan report for 127.0.0.1
Host is up (0.00010s latency).
PORT STATE SERVICE
80/tcp closed http
セキュリティグループは以下を前提とする。
httpd:latestを起動する。
$ sudo docker run -d -p 8000:80 --name httpd httpd
d0f36dfe2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ホストのIPアドレスを203.0.113.100
と仮定する
http://203.0.113.100:8000
でアクセスできる。
nmap
では以下のようになる。
80
はclosed
8000
はopen
sudo nmap -Pn -n -p 8000,80 -sT 127.0.0.1
Starting Nmap 7.80 ( https://nmap.org ) at 2022-06-04 02:44 UTC
Nmap scan report for 127.0.0.1
Host is up (0.00015s latency).
PORT STATE SERVICE
80/tcp closed http
8000/tcp open http-alt
Nampはポートが開いている場合に実際ポートを使用しているサービスを表示するとは限りません。 IANAを参照してSERVICEに表示することがあります。
実際に使用しているサービス/プロセスを調べるにはfuser
を使用します。
fuser -v 9000/tcp