我希望根据以下情况阻止来自中国和韩国的流量Okean 阻止列表。
我理解如何在 IIS7 中设置 IP 地址限制从用户界面。
但是,我不想手动输入大量的阻止列表,这样做会使列表难以保持最新。
有没有办法在 IIS7 中导入列表和/或基于文本的文件来允许 IP 地址限制?
请注意,我使用的是 Amazon EC2,因此如果可以使用 Amazon EC2 安全组来实现这一点,那么这也是一种解决方案。是的,我知道我可以设置本地防火墙,但我更愿意通过 IIS 或 EC2 来解决这个问题。
如果没有标准的方法来解决这个问题,有人可以给我指出一个允许我将列表加载到 IIS7 中的 API 吗?
答案1
使用配置编辑器查看 IP 阻止列表在 applicationhost.config 文件中的结构(最简单的方法可能是在 GUI 中输入一个,然后查看文件以找出该部分,然后从那里向后工作),然后使用配置编辑器添加一个,不要点击“应用”,而是点击“生成脚本”。
这将向您展示将 IP 添加到阻止列表的三种编程方式 - Javascript、MWA 和 AppCMD。选择您最熟悉的方式,然后编写脚本。
Rob 在下方添加了有关答案的详细信息
配置编辑器是一个图标,可从 IIS 管理器主页的管理部分中找到。
关键是system.webServer/security/ipSecurity
。
当您按照以下建议并生成 C# 脚本时,它看起来像这样...
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection ipSecuritySection =
config.GetSection("system.webServer/security/ipSecurity");
ConfigurationElementCollection ipSecurityCollection =
ipSecuritySection.GetCollection();
ConfigurationElement addElem = ipSecurityCollection.CreateElement("add");
addElem["ipAddress"] = @"1.10.0.0";
addElem["subnetMask"] = @"255.255.248.0";
ipSecurityCollection.Add(addElem);
ConfigurationElement addElem1 = ipSecurityCollection.CreateElement("add");
addElem1["ipAddress"] = @"1.10.8.0";
addElem1["subnetMask"] = @"255.255.252.0";
ipSecurityCollection.Add(addElem1);
serverManager.CommitChanges();
}
}
}