先说说一般的中小站点安全问题通病:对安全问题不重视,不少iptables都是默认的,主要目标是网站能正常工作,当然也无专门的安全运维人员。那么中小型网站应如何防范cc攻击呢?
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特征一致的请求拦截效果意外的好。
4、请求跳转(转给攻击方)
就是nginx根据请求特征重定向到其它页面。建议别顺手写baidu.com,万一被百度判罚了就麻烦了。可以设置成攻击你的来源,给他打回去。
个人评价:也算优雅,就是返回去的请求并不一定能给攻击方造成压力,不过个人觉得这样的处理压力应该会比直接返回403、404来得大。
5、用CDN带的CC防御功能
个人评价:没用过,不评价。欢迎有用过的朋友反馈下效果。
6、提高网站性能
个人评价:如果是在限流情况下还能被CC攻击搞崩的网站,的确也需要性能自测一波,优化下代码了。
网友评论