使用命令行更新IIS 6 IP限制

时间:2014-11-03 09:00:32

标签: security iis-6

我发现下面的命令行用于在IIS 7中添加要限制的IP地址

appcmd set config /section:ipsecurity /+"[ipaddress='10.0.0.1',allowed='false']"

是否有与IIS 6等效的命令?

谢谢!

1 个答案:

答案 0 :(得分:2)

不,没有内置的Windows命令来执行此操作。您可以找到人们为此而编写的脚本的证据。

最终,您要修改名为IPSecurity的元数据库条目。事情就是这样:这个IPSecurity条目可以设置在顶层(W3SVC服务),一直到单个文件。因此,您可以为以下任何一个定义安全性:

  • 服务
  • 网站
  • VDIR
  • 文件夹
  • 文件

您的问题中的示例是服务范围的,因此您需要定位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)上运行一次,然后在列表存在后失败。