如何阻止与iptables tcp-reset打击DDoS攻击?

我有一个随机的随机端口被closures的随机数据包泛滥。

我的服务器响应这个tcp-reset数据包,我认为这也是嚼出站带宽。

我如何使用iptables来阻止tcp-reset数据包?

DROP目标是你想要的。

如果你只有一个盒子,而你的networking中没有其他机器正在连接它,那么你可以通过阻止所有的RESET数据包而逃脱。

 -A OUTPUT -p tcp --tcp-flags RST RST -j DROP 

有关详细信息,请参阅包过滤-HOWTO-7

这对合法连接来说并不是很礼貌,如果您碰巧遇到了这种情况,它可能会在需要使用RESET数据包的已build立连接中导致不需要的超时。 这永远不是一个好主意,但是如果它允许你处理一个DDoS,那么它应该是暂时的。

如果这个盒子的正常使用依赖于RESET数据包为普通用户工作,而您只想阻止攻击者的RESET数据包,您将需要识别恶意数据包,这样我们才能阻止这些数据包。

这些包真的是随机的,还是有一些共同点?

 -A INPUT -p tcp -j LOG 

如果将LOG行添加到iptablesconfiguration的末尾,则可以使用该日志来分析入站数据包,以查看是否有模式。 源端口号和目标端口号的散点图可能会有用。 在IP空间地图上绘制IP地址可能有助于识别恶意和良性的范围,尽pipe我怀疑这样做不太可能产生有用的结果。 简单地计算攻击IP地址的数量将是有用的。 如果数量足够小,则可以将它们全部添加到iptablesconfiguration中。

即使没有find一个模式,由于肯定有一个基于“太多重置数据包”的模式,您可以创build一个fail2ban规则,该规则将为在y秒内导致多于x个RESET数据包的任何IP地址添加DROP规则。

你可以'-j DROP'而不是'-j REJECT –with-tcp-reset'。