当前位置: 首页 > news >正文

Windows IIS 6安全保护贴—URL授权全攻略!

Windows操作系统的IIS是大家最常用的Web服务器之一。IIS功能强大、简单易用,但也容易受到恶意攻击,它的安全性一直是大家谈论的焦点,为了增强Web服务器的安全性,在Windows Server 2003操作系统的IIS6中增加了很多安全防范功能,“URL授权”就是其中之一。该功能可以使得IIS6更加安全稳定地工作,本文就向大家介绍一下有关URL授权的相关的知识。

一、为什么使用URL授权
IIS网站为用户工作提供便利,但它的安全性一直是管理员最关心的话题。众所周知,IIS服务器组件存在一些漏洞,很多“不法之徒”利用这些漏洞对网站进行攻击。虽然及时安装IIS补丁可以修复这些漏洞,但新的漏洞又会不断出现。很多管理员采用取消匿名访问权限方式来控制访问网站的用户范围,但此方式还是存在一定的安全隐患。为了增强IIS的安全性,在Windows Server 2003系统中提供URL授权功能,它可以通过授权管理器对浏览网站的用户进行严格的控制。如要想让某个用户账户能访问启用了URL授权功能的虚拟目录,首先这个用户账号必须是Windows Server 2003系统合法的账号。此外,还要将该账号添加到授权管理器的角色分配项中。

二、配置URL授权功能
IIS6默认情况下并没有启用URL授权功能,必须结合授权管理器进行手工配置才能实现。下面笔者将一步步介绍如何实现。

1.禁用匿名访问
在Windows Server 2003系统中,IIS6默认是允许用户匿名访问的,要想使用URL授权功能,首先必须禁用匿名访问。点击“开始→运行”,在运行对话框中输入“%systemroot% \System32\InetSrv\IIS.msc”命令(其中“%systemroot%”表示操作系统所在目录)。回车后弹出“Internet信息服务(IIS)管理器”窗口,然后依次展开“本地计算机→网站→默认网站”。下面笔者以默认网站的Online虚拟目录为例,介绍如何配置URL授权功能。

右键点击“Online文件夹”选项,在弹出的菜单中选择“属性”,在弹出的Online属性对话框中,切换到“虚拟目录”标签页,点击“创建”按钮。在“目录安全性”标签页的身份验证和访问控制栏中点击“编辑”按钮,在弹出的身份验证方法对话框中,取消“启用匿名访问”前的钩选,确保“集成Windows身份验证”选项被选中(如图1),然后两次点击“确定”按钮。

324418.jpg


2.配置通配符应用程序映射
禁用了匿名访问功能后,我们就正式开始进行配置。首先要为URL授权功能配置通配符应用程序映射。在Online属性对话框的虚拟目录标签页中,点击“配置”按钮,弹出“应用程序”对话框,点击“通配符应用程序映射”栏中的“插入”按钮(如图2),在“添加/编辑应用程序扩展名映射”对话框中点击“浏览”按钮,进入到“%systemroot% \System32\InetSrv”目录,找到urlauth.dll文件后,点击“打开”按钮,最后点击“确定”按钮。

 

324420.jpg

3.添加WEB服务扩展
接着我们要在IIS6中为URL授权添加一个Web服务扩展。在Internet信息服务(IIS)管理器窗口中,依次展开“本地计算机→网站→Web服务扩展”,在右侧的WEB服务扩展框体中点击“添加一个新的WEB服务扩展”链接,弹出新建WEB服务扩展对话框(如图3)。在“扩展名”栏中输入“URL授权”,然后点击“添加”按钮,在添加对话框中点击“浏览”,找到“%systemroot%\System32\ InetSrv”目录下的urlauth.dll文件,打开后点击“确定”按钮。接着在新建WEB服务扩展对话框中选中“设置扩展状态为允许”选项,最后点击“确定”按钮。

324422.jpg


4.新建授权存储
要想启用URL授权功能,必须和授权管理器配合使用,授权管理器是用来管理访问IIS网站的用户账号的,因此,对它要进行管理配置。首先要为它创建一个存储授权信息的文件。在运行对话框中输入“Azman.msc”命令,回车后弹出授权管理器窗口,右键点击“授权管理器”选项,在弹出菜单中选择“选项”,接着在选项对话框中选中“开发人员模式”后,点击“确定”按钮。接下来我们新建一个授权存储文件,右键点击“授权管理器”选项,选择“新建授权存储”选项,弹出授权存储对话框(如图4),选中“XML文件”单选项,在“存储名称”栏中输入“C:\MyStore.xml”后,点击“确定”按钮。

324424.jpg

接着在授权管理器窗口中,右键点击MyStore.xml项。在弹出的菜单中选择“新建应用程序”,在名称栏中输入“IIS6 URL授权”后,点击“确定”按钮。然后在授权管理器窗口中,依次展开“IIS6 URL授权→定义”,右键点击“操作定义”,在弹出的菜单中选择“新建操作定义”。然后在“名称”栏中输入“AccessURL”,在操作号码栏中输入“1”,最后点击“确定”按钮。

5.配置作用域
接着要为新建的应用程序IIS6 URL授权配置作用域。右键点击“IIS6 URL授权”选项,在弹出菜单中选择“新建作用域”,在名称栏中输入“WebApp”后,点击“确定”按钮。接着依次展开“IIS6 URL授权→定义”,右键点击“角色定义”选项,在弹出菜单中选择“新建角色定义”。下面在角色定义中创建作用域,在名称栏中输入“Viewer”后,点击“确定”按钮。然后点击“角色定义”选项,在右侧框体中右键点击Viewer选项,弹出快捷菜单,选择“属性”选项,切换到“定义”标签页,点击“添加”按钮后,切换到“操作”标签页,在操作定义列表框中选中“AccessURL”选项后,连续两次点击“确定”按钮。

然后依次展开“IIS6 URL授权→ WebApp”,右键点击“角色分配”选项,在弹出的菜单中选中“分配角色”。在添加角色对话框中选中“Viewer”选项后,点击“确定”按钮。接着在右侧框体中右键点击“Viewer”选项,选择“分配Windows用户和组”选项,弹出选择用户或组对话框(如图5),在“输入对象名称来选择”栏中输入访问网站页面需要的用户账号,然后点击“确定”按钮。

324426.jpg


6.配置读取器角色
默认情况下,IIS6是以Network Service账号身份运行的。下面就对读取器使用的账号进行配置。右键单击“MyStore.xml”项,在弹出的菜单中选择“属性”,切换到“安全”标签页,在“授权管理器用户角色”下来列表中选中“读取器”,接着点击“添加”按钮,在“输入对象名称来选择”栏中输入“Network Service”账号,接着两次点击“确定”按钮。

7.配置IIS Metabase文件
完成了以上配置过程后,URL授权功能依然还没启用,还需要修改IIS Metabase文件参数才行。下面我们就使用vbs脚本对IIS Metabase文件进行修改。进入到“C:\ Inetpub\AdminScripts”目录下,新建一个名为“SetUrlAuth.vbs”的脚本文件。打开此文件后,将以下内容复制到脚本文件中,最后要保存文件。

脚本内容如下:
'SetUrlAuth.vbs 内容
Set objArgs= WScript.Arguments
If objArgs.count < 4 then
wscript.echo "Usage: SetUrlAuth VDirPath AzScopeName AzStoreName AzEnable
[ImpersonationLevel]"
wscript.echo ""
wscript.echo "Example:"
wscript.echo " SetUrlAuth w3svc/1/root/MyApp MyApp
msxml://d:\inetpub\wwwroot\AzStore.xml True 1"
wscript.echo ""
wscript.echo "Run with 'cscript' command in cmd.exe to avoid msgboxes"
Else
wscript.echo objargs(0)
DIM iis
set iis = GetObject("IIS://localhost/" & objArgs(0))
iis.AzScopeName = objArgs(1)
iis.AzStoreName = objArgs(2)
iis.AzEnable = objArgs(3)
If objArgs.count > 4 then
iis.AzImpersonationLevel = objArgs(4)
End if
iis.SetInfo
End if

接着点击“开始→运行”,在运行对话框中输入“Cmd.exe”命令,弹出命令提示符窗口。切换到“C:\ Inetpub\AdminScripts”目录下,运行“Cscript SetUrlAuth.vbs W3svc\1\Root\WebApp WebApp msxml://C:\MyStore.xml true 1”命令,完成Metabase文件参数修改。

这样就启用了URL授权功能。只有在授权管理器的Viewer角色中指定的用户账号,才能访问你网站Online虚拟目录的页面。

文章出处: 赛迪网

转载于:https://www.cnblogs.com/kary/archive/2005/08/24/222203.html

相关文章:

  • 身为男人应该做的10件事(转载)
  • 今天下午开了几个小时的会,没有一句话与我有关的,搞到我直打瞌睡。
  • 绘制概念图的工具
  • ArcGIS Explorer,ESRI的...?
  • Vs2005终于出来了,搞了一个英文版的下载地址。
  • 人的惰性
  • MOF 思考
  • 自己真是落伍呀,腾讯收购Foxmail都不知道
  • 发布biztalk的一些onenote笔记,是一个mht格式的,希望对大家有帮助
  • 如何保持Oracle数据库的优良性能
  • Flying,毕业设计
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • 解读C#中的正则表达式
  • 《并发操作一致性问题》已全部完成
  • CRM投资回报(ROI)分析
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Apache的80端口被占用以及访问时报错403
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JAVA_NIO系列——Channel和Buffer详解
  • javascript 总结(常用工具类的封装)
  • JavaScript新鲜事·第5期
  • Magento 1.x 中文订单打印乱码
  • vue-router的history模式发布配置
  • 测试开发系类之接口自动化测试
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 提醒我喝水chrome插件开发指南
  • 线上 python http server profile 实践
  • AI算硅基生命吗,为什么?
  • 函数计算新功能-----支持C#函数
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​虚拟化系列介绍(十)
  • #laravel 通过手动安装依赖PHPExcel#
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (13)Hive调优——动态分区导致的小文件问题
  • (4)logging(日志模块)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)JAVA中的堆栈
  • .Net CF下精确的计时器
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET 常见的偏门问题
  • .NET6实现破解Modbus poll点表配置文件
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • @Controller和@RestController的区别?
  • @Data注解的作用