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

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,我还没用,貌似文档不太友好,对我这个非技术人员比较头疼。。。

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

16469 次点击
所在节点    程序员
146 条回复
lecher
2014-12-24 00:17:56 +08:00
只是为了先分流攻击,保证网站不挂。
至于请求有没有效无所谓了。这么大流量的百度站内搜索,还可以帮你刷刷域名的热度呢。
建站一个月就被攻击那么凶残,多大仇才能花那么大的成本打你的网站。
wdhwg001
2014-12-24 00:29:39 +08:00
…搜索结果页面静态,用一个js生成ip分段cookie去ajax获取结果,然后根据C段设置每255个ip在5秒内只能搜索一次,如果撞了的话所有的255个ip都要输入5次第三方验证码(这个页面是静态的)…
说白了有点像一个信任机制,比如一开始是2,撞cd会掉成负的,负的需要验证码,输入成功一次+1,再撞又会扣,下限为-10…
另外请确保乃的ip识别是只识别真实ip,不处理任何forward…
shiny
2014-12-24 00:35:43 +08:00
既然只上线一个月,肯定没多少真实用户访问;
换我就直接把搜索功能去掉,然后其他页面做 cache;
粗暴直接有效。
wdhwg001
2014-12-24 00:41:05 +08:00
ajax无cookie→显示“无搜索结果”(静态,直接一行代码踢走)
ajax中的cookie和ip不符→显示“无搜索结果”(静态,同样踢走)
信任为0以下→显示第三方验证码页面(静态,因为查了session所以这时候其实是跑了一点代码的)
正确输入了验证码→信任+1并像正常一样处理搜索
信任大于0→几率扣除信任并正常显示结果
lhbc
2014-12-24 00:55:28 +08:00
打个广告
如果是合法内容,可以放我们这里试试。stunnel.info#gmail.com
有 Google PR 7 的站在我们这。
lxyu
2014-12-24 01:40:50 +08:00
这个是典型的打你的搜索链接。查下 cc 攻击防御吧。
msg7086
2014-12-24 01:52:48 +08:00
limit_req+fail2ban,很难么?
动态请求次数超过每秒1次直接自动封ip1小时。
你最起码得有几万个ip才能一波带走服务器。
typcn
2014-12-24 04:00:26 +08:00
你可以看看我博客右边的搜索

http://blog.eqoe.cn/

提交 Get 请求,如果关键词没有被缓存,服务器返回 error=1 表示需要 Hash 验证

然后,获得一个 TOKEN,然后客户端在此 TOKEN 后增加[数字],直到这个字符串 SHA1 值的前4位为0

提交 POST 请求,将 TOKEN 与 计算出的[数字]一同提交到服务器,服务器验证正确之后返回搜索内容,并将内容缓存到内存中,下次搜索直接返回。

一个IP地址只能拥有一个 TOKEN ,如果重复获取之前的 TOKEN 将失效。

他一提交搜索请求 CPU 满一个核心,3秒之后计算完成,才进行了一次搜索,他那些代理IP毫无用处,除非他有成千上万台电脑。

然而对用户来说,等待3秒比输入验证码好得多。

详情可以参考这篇文章 http://blog.eqoe.cn/posts/add-search-and-hashcash.html

你可以测试对我的博客进行批量搜索,我的博客是单核运行的,只有 100MB 可用内存,测试一下需要多大压力才能打挂。
tumutanzi
2014-12-24 06:14:16 +08:00
为什么攻击你?
clino
2014-12-24 07:35:18 +08:00
我觉得iptable封ip的时候封整个网段会不会更快
twinsant
2014-12-24 08:59:49 +08:00
@Jack 如何防御DDoS攻击:流量攻击防御生存手册 http://twinsant.com/tech/battle-of-ddos
tabris17
2014-12-24 09:09:56 +08:00
从一开始的CC攻击变成DDoS了咯,那就要改别的措施了
huigeer
2014-12-24 09:21:17 +08:00
跟你什么仇什么怨,,
139885087
2014-12-24 09:25:00 +08:00
跟你什么仇什么怨
cnxh
2014-12-24 09:27:00 +08:00
@typcn 很好的思路
rhwood
2014-12-24 09:30:50 +08:00
封ip+花钱硬抗,攻击你也是有成本的。
quericy
2014-12-24 09:46:58 +08:00
@typcn 68L的方法很赞啊,攻击者需要付出极大的cpu成本
iiusky
2014-12-24 09:47:12 +08:00
弄个用户注册机制,然后做任务换取积分,搜索一次扣1分,然后一分钟内这个用户这个 ip只能搜索2次
iiusky
2014-12-24 09:51:48 +08:00
@typcn 好牛叉的站,膜拜
hslx111
2014-12-24 10:02:57 +08:00
我在想楼主到底惹到什么人了。。。

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

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

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

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

© 2021 V2EX