【发布时间】:2015-11-11 16:46:14
【问题描述】:
我正在使用 mysql+php 运行一个聊天室 (phpfreechat)。我有一个专门的服务器来运行这个脚本,因为它会消耗大量资源。它适用于 100 个并发用户。然而,最近一个用户威胁我们要杀死这个聊天室,他成功地做到了:(
只有 40 个用户,聊天室已经死了。传递一条消息需要 10-20 秒。 MySql 正在吃掉 300% 加上 CPU。然而,对于 100 个用户(当它没有受到攻击时),聊天室只使用 200-300% 的 CPU。我检查了以下内容以确保他不是 DoSing/DDoSing 我们的服务器。
1 - Limited 3 requests per seconds.
2 - Analyzed access.log to see any weird activity or CRLF slow attacks. There is none.
3 - Looked per IP connections using netstat command and none has lots of connections.
4 - I disabled ping of death
服务器上的静态网站即使受到攻击也能正常工作。我假设他正在通过聊天室发送许多请求来利用 mysql。我运行以下查询来查看当前与 mysql 的连接:
SHOW STATUS WHERE `variable_name` = 'Threads_connected'
结果只有 7 看起来很正常。我可以执行任何其他步骤来阻止他的攻击并保护我的服务器(聊天室)吗?
【问题讨论】:
-
您可以启用mysql日志来查看正在调用的语句和语句。查询慢的日志也给了困扰的。
-
检查 nginx 和 apache 日志启用 ddos 拦截器
-
@Tim3880,MySql 日志已经启用,没有什么奇怪的。有什么我应该记录或在日志中查找的具体内容吗?
-
@FerozAkbar,我只运行 nginx。正如我在问题中提到的那样,我已经查找了日志。访问日志未显示用户请求或来自同一 IP 的许多请求的任何颠簸。
-
他们会记录您必须根据您的要求过滤日志的每个请求