服务器租用防御CC攻击的方法:1、分析访问日志,将异常IP写到防火墙的黑名单中;2、使用nginx做反向代理,并增加设置限流;3、根据请求特征拒绝访问,如User-Agent或refer会有一些固定信息,可作为nginx拦截的依据;4、使用nginx根据请求特征重定向到其它页面;5、使用CDN防御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防御功能
这些都是防御cc攻击比较有效的方法,另外找一个有实力的公司也可以减小被攻击的威胁,在机房都在T3以上标准,防御设施齐全,有专业技术团队提供7x24小时服务,可以很好的增加服务器的安全性。