0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Nmapについて

0
Posted at

プロキシ環境下でのNmapの挙動について

クラウドプロキシを利用している場合、PCの全通信はクラウドプロキシを経由する。
しかし、クラウドプロキシでもL7以上の通信しか見てないものがある。そういった場合にNmapを対象マシンへ実行すると結果はFillteredとなる。
これを仮想環境で検証した。

検証

検証するために、Squidを構築。
sudo apt update
sudo apt install squid

squid.conf の最低限設定を先頭に追加

以下のような設定にしたが、なんでもよさそう。

http_port 0.0.0.0:3128

# 送信元ネットワーク定義
acl localnet src 192.168.1.0/24

# 許可ポート定義
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 443

# 不正ポート拒否
http_access deny !Safe_ports

# CONNECTは443のみ許可
http_access allow CONNECT SSL_ports

# ローカルネット許可
http_access allow localnet

# それ以外拒否
http_access deny all

or

http_port 3128

acl localnet src 192.168.1.0/24
http_access allow localnet
http_access deny all

再起動
sudo systemctl restart squid

メインのLinuxとは別にサーバが8000portで起動している。通常ここへポートスキャンするとopenとなる。

以降はLinuxの設定である。

linuxから発生する通信をすべてSquidが起動している3128portへ転送
sudo iptables -t nat -A OUTPUT -p tcp ! --dport 3128 -j REDIRECT --to-ports 3128
sudo iptables -t nat -L -n -v

3128に来たパケットを監視
sudo tcpdump -i lo tcp port 3128

Nmap -p8000 -sTを実行した場合

01:18:02.700688 IP 192.168.56.104.50110 > localhost.3128: Flags [S], seq 1563469929, win 64240, options [mss 1460,sackOK,TS val 3581473456 ecr 0,nop,wscale 7], length 0
01:18:02.700717 IP 192.168.56.104.50110 > localhost.3128: Flags [.], ack 1250065234, win 502, options [nop,nop,TS val 3581473456 ecr 3611903104], length 0
01:18:02.700818 IP 192.168.56.104.50110 > localhost.3128: Flags [R.], seq 0, ack 1, win 502, options [nop,nop,TS val 3581473456 ecr 3611903104], length 0

応答がある。

Nmap -p8000 -sSの場合

01:20:25.387159 IP 192.168.56.104.39984 > localhost.3128: Flags [S], seq 3335946457, win 1024, options [mss 1460], length 0
01:20:25.387220 IP 192.168.56.104.39984 > localhost.3128: Flags [R], seq 3335946458, win 0, length 0
01:20:25.487405 IP 192.168.56.104.39986 > localhost.3128: Flags [S], seq 3335815387, win 1024, options [mss 1460], length 0
01:20:25.487437 IP 192.168.56.104.39986 > localhost.3128: Flags [R], seq 3335815388, win 0, length 0

となり、応答がない。

それぞれのNmapの結果は以下である。

-sT
image.png
image.png

TCPConnctの場合はOpenとなるが、SYNスキャンではFillteredとなっている。

おまけ

FW設定コマンド

nftables を完全リセット
sudo nft flush ruleset

確認
sudo nft list ruleset

サーバ側のFWで通信をドロップさせても同様の現象(Nmap=filltered)が起きる。以下は80,443以外の通信をドロップさせるものである。ネットワーク層の話ではなくポートレベルの話になりそうなので、若干プロキシの話とはずれている。

# 既存通信
sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 80/443のみ許可
sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

# 最後にDROP
sudo iptables -A OUTPUT -j DROP

■ FORWARD も同様

sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
sudo iptables -A FORWARD -p tcp --dport 443 -j ACCEPT
sudo iptables -A FORWARD -j DROP

次に以下を実行。

sudo iptables -P INPUT DROP
sudo iptables -F INPUT              
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

-sS, -sT両方ともFillteredになった。

└─$ sudo nmap -sS -p80,443,4444,8000 192.168.56.104 
Starting Nmap 7.94SVN ( https://nmap.org ) at 2026-02-21 01:48 EST
Nmap scan report for 192.168.56.104
Host is up (0.00082s latency).

PORT     STATE    SERVICE
80/tcp   open     http
443/tcp  open     https
4444/tcp filtered krb524
8000/tcp filtered http-alt
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?