对IIS防止CC攻击的研究

2012-3-27 王健宇 日志

最近博客换独立服务器了,就研究了一下IIS防止CC攻击

我的思路是每2秒取当前网络连接IP列表,判断远程IP有没有超过100个连接数,有则添加到IIS黑名单禁止访问

写成系统服务程序测试发现在肉鸡少的情况下能防,但是肉鸡多的情况下IP列表连接数达到几万甚至几十万,而且CPU使用率一直是%100

服务器会运行很慢,然后程序在取网络连接IP列表的时候也变的很慢,取一次的效率估计得一分钟左右,取出来还要进行筛选判断远程连接IP有没有超过100个,这里又会占用大量系统资源,这个操作经测试得几分钟才能封一个IP.如果成百肉鸡同时CC攻击的话,首先会导致服务器CPU使用率达到100,然后这个程序执行过程中又会占用很多内存以及CPU,两者叠加在一起造成了无法及时处理,因为肉鸡多的情况下处理一个IP的黑名单得几分钟,越久CPU温度越高,连FTP服务远程桌面都不能及时处理,还将导致无法连接远程桌面,所以这样算来这个防护程序还是失败了,得换一下思路

想了一下像现在的防火墙一样有一个驱动,那样在网络达到IIS之前就开始判断,然后在数据包没有达到IIS请求的时候就封掉IP的访问,那样不会造成CPU使用率达到%100,就能解决掉CC攻击,但是写驱动我不会了,唉,杯具,研究了几天还是没弄好.

不知道在Windows环境中有没有类似于Linux中的iptables防火墙那样的,可以限制每个IP对每个端口的连接数,可以进行L7拦截,如果有这样的防火墙希望大家能推荐一下,实在没有我就只能想办法以后服务器就不直接连wan了,先用一个双网卡route os软路由做算了,然后端口映射到web服务器了。

标签: 对IIS防止CC攻击的研究

评论:

YUCOAT
2012-04-10 08:19
直接拿Linux不就行了,或者拿Linux当防火墙吧
王健宇
2012-04-10 13:14
@YUCOAT:恩,兄弟说得对,Linux+iptables就可以了。但是iis能解决就更好了不是

发表评论:

Powered by emlog sitemap