所谓CC攻击,就是黑客借助代理服务器生成大量的伪装IP地址,不停的访问某个网站,造成该网站的CPU、同时连接数等资源耗尽,而其他正常的访客无法浏览网页的一种常见的互联网攻击。和DDOS攻击一样,CC攻击的来源都是大量的虚假IP地址,攻击的形式都是对目标网站发送大量的数据包,因此我们无法准确获取攻击源头的IP地址。除非对方的攻击IP段就是那么几个,这样就可以直接在IIS上屏蔽掉这些IP段,IIS 6.0以后的版本都有屏蔽单独IP或某个IP段的功能,但是IIS 6.0/7.0依然无法处理大量的无规则的IP地址,直到IIS 8.0版本的问世。
IIS 8.0中对IP限制模块新增了三项可喜的功能:
1、动态IP限制,可以基于并发请求数量,或一段时间内的请求数量来自动屏蔽IP地址。
2、传统的IP地址限制都会返回403.6错误(即已禁止状态),新版IIS中还可以直接中止请求,或返回未授权、未找到。
3、支持代理模式,也就是除了屏蔽直接攻击的IP之外,还能屏蔽掉用代理服务器实施攻击的真正幕后黑手。
默认情况下,IIS 8.0是没有安装“IP和域限制”模块的,我们需要到“服务器管理器”中单独安装下。
接下来,我们打开IIS,点击要设置的网站,再点击“IP地址和域限制”模块图标,主界面显示如下。
在右侧操作栏中,有4项是我们需要了解的。
1、添加允许条目,即添加允许访问的IP地址。当我们设置其他客户端访问权为“拒绝”时,只有这些IP地址才能访问。
2、添加拒绝条目,即添加拒绝访问的IP地址。当我们设置其他客户端访问权为“允许”时,只有这些IP地址不能访问。
3、编辑功能设置,在这里可以设置其他客户端(匿名用户)的访问权,是否启用代理模式,以及拒绝操作的类型。
(1)默认的未指定客户端的访问权是允许的,如果您只希望这个网站被特定的人访问,需要先在这里调整成“拒绝”,然后在“添加允许条目”里面添加特定的IP地址。
(2)启用域名限制,就是除了IP地址之外,还可以设置特定域名的访问。需要留心的是,该过程要将域名解析成IP地址,会占用一定的系统资源,因此非特定情况下不要勾选此项。
(3)启用代理模式,IIS会检测页面头部除了客户端IP地址之外的x-forwarded-for信息,如果这两条信息不一致,那么客户端一般是用了VPN或其他代理工具访问的,隐藏了自己的真实身份。和域名限制一样,此项功能也需要消耗系统资源。
(4)拒绝操作类型有四种,默认的就是已禁止(返回403代码),您也可以选择其他类型,如未授权(返回401),未找到(返回404)和中止(停止HTTP连接)。
4、编辑动态限制设置
这里就是防护CC攻击的独门武器了!您可以选择基于并发请求数量来限制,也可以选择基于一段时间内的请求数量来限制。当网站遭受CC攻击时,我们可以直接勾选这两项,先采用IIS推荐的数量参数,观察防护效果如何,然后再进一步细调。注意,如果你勾上“启用仅日志记录模式”,则只记录准备拒绝的日志,而并没有真正屏蔽掉,适用于实验和调试状态下。
虽然对CC攻击的防护措施,目前依然没有最完美的解决方法,不过IIS 8.0新增的这个动态IP地址限制功能,可以说是接近底层,而又非常便于操作的办法。要想达到最好的防护效果,而又不影响正常用户的访问,我们需要反复对以上设置数据进行实验,以达到防护攻击和正常浏览两者的平衡。