建站一个月几乎每天都被攻击。。求解决思路

2014-12-23 21:42:53 +08:00
 Jack

建站一个月。。。几乎每天都在被攻击。。。而且道高一丈魔高一丈的。。。攻击方法不断升级。。。

我的架构是nginx php mysql,今天搭上了SSDB,依旧未管用

主要攻击是在搜索页,一开始是单一ip单一词汇刷而已
封了ip以后变成n个ip不停刷
于是我就把搜索使用的词封掉,于是变成n个8-10个词的组合不停的刷,就这也算有规律可循
但是到了今天变成了拿字典来刷,完全无规律组合词多ip不停搜索

一上来我就挂,即使我把搜过的纪录全放到了SSDB,但是还是一刷就挂,一堆新组合词语,mysql瞬间200%,nginx 503。

最后只能放上了验证码,机制是搜索10次填写一次验证码。。。至于这个办法是否管用现在还不知道。。。

有人建议用sphinx,我还没用,貌似文档不太友好,对我这个非技术人员比较头疼。。。

求专业技术大拿提供解决问题思路。。。

15994 次点击
所在节点    程序员
146 条回复
yangxin0
2014-12-23 23:25:28 +08:00
写一个脚本分析nginx日志, 在crontab上定期运行, 5min or 其他, 发现请求书高的IP用iptables给封掉。基本连续跑一天, 攻击中手上的肉鸡都会被封杀完。 我想你这个小站也不会让攻击中动用几十万肉鸡吧, 如果是这样, 把服务器停了吧。
yangxin0
2014-12-23 23:26:25 +08:00
IP阈值你这个要好好思考, 或者可以先上线在动态调整。
zhs227
2014-12-23 23:29:16 +08:00
还有一招,把搜索引擎的页面地址改为随机生成,不停的改。一分钟几十万次,带宽也会被塞满吧,只有静态页面加CDN才扛得住,还要流量足。
cevincheung
2014-12-23 23:29:45 +08:00
@Jack

处理过一个高访问量的集群,架构是这样的 每个矩形是独立服务器:

cevincheung
2014-12-23 23:31:40 +08:00
@Jack
那就给服务器上点配置,redis+sphinx一上,立刻妥妥的。
yangxin0
2014-12-23 23:33:09 +08:00
@cevincheung 人家就一个单机小站, 你这是要搞集群么。
Jack
2014-12-23 23:35:43 +08:00
@yangxin0 有没有现成的脚本。。。我也想过这种思路。。。自动封连接数高的IP。。。但是不知怎么写
billwang
2014-12-23 23:39:10 +08:00
这种攻击,就是你把搜索搞定了他还会从其他层面攻击,建议从根本考虑解决。比如放到大一些的云服务商上去,或者找专业服务商解决,不是不知道到哪里交保护费吗?这些渠道可以试试看。
Jack
2014-12-23 23:39:52 +08:00
@cevincheung 好吧。。。明天先搞定sphinx试试。。。
yangxin0
2014-12-23 23:41:33 +08:00
@Jack 随便python perl php写写就好了。。。反正以后你也会用
leofml
2014-12-23 23:44:26 +08:00
试试安全狗吧, 基于session的302跳.
izoabr
2014-12-23 23:45:13 +08:00
如果内容开放就第三方搜索,如果不开放就注册用户权限控制。
完了加上CDN吧
danliuwo
2014-12-23 23:55:45 +08:00
直接索引数据库肯定受不了,推荐 xunsearch/coreseek
Jack
2014-12-23 23:56:20 +08:00
@billwang
@izoabr
网站未在国内备案,有什么选择呢。。。
shiny
2014-12-24 00:03:51 +08:00
简单粗暴——改用百度/google 的站内搜索
Slienc7
2014-12-24 00:08:35 +08:00
都已经趴了 为何还不换谷歌?
lecher
2014-12-24 00:09:04 +08:00
先关掉站内搜索功能,切换成用百度站内搜索,普通用户可以勉强用,反正开了也会被刷挂掉。
全站用nginx对首页、目录页做一下静态化。
Jack
2014-12-24 00:10:00 +08:00
@xgowex 主要用户群还是国内用户。。
Jack
2014-12-24 00:10:43 +08:00
@shiny
@lecher
建站一个月,百度至今收录页面<10个。。 该提交的都提交过了
Slienc7
2014-12-24 00:12:08 +08:00
第三方图形/动画验证码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/156129

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX