一般大公司都会配备专门的安全问题防御团队,配备付费CDN、防火墙、大流量服务器;只有中小企业的防御能力是较脆弱的。今天我们将讨论中小型网站如何抵御CC攻击。首先谈谈一般中小型网站的安全问题:不注意安全问题;很多iptables都是默认的,主要目的是正常工作,当然,没有专门的安全运维人员。然后我想介绍一些关于CC攻击的措施。
一、封锁IP
IP写入防火墙黑名单。分析访问日志并阻塞异常IP,虽然它看起来是被动的,但是它的简单性有一定的影响。但现在一般的攻击都是一堆肉鸡和IP池作为代理,而动态IP也在变化,几个IP流量密封也变化,所有的攻击IP都被封锁是不现实的。而开封也有点麻烦,需要写个脚本来处理。
二、服务器流量受到限制
(比如使用nginx做反向代理,可以增加设置限流)
limit_conn_zone
limit_req_zone
个人感觉还是有用的,相对优雅,nginx的漏桶算法还是不错的。但是还是容易误杀,需要对网站性能有充分理解再来设置。
三、基于请求特征拒绝访问
例如user-agent或reference,其中会有一些固定的信息,可以作为nginx截取的基础。作为一种被动防御仍然很有用,nginx在拦截可疑请求后直接返回403,但是它更多地用于限制UA和反爬行器;当然,现在已经有很多开源变化UA的方法了。对于refer特征一致的请求拦截效果意外的好。
四、请求跳转到攻击者方
即nginx根据请求特征重定向到其他页面。建议别顺手写baidu.com,万一被百度判罚了就麻烦了。可以设置成攻击你的来源,给他打回去。操作虽说优雅,就是返回去的请求并不一定能给攻击方造成压力,但个人认为这样的处理压力应该比直接返回403、404的好多。
1、具有CC防御功能的CDN
以前用过蔓捷信息的CDN,效果没有问题,你们可以试试。
2、提高你的网站性能
如果它在目前的极限情况下可以被CC攻击网站,真的还需要一波自我测试性能,优化一下代码;一般的高防是可以系统自动监测优化的。