当前位置: 首页 > 图文教程 > 服务器 > 安全防护 > 让虚拟主机免受FSO威胁

安全防护
2003服务器防止海洋木马的安全设置(1)
2003服务器防止海洋木马的安全设置(2)
2003服务器防止海洋木马的安全设置(3)
加固脆弱的IIS服务
linux操作系统的优化及安全配置(1)
linux操作系统的优化及安全配置(2)
linux操作系统的优化及安全配置(3)
Server2003 DNS服务安装篇(2)
Server2003 DNS服务安装篇(3)
Server2003 DNS服务安装篇(4)
WindowsServer2003安全事件ID分析(1)
WindowsServer2003安全事件ID分析(2)
打造安全的Windows 2003系统(5)
Win2003 Server手动设置全攻略(1)
Win2003 Server手动设置全攻略(2)
Win2003 Server手动设置全攻略(3)
Win2003 Server手动设置全攻略(4)
搜索型注入之我看
为Windows 2003安全—层层设防(1)
为Windows 2003安全—层层设防(2)

安全防护 中的 让虚拟主机免受FSO威胁


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 41 ::
收藏到网摘: n/a

现在绝大多数的虚拟主机都禁用了ASP的标准组件:FileSystemObject,因为这个组件为ASP提供了强大的文件系统访问能力,可以对服务器硬盘上的任何文件进行读、写、复制、删除、改名等操作(当然,这是指在使用默认设置的WindowsNT/2000下才能做到)。但是禁止此组件后,引起的后果就是所有利用这个组件的ASP将无法运行,无法满足客户的需求。

如何既允许FileSystemObject组件,又不影响服务器的安全性(即:不同虚拟主机用户之间不能使用该组件读写别人的文件)呢?这里介绍本人在实验中获得的一种方法。(下文以Windows2000Server为例来说明)

在服务器上打开资源管理器,用鼠标右键点击各个硬盘分区或卷的盘符,在弹出菜单中选择“属性”,选择“安全”选项卡,此时就可以看到有哪些帐号可以访问这个分区(卷)及访问权限。默认安装后,出现的是“Everyone”具有完全控制的权限。点“添加”,将“Administrators”、“BackupOperators”、“PowerUsers”、“Users”等几个组添加进去,并给予“完全控制”或相应的权限,注意,不要给“Guests”组、“IUSR_机器名”这几个帐号任何权限。然后将“Everyone”组从列表中删除,这样,就只有授权的组和用户才能访问此硬盘分区了,而ASP执行时,是以“IUSR_机器名”的身份访问硬盘的,这里没给该用户帐号权限,ASP也就不能读写硬盘上的文件了。

下面要做的就是给每个虚拟主机用户设置一个单独的用户帐号,然后再给每个帐号分配一个允许其完全控制的目录。

如下图所示,打开“计算机管理”→“本地用户和组”→“用户”,在右栏中点击鼠标右键,在弹出的菜单中选择“新用户”:

在弹出的“新用户”对话框中根据实际需要输入“用户名”、“全名”、“描述”、“密码”、“确认密码”,并将“用户下次登录时须更改密码”前的对号去掉,选中“用户不能更改密码”和“密码永不过期”。本例是给第一虚拟主机的用户建立一个匿名访问Internet信息服务的内置帐号"IUSR_VHOST1",即:所有客户端使用http://xxx.xxx.xxxx/访问此虚拟主机时,都是以这个身份来访问的。输入完成后点“创建”即可。可以根据实际需要,创建多个用户,创建完毕后点“关闭”。

现在新建立的用户已经出现在帐号列表中了,在列表中双击该帐号,以便进一步进行设置:

在弹出的“IUSR_VHOST1”(即刚才创建的新帐号)属性对话框中点“隶属于”选项卡:

刚建立的帐号默认是属于“Users”组,选中该组,点“删除”。

现在出现的是如下图所示,此时再点“添加”:

在弹出的“选择组”对话框中找到“Guests”,点“添加”,此组就会出现在下方的文本框中,然后点“确定”:

出现的就是如下图所示的内容,点“确定”关闭此对话框:

打开“Internet信息服务”,开始对虚拟主机进行设置,本例中的以对“第一虚拟主机”设置为例进行说明,右击该主机名,在弹出的菜单中选择“属性”:

弹出一个“第一虚拟主机属性”的对话框,从对话框中可以看到该虚拟主机用户的使用的是“F:\VHOST1”这个文件夹:

暂时先不管刚才的“第一虚拟主机属性”对话框,切换到“资源管理器”,找到“F:\VHOST1”这个文件夹,右击,选“属性”→“安全”选项卡,此时可以看到该文件夹的默认安全设置是“Everyone”完全控制(视不同情况显示的内容不完全一样),首先将“允许将来自父系的可继承权限传播给该对象”前面的对号去掉:

此时会弹出如下图所示的“安全”警告,点“删除”:

此时安全选项卡中的所有组和用户都将被清空(如果没有清空,请使用“删除”将其清空),然后点“添加”按钮。

将如图中所示的“Administrator”及在前面所创建的新帐号“IUSR_VHOST1”添加进来,将给予完全控制的权限,还可以根据实际需要添加其他组或用户,但一定不要将“Guests”组、“IUSR_机器名”这些匿名访问的帐号添加上去。

再切换到前面打开的"第一虚拟主机属性"的对话框,打开"目录安全性"选项卡,点匿名访问和验证控制的"编辑":

在弹出的"验证方法"对方框(如下图所示),点"编辑":

弹出了"匿名用户帐号",默认的就是"IUSR_机器名",点"浏览":

在"选择用户"对话框中找到前面创建的新帐号"IUSR_VHOST1",双击:

此时匿名用户名就改过来了,在密码框中输入前面创建时,为该帐号设置的密码:

再确定一遍密码:

OK,完成了,点确定关闭这些对话框。

经此设置后,"第一虚拟主机"的用户,使用ASP的FileSystemObject组件也只能访问自己的目录:F:\VHOST1下的内容,当试图访问其他内容时,会出现诸如"没有权限"、"硬盘未准备好"、"500服务器内部错误"等出错提示了。

另:如果该用户需要读取硬盘的分区容量及硬盘的序列号,那这样的设置将使其无法读取。如果要允许其读取这些和整个分区有关的内容,请右键点击该硬盘的分区(卷),选择"属性"→"安全",将这个用户的帐号添加到列表中,并至少给予"读取"权限。由于该卷下的子目录都已经设置为"禁止将来自父系的可继承权限传播给该对象",所以不会影响下面的子目录的权限设置。