![iptables 规则丢弃 SYN 和 FIN 攻击](https://linux22.com/image/547476/iptables%20%E8%A7%84%E5%88%99%E4%B8%A2%E5%BC%83%20SYN%20%E5%92%8C%20FIN%20%E6%94%BB%E5%87%BB.png)
根据 Trustwave 报告,我们尝试设置我们的服务器来阻止此类请求,但在尝试了几种规则组合后,我们仍然可以看到端口。
有人能给我一些提示或一套必要的规则来阻止这个请求吗?
我正在用来nmap --scanflags SYN,FIN xxx.xxx.xxx.xxx
测试 iptables 是否被阻塞。
答案1
如果设置了 syn 标志,则此规则将匹配
iptables -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -j DROP
这将匹配 FIN 标志
iptables -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST FIN -j DROP
请注意,您需要对此进行调整,因为 syn 规则将完全阻止设备的传入 tcp 连接,也许设置您想要阻止的特定端口?
答案2
我使用某种方法来防止这种 SYN 攻击。不确定这种方法是否适合您的情况,但您可以看看。我计算每秒的请求数,并阻止 1 秒内请求数超过 X(在我的情况下是 20)的 IP。对我来说很有效。
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 1 --hitcount 20 -j DROP
答案3
答案4
网上有一篇《检测和欺骗网络扫描》的文档,对这个问题进行了详细的分析,并找到了最佳的阻止参数。