大公司就不说了,付费CDN,防火墙,WAF,大流量,一般也会配置专门的安全问题响应团队。
今天侧重讨论一下中小型网站如何(优雅)防范CC攻击。
中小站点安全问题通病:对安全问题不重视,不少iptables都是默认的,主要目标是网站能正常工作,当然也没有专门的安全运维人员。即使有的话,可能只有一个,而且还要兼它职,中小企业,多是如此,现实就是这样。
之前曾帮朋友网站应对过CC攻击,现将一些方案、心得,分享给大家。
如果执行以下方面有难题,或还未能解决,可以试试软件防火墙,虽然普便来说WAF都是几十万上百万,但市面上还是有个别平民化产品,小而美,如ShareWAF,我测试过,效果不错!不多讲了,有兴趣自己去搜一下,以免说广告。
下面是正题:
1.封IP。IP写到防火墙黑名单。
分析访问日志,封异常IP。
个人评价:不优雅,被动,但简单粗暴有一定效果。不过一般现在攻击方都是拉一堆肉鸡和IP池做代理,而且动态IP也是变动的,流量特别大的几个IP封了还好说,所有攻击IP都封掉不现实。而且解封也有点麻烦,需要自己写脚本处理。
2.服务器限流。
比如使用nginx做反向代理,可以增加设置限流。
limit_conn_zone
limit_req_zone
个人评价:有用,相对优雅,nginx的漏桶算法还是不错的。但是还是容易误杀,需要对网站性能有充分理解再来设置。
3.根据请求特征拒绝访问。
比如User-Agent或者是refer,里面会有一些固定信息,可以作为nginx拦截的依据。作为被动防御还是有用的,拦截到疑似请求后nginx直接返回403。
个人评价:基本必备,不过限制UA的时候用得多些,主要是能用于反爬虫。当然,现在已经有很多开源变化UA的方法了。对于refer特征一致的请求拦截效果意好,变化的UA嘛,有些尴尬,上面我讲的那个软件,对于反爬虫,效果非常棒。忍不住又讲一声。
4.请求跳转(转给攻击方)
就是nginx根据请求特征重定向到其它页面。建议别顺手写google,万一被谷歌判罚了就麻烦了。可以设置成攻击你的来源,给他打回去。
个人评价:也算优雅,就是返回去的请求并不一定能给攻击方造成压力,不过个人觉得这样的处理压力应该会比直接返回403、404来得大。
5.用CDN带的CC防御功能
个人评价:没用过,不评价。欢迎有用过的朋友反馈下效果。
6.提高网站性能
个人评价:如果是在限流情况下还能被CC攻击搞崩的网站,的确也需要性能自测一波,优化下代码了。