抵御网络洪流

抵御网络洪流

我的网站有时会遭到攻击。你可以在 18:00 看到这样的攻击,然后在 22:30 看到更大的攻击。基本上,服务器网卡会被传入的请求淹没。

我的机器是专用的四核、12GB ddr3、4x SAS 15k RPM 驱动器(RAID10)和 CentOS5.6 64 位。

在这台服务器上,我运行 Nginx 作为我的网络服务器。在一次攻击期间,我无法访问我的网站,因为整个网络似乎被淹没了。一旦攻击停止,一切都会恢复正常,无需重新启动任何东西。

我已经稍微强化了我的 SYSCTL,请参阅此处的设置:http://pastebin.com/eFfAcWkr 我的 IPTABLES 配置其实很简单。只需要打开端口 80、443、21 和我的 SSH 端口:http://pastebin.com/MsHSka08

我的问题是:我还能做些什么来抵御此类攻击?另外,我有没有办法找出这到底是哪种攻击?*

绿线是输入数据,蓝线是输出数据。

网络攻击

答案1

欢迎来到 (分布式) 拒绝服务 (DDoS) 的奇妙世界。简短回答:与您的 ISP 联系并请他们帮助您过滤 DoS。详细回答:

由于您的网络似乎已经饱和,因此您无法通过网络或系统采取很多措施来抵御这些攻击——它们的目的是向您发送大量流量,使您的下行带宽被垃圾堵塞。要解决此问题,您需要让 ISP 介入。如果您幸运的话,这些攻击是简单的 DoS 攻击,具有可识别的、非欺骗性的源地址。您的 ISP 可以非常轻松地对这些攻击应用过滤器。如果您不幸,这些攻击将使用欺骗性的源地址和/或分布在僵尸网络中,这使得过滤变得更加困难(因为源数量众多)。您的 ISP 可能仍然可以采取一些措施,但它们会变得有些复杂。要真正保护自己,您需要查看 DDoS 缓解服务,例如 Arbor Networks、VeriSign 等提供的服务。不幸的是,这些服务往往非常昂贵。另一种选择可能是考虑部署到内容分发网络,例如 Akamai(昂贵的一端)或 Cloudflare(免费的一端,尽管 Cloudflare 不是完整的 CDN)。

至于要弄清楚这是哪种攻击,您可能可以从流量本身得到一些线索。运行 tcpdump 或同等程序,看看您收到的数据包类型。它可能是 ICMP(例如 ping 泛洪)到 UDP(例如 DNS 放大攻击)到 TCP(syn 泛洪)。不过,根据流量,我敢打赌这是一次简单的无状态泛洪攻击(即 ICMP 或 UDP)。这实际上是幸运的,因为更高级别的攻击(例如,来自僵尸网络的一群僵尸向端口 80 或 443 发送 HTTP 请求)更难处理。

答案2

您可以添加一组规则来计算来自一个 IP 的传入请求,然后如果它们超过阈值,则采取行动,丢弃它们的 IP 几分钟

相关内容