今天我一直在处理一个服务器,该服务器遭受了看起来像是 SYN 洪水攻击的情况。让网站重新上线有点匆忙,所以我们做了这三个步骤来让服务恢复可用状态。攻击期间服务器负载很低,所以它并没有导致服务器宕机,只是让 HTTP 访问者超时。
现在我不相信这些解决了问题,但他们肯定解决了症状,直到洪水消退。
设置sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv=5
将 Apache prefork ServerLimit和MaxClient增加到 512(从 256)。
将 Apache ListenBackLog设置为 1024
我看到网络上其他地方正在讨论各种 iptables --limit选项,但是我们得出的结论是,这些选项会限制合法流量,因为所请求的网页的每个项目(每个图像等)都将计入此限制,从而阻止页面完全加载.
人们在这些情况下会做什么,因为负载不是问题,我们的行动是否明智?
我会在网络外围使用防火墙来防止\修复 SYN 洪水攻击(以及 DOS、DDOS、欺骗、端口探测、地址空间探测等)。我不希望这种类型的东西进入我的内部网络,我必须在一台机器的基础上处理它。
由于我不是 iptables 方面的专家,我通常让两个防火墙之一为我处理这个问题。APF和CSF都是出色的防火墙,可以防止 SYN 攻击,以及人们可以通过多种其他方式攻击您的服务器。
我不知道您的具体配置,但我已经在“通用”cPanel/DirectAdmin/Plesk 服务器上使用了上述两种防火墙以及一些带有自定义服务的防火墙,一旦您允许正确的端口,它就可以很好地工作。
另外,您可能希望打开SYN Cookies,这有助于减轻 SYN 处于打开状态的攻击。上述两个脚本都有此选项。