IIS5安全策略设计概要
来源:souzz.net 发布时间:2007-11-12 13:45:00
IIS5是Windows2000操作系统所带的Internet服务程序包,它包含了www、ftp、smtp以及index server等等众多实用功能。无论是创建一个Internet外部站点,还是构造一个Intranet内部应用,使用IIS5都是非常好的选择。同时,如何保障IIS5安全稳定运行、内容发布正确可靠,这是系统管理员必须高度重视的问题。本文就IIS5的安全策略设计进行概要分析,旨在让大家从宏观角度了解系统管理员都应在哪些方面执行必要的安全配置,然后根据实际环境再在各个环节分别扩展,最终创建一个安全的IIS5服务器。
为虚拟目录设置适当的访问权限
正确设置虚拟目录的访问权限,将会很大程度地影响其中文件的安全可靠性。建议考虑以下几个方面的设置原则:
文件类型 建议的访问权限
CGI 程序(.exe, .dll, .cmd, .pl) Everyone (X)
Administrators (Full Control)
System (Full Control)
脚本文件(.asp) Everyone (X)
Administrators (Full Control)
System (Full Control)
包含文件(.inc, .shtm, .shtml) Everyone (X)
Administrators (Full Control)
System (Full Control)
静态文件 (.txt, .gif, .jpg, .html) Everyone (R)
Administrators (Full Control)
System (Full Control)
为不同类型的文件创建不同的目录
如果一个虚拟目录下面有多种类型的文件,按照上面的原则为每一种文件设置访问权限,无疑是非常烦琐的事情。因此,我们可以采取为不同类型文件创建不同目录的方式,然后再按照上面的原则为每一个目录设置相应的访问权限。比如,我们可以创建如下的目录结构:
C:\inetpub\wwwroot\myserver\static:存放静态文本文件(.html)
C:\inetpub\wwwroot\myserver\include:存放包含文件(.inc)
C:\inetpub\wwwroot\myserver\script:存放脚本文件(.asp)
C:\inetpub\wwwroot\myserver\executable:存放可执行文件(.exe,.dll, .cmd, .pl)
C:\inetpub\wwwroot\myserver\images:存放图形文件(.gif,.jpeg)
另外,请注意以下2个特殊的目录:
C:\inetpub\ftproot:FTP服务所在目录
C:\inetpub\mailroot:SMTP服务所在目录
这2个目录的访问权限是Everyone 完全控制(Full Control),每个用户都具有向其中添加数据的权限。这样,就有可能造成目录所在磁盘的空间耗尽。因此,我们建议:
将这2个目录放置到另外的磁盘卷中,与其他的IIS服务程序分开。
使用Windows 2000 磁盘配额功能限制添加到这2个目录的数据量。
为IIS日志文件设置适合的访问权限
IIS日志文件记录了所有访问IIS服务程序的信息,它对于系统管理员检测故障非常重要。攻击者为了销毁他们的侵入痕迹,总是要想方设法删除掉日志文件。因此,我们建议对这些日志文件进行重点保护,设置如下的访问权限:
Administrators (Full Control)
System (Full Control)
Everyone (RWC)
IIS日志文件一般位于如下路径:%systemroot%\system32\LogFiles。
使用日志文件
日志文件对于检查服务器是否被攻击是极为重要的。日志文件有多种,我们建议使用"W3C扩充日志文件格式",步骤如下:
启动"Internet服务管理器"
点击鼠标右键选择要设置的站点,在从弹出菜单中选择"属性"
点击"Web站点"选项卡
点击选中"启用日志记录"复选框
从"活动日志格式"下拉选择框中选择"W3C 扩充日志文件格式"
点击"属性"
点击"扩充的属性"选项卡,然后依次选中如下属性:
客户IP地址
用户名
方法
URI资源
HTTP状态
Win32状态
用户代理
服务器IP地址
服务器端口
以上最后2个属性只当一个计算机充当多个Web服务器时有意义,也就是所谓的虚拟主机。属性"Win32状态"对于调试非常有用,当它的数值等于5时,表示禁止访问(access denied)。我们可以在命令行执行如下命令得到其他的"Win32状态码"所表示的含义:
net helpmsg err
其中err表示Win32状态码。
禁止或者删除所有的例子程序
默认安装选项中,例子程序不会被安装到机器中。对于一个正式应用的服务器,我们不应该在其中安装任何例子程序。如果已经安装了某些例子程序,建议将它们完整删除掉。为了查找方便,以下我们列出一些例子程序的默认安装路径:
例子程序类别 所在虚拟目录 默认安装路径
IIS例子程序 \IISSamples c:\inetpub\iissamples
IIS文档 \IISHelp c:\winnt\help\iishelp
Data Access \MSADC c:\program files\common files\system\msadc
删除虚拟目录IISADMPWD
这个虚拟目录的作用是允许用户重新设置他们在Windows NT或者Windows 2000操作系统上的帐号口令,应用环境主要针对企业内部网Intranet。IIS5的安装中没有包含这一项,但是如果是从IIS4升级到IIS5,就会存在这个虚拟目录。建议如果不是Intranet环境,就将之删除。
删除不使用的应用程序映射关联
IIS默认情况下可以解释如.asp、.htr、.shtm等应用程序文件,当这些文件被IIS接收后,将交由一个DLL文件处理。如果使用不到其中某类文件,我们建议将删除那个类型在IIS中的映射关系。步骤如下:
启动"Internet服务管理器"
点击鼠标右键选择要处理的服务器,再选择"属性"
选择"WWW服务",点击"编辑"
点击"主目录"
点击"配置",显示出当前"应用程序映射"列表
然后参照下表删除相关类别:
如果不使用下列应用 就删除掉以下项目
基于Web的口令修改 .htr
Internet数据库连接器 (注意:所有的IIS5 Web服务器将使用ADO等相似技术代替数据库连接器) .idc
服务器端包含文件(Server-side Includes) .stm, .shtm, and .shtml
Internet打印 .printer
索引服务(Index Server) .htw, .ida and .idq
关于Internet打印服务,我们再说明一点。Internet打印可以通过Internet服务管理器进行配置,也可以通过组策略进行配置。当两者的配置间发生冲突时,以组策略的配置信息优先。如果在Internet服务管理器中删除了Internet打印,请记住不要再在本地或者域组策略中激活它。默认的组策略配置中,既不激活也不禁止Internet打印。在组策略中配置Internet打印的方法是:在MMC的组策略管理单元中,点击"计算机配置",点击"管理模板",点击"打印机",最后点击"基于Web的打印":
设置IP地址或者DNS域名地址的访问限制
如果Web站点只对特殊IP地址的客户服务,我们建议对Web站点执行IP地址限制的设置。如果设置是DNS域名信息,请注意,这会导致IIS执行DNS搜索工作,耗费一定的时间。
确认可执行文件的安全性
在访问网站内容时,IIS经常要执行一些.DLL文件。DLL文件属于可执行文件,可能会读写硬盘文件内容,所以最好确保其安全性。但是,如何判断DLL文件的安全性,却不是个简单的事情。这里介绍一个叫做DumpBin程序,它可以判断出可执行文件是否调用了某个API函数。比如说,我们使用下面的命令判断文件MyISAPI.dll是否调用了RevertToSelf:
dumpbin /imports MyISAPI.dll | find "RevertToSelf"
命令执行后,如果屏幕上没有任何输出信息,就表明MyISAPI.dll没有直接调用RevertToSelf。
更新IIS服务器上的根权威认证机构发放的证书(Root CA Certificates)
要完成更新工作,需要2个步骤:
首先,添加一个我们信任的新根权威认证机构发放的证书,特别是通过Microsoft认证服务2.0创建的新根权威认证机构证书。
然后,删除所有不被我们信任的根权威认证机构发放的证书。一般情况下,不被信任的机构就是指我们还不认识的机构。
所有被IIS使用的根权威认证机构证书都存储在计算机中,我们可以按照下列步骤访问它们:
在"开始/运行"中输入mmc,点击"确定",启动Microsoft管理控制台,即MMC
从"控制台"菜单中选择"添加/删除管理单元",点击"添加"
选择"证书",点击"添加"
点击"计算机帐户"选项
点击"下一步"
选择要访问的机器
点击"完成"
点击"关闭",点击"确定"
扩展"证书"节点
扩展"受信任的根证书颁发机构"
选择"证书"
这时,在右边窗口格中显示出当前所有的受信任的根证书颁发机构发放证书的资料。我们可以根据实际情况,删除不需要的证书。但是请格外注意,不要删除Microsoft公司或Verisign公司的相关证书,因为它们 * 作系统广泛地使用。
禁止或删除不需要的COM组件
对于大多数应用程序不需要的COM组件,我们就应该考虑将其删除,比如说"文件系统对象"(File System Object)组件。请注意,如果删除了"文件系统对象"组件,"目录对象"(Dictionary object)组件也将被删除。但是提醒一点,有些程序可能需要禁止的组件,比如说,Site服务器3.0就使用到"文件系统对象"组件。删除"文件系统对象"组件的命令是: regsvr32 scrrun.dll /u。
重点检查ASP代码中的<FORM>输入内容和查询输入内容
许多站点都使用来自用户的输入信息去调用其他代码或者直接创建SQL命令。换言之,输入内容被假设为格式正确和语法正确。但是我们千万不能这么掉以轻心!许多攻击者就是在输入内容中填写非法代码从而巧妙 * 服务器的内容,甚至造成数据的毁坏。因此,我们要特别重视检查来自<FORM>的输入内容或者查询字符串信息,只有其符合安全要求,才能进一步传递给下一个程序进行处理。
我们可以使用Jscript版本5和VBScript版本5的常规表达式功能检查文本信息的合法性。来看看几个例子。
下面的代码是除去字符串中所有非字母、非数字以及非_的字符:
Set reg = New RegExp
reg.Pattern = "\W+"
strUnTainted = reg.Replace(strTainted,"")
下面的代码是除去|操作符后的所有文本:
Set reg = New RegExp
reg.Pattern = "^(.+)\|(.+)"Anycharacter from the start of
' the string to a | character.
strUnTainted = reg.Replace(strTainted,"$1")
另外,当使用"文件系统对象"组件打开或创建文件时,如果文件名取自用户的输入内容,那么很可能被攻击者利用去试图打开一个计算机的串口或者打印机设备。为了防止这个问题发生,我们可以使用下面的Jscript代码除去非法文件名:
var strOut = strIn.replace(/(AUX|PRN|NUL|COM\d|LPT\d)+\s*$/i,"");
从以上几个简单的实例,我们可以看到脚本引擎版本5处理字符串的强大功能。微软站点有关于脚本应用的详细文档与例程,地址如下:
文档:http://msdn.microsoft.com/scripting/default.htm
例程:http://msdn.microsoft.com/workshop/languages/clinic/scripting051099.asp
禁止父路径(Parent Paths)表达法
默认情况下,可以在函数中使用父路径".."。但是为了安全考虑,我们应该禁止这个功能,步骤如下:
在"Internet服务管理器"中右键点击要处理服务器的"默认Web站点",从弹出菜单中选择"属性 "
点击"主目录"选项卡
点击"配置"
点击"应用程序选项"选项卡
去除"启用父路径"复选框


猜你喜欢
- 同Web站点一样,用户也可以使用多种方法来管理FTP站点服务器。例如:设置FTP站点服务器的虚拟目录的访问权限、设置匿名访问、创建用户账户等
- 最近碰到了需要将tensorflow的pb模型转为caffe的prototxt格式的问题发现除了安装mmdnn以外,还依赖caffe,配置c
- 百度之发家,是踩在众多个人站长头上的起来的。想当初 百度只是给TOM 给SINA做搜索技术服务的,当被TOM SINA抛弃了的时候,陷入绝境
- 本篇介绍 crontab 设置定时任务,并且把 crontab 加入到开机自启动中。1、配置一个每天自动重启的功能:如果支持crontab
- 一、安装 uwsgiuWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议,旨在提供专业的 Python web应用
- 一、域名过期后第一阶段域名过期后1~45天内,将处于注册商保留状态whois英文状态:REGISTRAR-HOLD二、域名过期后第二阶段 注
- 无论你是一个Web开发人员,网页设计师或博客,你可能不得不为许多不同大小和不同格式的图像处理转换的事而感到头痛。如果你把所有图片放在手头上,
- 注意:本文所讲述之设置方法与环境:适用于Microsoft Windows 2000 Server/Win2003 SERVER IIS5
- 下面教给Godaddy用户电子邮件转发的设置步骤:第一、登陆AccountManger.第二、在MyProducts部分,点击Email/E
- 为什么要包含头文件而不是.c文件测试代码:m.c文件:#include"t.c"int main(){test();re
- 在Linux下如何使用vsftpd构建FTP服务器,构建后的FTP服务器有哪些特点?本文将作详细介绍。vsftpd 是“very secur
- 问题一:百度如何看待伪原创?答:“伪原创”就是“非原创”。对非原创的策略,同样适用于伪原创。归根结底,这是一个技术实现程度问题,而不是策略思
- 10月22日消息,日前,酷6网成为2010年上海世博会“世博公关新星”评选活动视频网站合作伙伴,将与
- Jenkins 官网: https://www.jenkins.io/官方安装文档指导: https://www.jenkins.io/do
- Apache中禁止网络爬虫,之前设置了很多次的,但总是不起作用,原来是是写错了,不能写到Dirctory中,要写到Location中<
- 在巡讲过程中,发布商都对我们新推出的产品 – 搜索联盟 非常感兴趣,也询问了很多搜索联盟相关的问题。我们收集了几个主要的问题,并做以下的解答
- default encode为UTF-8,显示中文会变成乱码解决方案:Windows- >Pereferences- >Genr
- 为了优化网站的访问速度,我们可以通过对静态内容进行压缩,从而减少网页加载的时间,大大节省用户的带宽。在这篇文章中,我将介绍如何使用Apach
- mime.types 文件在\conf\目录里面,添加如下内容:text/vnd.sun.j2me.app-descriptor jad;
- Apahce服务器是一个稳定的、商业性的和公开程序源代码的HTTP服务器。其在HTTP市场中占有主导性的地位。据权威部门统计,Apache服