背景: 我在 ubuntu 上运行着 Apache 2。它的使用率很低,主要是通过移动应用程序访问 Web 服务 URL。在我安装 SSL 证书之前,它运行良好。我现在同时拥有 http 和 https。当我使用 https 访问服务器时,我会得到相当快的响应(但可能没有以前快)。当我使用 http 时,它非常慢。
我尝试过的: 从这邮政:
- 我
curl localhost
从主机获取信息并花费一些时间,这意味着没有路由问题。 - 该服务器在 Amazon EC2 实例上运行,仅由我管理。
还:
- 我发现 Apache 一旦运行,就会创建允许的最大进程数,而以前没有这种情况。我将 MaxClients 降低到 20,我认为我得到的响应速度更快了,但它仍然需要一分钟以上的时间,而且我始终有 MaxClients Apache 进程。
dmesg
返回许多[ 1953.655703] TCP: Possible SYN flooding on port 80. Sending cookies.
- 当我使用 netstat 时,我得到很多带有 的条目
SYN_RECV
。可能是 DDoS 攻击? - 从 EC2 的监控图中,我看到了自 2 天前以来“最大网络输入(字节)”一直处于高位的模式。顺便说一下,服务器仍在测试中,实际流量非常低且不稳定。
- 我尝试过这解决方案是使用限制传入连接
iptables
,仍然没有运气,但我正在尝试。
问题: 可能存在什么问题?这是 DDoS 攻击吗?
更新: 我讨论过这个问题这里。这确实是一次 DDoS 攻击;也讨论了一些解决方案。
答案1
下次,您可能想要使用类似apachetop
或之类的东西tail -f /var/log/httpd/access_log
来更好地了解正在发生的事情。您可能已经看到很多或请求进来,很可能具有可识别的模式:例如特定的 IP 范围,或相同的 URL,也许是对某些登录表单的暴力尝试等。如果 URL 请求在一定时间内达到足够高的水平,您甚至可能希望通过将这些 IP 范围放入 iptables 阻止规则来自动化此操作。