我正在尝试审核主机上的防火墙规则。这通常使用 nmap 或类似的扫描工具非常简单。问题是我只能在主机本身上运行审计。通常,如果您使用 nmap 对当前主机运行端口扫描,nmap 将使用环回接口。这是一个问题,因为我关心的主机上的防火墙允许环回接口上的所有流量:
[my-host ~][I]% sudo iptables -vL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
[...snip...]
2364K 123M ACCEPT all -- lo any anywhere anywhere
[...snip...]
因此,当我扫描主机时,防火墙似乎允许所有端口:
[my-host ~][I]% sudo nmap -sA my-host
Starting Nmap 6.40 ( http://nmap.org ) at 2020-01-28 13:53 MST
Nmap scan report for my-host (172.20.48.30)
Host is up (0.000015s latency).
rDNS record for 172.20.48.30: my-host
All 1000 scanned ports on my-host (172.20.48.30) are unfiltered
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
所以我尝试指定要使用的接口,希望强制扫描通过主机的正常网络接口路由流量。但是 nmap 找不到任何开放的端口:
[my-host ~][I]% sudo nmap -sA my-host -e ens192 -Pn
Starting Nmap 6.40 ( http://nmap.org ) at 2020-01-28 13:54 MST
Nmap done: 1 IP address (0 hosts up) scanned in 0.44 seconds
但是,我知道,在其防火墙中,主机至少允许来自同一网络上任何其他主机的端口 22。当我从同一网络上的另一台主机扫描它时,我看到的是:
[my-other-host ~][I]% sudo nmap -sA my-host -Pn
Starting Nmap 6.40 ( http://nmap.org ) at 2020-01-28 13:55 MST
Nmap scan report for my-host (172.20.48.30)
Host is up (0.00021s latency).
rDNS record for 172.20.48.30: my-host
Not shown: 999 filtered ports
PORT STATE SERVICE
22/tcp unfiltered ssh
MAC Address: 00:50:56:A0:34:4D (VMware)
Nmap done: 1 IP address (1 host up) scanned in 4.51 seconds
那么为什么我从自身扫描 my-host 时看不到这些结果呢?这是由于路由器配置(不幸的是我无权访问),还是我在某处犯了错误?