我发现下面的命令行用于在IIS 7中添加要限制的IP地址
appcmd set config /section:ipsecurity /+"[ipaddress='10.0.0.1',allowed='false']"
是否有与IIS 6等效的命令?
谢谢!
答案 0 :(得分:2)
不,没有内置的Windows命令来执行此操作。您可以找到人们为此而编写的脚本的证据。
最终,您要修改名为IPSecurity
的元数据库条目。事情就是这样:这个IPSecurity条目可以设置在顶层(W3SVC服务),一直到单个文件。因此,您可以为以下任何一个定义安全性:
您的问题中的示例是服务范围的,因此您需要定位IIS://localhost/W3SVC
。如果您只想配置默认网站,则可以定位IIS://localhost/W3SVC/1/Root
。
一旦知道要修改的级别,就需要确定匹配IP的操作过程。你显然想要阻止。 That means you'll need to modify the IPDeny
List.
现在您只需要用您选择的语言编写一个脚本,通过ADSI连接到元数据库,并修改IPDeny列表以包含额外的IP。
我已经从MSDN页面修改了一个参数:
Dim SecObj
Dim MyIPSec
Dim IPList
Set SecObj = GetObject("IIS://LocalHost/W3SVC")
Set MyIPSec = SecObj.IPSecurity
If (FALSE = MyIPSec.GrantByDefault) Then
MyIPSec.GrantByDefault = TRUE
End If
if WScript.Arguments.Count = 0 then
WScript.Echo "Missing IP Address"
WScript.Quit(1)
end if
' WScript.Echo "Adding " & WScript.Arguments(0)
IPList = MyIPSec.IPDeny
Redim Preserve IPList (Ubound(IPList)+1)
IPList (Ubound(IPList)) = WScript.Arguments(0)
MyIPSec.IPDeny = IPList
SecObj.IPSecurity = MyIPSec
SecObj.Setinfo
如果您将其保存为blockip.vbs
,则可以使用以下方式将其保存:
wscript blockip.vbs 10.0.0.1
仅供参考,这适用于IIS6,但在Win7(IIS 7.5)上运行一次,然后在列表存在后失败。