我遇到了服务器负载间歇性、非常奇怪的跳跃,通常会导致服务器不可用。服务器在 Wordpress、Apache、MySQL 上运行一个流量很大的网站。安装了一个插件 (hypercache),通过缓存整个页面来最大限度地减少 mysql 的使用。但是,每次负载激增时,mysql 最终都会变得不可用。在此期间,平均负载从 2 跳到 30-40,apache 似乎正在处理大量请求(我在日志文件中看到有关已达到 MaxClients 的消息)。
我的问题是:我如何知道这是合法流量还是 DoS 攻击?如果是 DoS,我如何确定攻击类型并保护自己免受攻击?
服务器运行 FreeBSD 7、Apache 2.2、MySQL 5.1
答案1
我们注意到了类似的现象,如果您启用 Apache 的服务器状态模块,就可以看到发生了什么。对我们来说,这是由扫描程序寻找 phpMyAdmin 安装以进行利用而引起的。由于 WordPress 处理每个请求的方式,负载迅速上升。WP Super Cache for WordPress 带来了巨大的变化。我还创建了一些全局 RedirectMatch 规则,这些规则在到达任何 PHP/MySQL 驱动的站点之前拦截大多数这些扫描程序请求。
答案2
您可以通过安装来查看服务器的流量交通秀来自 FreeBSD 端口。与 ps ax 非常相似,但您看到的是流量,而不是进程 ID。