我有一个状态监视器,希望使用 nmap 设置它来显示所有对外开放的端口。我自然想到了 nmap。
不幸的是,我使用 iptables 防火墙并允许环回接口上的所有流量。我想要这个并且需要这个,因为我可能在 apache 上进行 Web 开发。我不希望该端口一直向外界开放(有时我会这样做),并且我为多个服务这样做,因此仅将它们设置为在环回接口上监听可能太麻烦了。
我希望有一种方法可以在同一台计算机上扫描 nmap,而无需另一台计算机参与。这通常不是问题,但这台计算机是一台笔记本电脑,可以放在许多不同的环境中。
我在想类似的事情:
nmap -e wlan0 -PN localhost
但这不起作用(当一个打开时显示所有内容都已关闭)并且执行时间太长。
以下是我当前的 iptables 规则。没有什么特别的,我也愿意听取与 iptables 相关的建议。
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
答案1
我通过操作 iptables 解决了这个问题。
显然 iptables 会影响 nmap,但我有一条规则:
iptables -A INPUT -i lo -j ACCEPT
接受所有环回连接。
对于外部连接,可以按照以下方法解决:
iptables -D INPUT -i lo -j ACCEPT
nmap localhost
iptables -I INPUT 1 -i lo -j ACCEPT