C#代码添加IP限制
/// <summary>
/// 给IIS添加禁止IP限制
/// 仅针对iis 7及以上版本
/// 首先需要引入Microsoft.Web.Administration.dll
/// 该文件位置在windows2008的\Windows\System32\inetsrv目录下
/// 注意:生成的EXE文件必须以管理员身份运行
/// </summary>
/// <param name="ip"></param>
private static void banIP(string ip)
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection ipSecuritySection = config.GetSection("system.webServer/security/ipSecurity");
ConfigurationElementCollection ipSecurityCollection = ipSecuritySection.GetCollection();
ConfigurationElement addElement = ipSecurityCollection.CreateElement("add");
addElement["ipAddress"] = ip;
ipSecurityCollection.Add(addElement);
serverManager.CommitChanges();
}
}
IIS8中设置CC攻击防护
所谓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之外,还能屏蔽掉用代理服务器实施攻击的真正幕后黑手。