互联网创业公司如何防御 DDoS 攻击?

作者:匿名用户
链接:https://www.zhihu.com/question/19581905/answer/37711086
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

14 年年初,被迫沦为了一名站群站长,草根站长。在成本投入以及人力、技术均有限的情况下。近一年数个站遭遇无数次 syn 洪水攻击,网站瘫了不说,看着一个个网站流量从高处跌落谷底,然后一步走入没落,心碎之甚。近期也对此做了一些不全的总结。

 

( ddos 科普省略一万字)

 

因为是创业+挣外快形式,租的机器都是淘宝每月百元左右(低于百元,加了 IP 后百元上下)的 VPS 、香港美国韩国均有,一般都是 双核 cpu、512M-1G 内存、2M 带宽、硬盘越大越好。

 

因为做站群,一台机器会视硬盘而定挂 2-3 个站,每台服务器正常的情况下每个月能走掉 500-700G 的流量。

网站采用 centos + kangle + php + 文本DB,从优化程序性能上、生成什么 HTML 静态的技术讨论就免了,因为一旦机器被攻击,你性能做得再强,这样配置的机器基本上是秒死状态。

关于洪水攻击的特征收集是比较重要的,HTTP 头,UserAgent,host 都是一些非常重要的信息。

当被攻击时,第一反映就是去服务器管理面版里重启,然后利用机器重启存活那一瞬间,ssh 登录,粘贴!!!:

tcpdump -XvvennSs 0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

 

找到 http 请求, 记下来 UA、Host、URL。(于是机器接着挂 T T)

以下是我如何防御洪水攻击的几个方法:

1、借用第三方力量+以其人之D还治其人之机

在中国,你只要被攻击,最大的烦恼其实不是网站不能访问,而是提供服务的 IDC 动不动就要关你的 VPS。所以,一般得知被攻击,取到 Host 主机名以后,我会第一时间去 DNS 里去对对应的域名操作。幸运的是,(暂时)遇到的攻击者一般都只会攻击你的一个域名。例如:他攻击你的http://www.xxx.com ,而你的 xxx.com 是可以正常访问的。

关于操作域名,我有几个手段:

a、呵呵,第一个手段当然是利用 DNS 转发的功能,把 http://xxx.com 转发到 http://www.xxx.com,把流量都给 DNS 服务商(捂脸)

转发一段时间后,收到 DNSPOD 域名停止解析的邮件。
38e67cdf741c703085b8adca56b2d615_b.jpg


b、第一次看到停止解析了真的会有心碎的感觉耶,但也无济于事,这个时候,我会这样回击,虽然更多的只是个心里安慰。。。。。
505d2911d153c7fa7155bf511b0622ad_b.jpg
 

2、最实用的杀手锏:网段封杀

最常见有效的防御办法,我想应该就是杀 IP 了吧,因为网站访问量也不是特别高,所以我会在服务器上做 crontab ,用 iptables 每分钟取 IP 的 B段、 C 段 的连接数,超过一定数量就直接 DROP。一旦有新 IP 被 DROP 就会邮件我自己,方便得知以后后续操作。

3、既然 TCP 已经握手了,那么只能从应用层封杀了

因为攻击者的 IP 段巨广、无法 DROP 的 IP 还是会进到应用层的,整个网站都是 PHP 的,绝不能让这些请求进入 PHP 运行的环节。

于是,我们需要从之前拿到的 UA 、 HOST 、 URL 入手,去封杀了!!!

kangle 是一款国产的 webserver,据说是跑静态文件比 nginx 要强。我也没具体测过 kangle 的性能,但是光有 web 管理面版 + 支持 .htaccess,改了配置根本就不需要人工 reload ,在易用层面是要比 nginx 上了一个档次。(我真不是五毛!!!只是最早用于生产环境的一批用户,用了很多年了,生产环境下 windows 下跑 PHP 真心推荐!!!)---- 咳咳,回到题主上来。

kangle 的 web 管理面版里有一个非常实用的功能叫做:请求控制 + 回写数据。

知道 host 和 UA 以后,设置请求控制:

7ada231365c62161940b3deb2850bfcc_b.jpg

杀掉所有 UA 的访问,同时关掉连接,回写数据:

702c1ce412128c0be701a87144a504db_b.jpg

 

以前从来没有接触过这些玩意,封禁的手段都是自己这一年一步一步积累下来的。总结的不是很到位,不过还是希望能给大家一些启发。

还有,最近 D 得非常狠的那位大哥,我这几个域名都被百度 K 了,你还不放过我。。。(我服还不行么 =。=)

转载于:https://my.oschina.net/u/3357717/blog/1162463


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部