![如果 INPUT 和 FORWARD 链上的 NEW 状态连接被丢弃,那么反 DDoS 规则是否没有必要?](https://linux22.com/image/702605/%E5%A6%82%E6%9E%9C%20INPUT%20%E5%92%8C%20FORWARD%20%E9%93%BE%E4%B8%8A%E7%9A%84%20NEW%20%E7%8A%B6%E6%80%81%E8%BF%9E%E6%8E%A5%E8%A2%AB%E4%B8%A2%E5%BC%83%EF%BC%8C%E9%82%A3%E4%B9%88%E5%8F%8D%20DDoS%20%E8%A7%84%E5%88%99%E6%98%AF%E5%90%A6%E6%B2%A1%E6%9C%89%E5%BF%85%E8%A6%81%EF%BC%9F.png)
场景:路由器用于将内部客户端连接到互联网。路由器不向互联网提供开放服务。
假设您有如下所示的 iptables 规则,而没有其他规则。
iptables -P INPUT DROP
iptables -I INPUT -i <wan_face> -m state --NEW -j DROP
以下是反 DDoS 规则的示例。
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
如果 wan_face 上的 INPUT 和 FORWARD 链上的 NEW 状态连接被丢弃,那么反 DDoS 规则是否没有必要?
答案1
如果将默认策略设置为 DROP,为什么还要指定任何其他规则?
iptables -P INPUT DROP
这项政策通常只有一些例外到默认的 DROP 策略,即您想要允许进入的传入流量......
如果没有任何例外,为什么还要费心进一步检查您的流量?
所谓的 DDOS 保护规则所做的唯一的事情就是需要额外的处理(甚至可能增加 DDOS 攻击的有效性)。
你的逻辑现在看起来像:
if (something) then
DROP
else if (something_else) then
DROP
else if (something_else) then
DROP
else if (something_else) then
DROP
fi
# For everything that wasn't caught by the previous rules:
DROP any way
这有点傻,对吧?