我使用 iptables 阻止了所有基本的 nmap 扫描,方法是在 INPUT 链中制定一条规则,如果 10 秒内从特定 ip 发送的数据包数量超过特定限制,则将该 ip 放入黑名单并拒绝进一步的数据包。这样,nmap SYN 隐形攻击、SYN 连接、UDP 和所有其他基本扫描都被阻止了。现在我想阻止 nmap xmas 扫描。有人能告诉我怎么做吗?
我写了以下规则:
$ iptables -A INPUT -m state --state NEW -m recent --set --name NEW
$ iptables -A INPUT -m recent --update --seconds 10 --hitcount 5 --rttl --name NEW -j DROP
提前致谢
答案1
您可以具体说明一下您配置的规则吗?
正如您所描述的,它会阻止圣诞节扫描;像圣诞树一样用旗帜点亮的数据包仍然是“从特定 IP 发送的”数据包 - 但如果您确实这样设置规则,那么您很可能会无意中禁止以违反规则的速率发送合法流量的主机。
不要通过隐蔽性来投入大量精力实现安全。您的服务对互联网开放,扫描器可以简单地将其扫描速度减慢到爬行速度以突破您的速率限制,或者他们可以在阻止开始之前随机访问开放端口。 阻止扫描并不能代替保护您的服务。
答案2
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j LOG --log-prefix "XMAS A: "
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j LOG --log-prefix "XMAS B: "
iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG --log-prefix "XMAS C: "
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
nmap -sX 发送我上面的 xmas 类型 B(我刚刚创建了“类型 b”)。
典型的圣诞节是 A 型。
显然你可以添加时间限制的内容。