我有一个监听端口 1234 的软件,我想让它对外界隐藏。我知道我可以这样说
sudo iptables -A INPUT ! -s 1.2.3.4/32 -p tcp -m tcp --dport 1234 -j REJECT --reject-with icmp-port-unreachable
使端口 1234 仅可供远程主机 1.2.3.4 访问。
但是,其他主机仍然可以运行nmap -sS myhost
,nmap -sW myhost
或其他一些高级测试来查看输出,例如
PORT STATE SERVICE
1234/tcp filtered someservice-guessed-from-port-number
对于基本nmap
扫描(作为普通用户而不是 root 用户),端口 1234 似乎已关闭。
请注意,无论端口 1234 上是否实际运行任何软件,此输出都是相同的。
是否可以使用iptables
使端口 1234 对于除选定主机之外的所有主机都看起来与正常关闭端口完全相同?我知道我可以修改所有端口以显示为已过滤,但这似乎是一种解决方法,而不是真正的解决方案。
答案1
回复 RST:
-j REJECT --reject-with tcp-reset