iis安全 检查清单

原文: http://windows.stanford.edu/docs/IISsecchecklist.htm

译文: http://www.iisutm.com

下面是安全要点的简要清单,在检查这些安全要点之前需要确保IIS服务器在线。在违反下面安全要点的情况下,管理员可能需要了解安全文档中对已知的安全问题应该发生的安全危害的介绍。


一般性假设

   

      1.域控制器上没有IIS。

   
      2.仅安装需要的服务( FTP,WWW,SMTP,NNTP)发送邮件不需要SMTP服务;可以使用CDOSYS.DLL(一个Windows提供的COM组件)或者使用第三方的Web应用程序例如:blat.exe来发送邮件。


      3.从不使用跨服务器的虚拟目录。


      4.底层的Windows操作系统是可以靠的。


      5.仅系统管理员是本地管理员。


设计指南


   
      1.网站绝不应该在系统驱动器上。

      2.如果传播的信息是敏感的需要安装SSL,如果SSL已经启用则请求SSL(通过访问端口 80 的删除能力)。



      3.所有的FTP站点和需要的万维网站点需要启用对“stanford-only”的站点进行IP筛选。IPSec筛选器可用于实现这一目标。


      4.虚拟目录应尽少使用, 除非您需要跨驱动器否则不需要使用虚拟目录。 如果需要跨驱动器,需要基于安全隐患重新考虑。


      5.移除NTFS驱动器下所有可移除的写入权限。


    6.不要让其他人很容易地找到脚本和代码。***通过这些代码寻找漏洞,他们可以使用这些漏洞来控制服务器.
      下面是一些好的防范方法:

不要为您的Scripts目录使用明显的名称,考虑重命名您的脚本的扩展名为不寻常的字符。 例如,将 myscript.asp 重命名为 myscript.dum。 这将需要在ISAPI 扩展名映射(MIME)增加一个映射.dum到特定的代码处理器(在这种情况下是改变到“asp.dll”代码处理器)。 这样会使您的脚本难以找到。 顺便说一下一种特殊情况,重命名所有的.asp为.html 不需要修改 ISAPI 扩展名映射。

考虑编译所有的到DLL文件中。这不仅保护了源代码,也大大提高了性能。编译过的代码运行比原来的脚本将近快20倍。

Web 应用程序 (即脚本和可执行文件) 只需要有限的权限就能正常运行。 提供更多的权限将会被***利用来下载文件和分析您的代码的漏洞,以及允许***下载你的代码。 所需的最低权限是:NTFS: 读取,IIS:执行,IIS:不需要读取。


7.小心使用 IIS 服务器上的添加/删除控制面板。 如果您打开 Windows 组件,Windows 会无意中重置所有 ISAPI 筛选器和扩展为默认值并可以重置其它事情。这是Microsoft的其中一个你需要小心的有问题的设计。



安装和配置



1.删除所有默认虚拟目录 (带有世界顶部的文件夹的图标) 和应用程序根 (带有绿球在框中的图标)


删除iisadmin


删除iissamples

删除msadc

删除iishelp

删除scripts


删除printers


2.删除所有默认内容


删除%systemdirectory%inetsrviisadmin


删除%systemdirectory%inetsrviisadmpwd

删除inetpubwwwroot (or ftproot or smtproot)


删除inetpubscripts


删除inetpubiissamples


删除inetpubadminscripts


删除%systemroot%helpiishelpiis


删除%systemroot%webprinters


删除%systemdrive%program filescommon filessystemmsadc.只有使用Microsoft Access 数据库的网站需要 msadc。



3.配置默认网站为极为安全设置(例如,需要SSL,仅集成Windows验证,只可从一个IP访问,NTFS权限主目录不能为空等) ,然后停止该网站。这样的结果是破坏默认网站,80%***会盲目地***,而不是您的真实网站。


4.配置所有与主机头的DNS名称相匹配的网站。 打开ISM,网站选项卡,点击高级按钮,选择对话框 “ 全部未分配 ” (或特定的 IP) 然后点击编辑按钮,并指定了主机头在适当的栏位。对HTTP和HTTPS进行同样的操作。不配置默认网站的主机头。这将把90 %的自动化***工具的工作转到瘫痪掉的默认网站上。


5.主目录的IIS权限:启用“读取”和“记录访问”。禁用"写入","索引资源","目录浏览",“脚本资源访问”(仅WebDAV使用此权限)以及Frontpage Web权限。执行权限选择“无”。对目录包含脚本文件的目录启用执行权限。


6.禁用所有不必要的ISAPI筛选器,执行此操作打开ISM,ISAPI筛选器选项卡。


删除 Frontpage ISAPI 筛选器 (或较早的 IIS 服务器上的扩展)在不需要这些情况下。 如果需要 Frontpage ISAPI (扩展),设置它为只读。 较早的 IIS 服务器上禁用 Frontpage 扩展使用以下命令:“ c commonmicrosoft sharedweb server extensions40infpsrvadm –o uninstall –p all”。

摘要式身份验证。 此身份验证方法需要支持可逆加密的密码,这是一个坏主意。 可逆加密的密码在斯坦福 Windows 结构中不被支持。 删除此筛选器。

HTTP 压缩。 此筛选器允许 HTTP 流的压缩。 这是一个很好的功能,但可能会导致安全性降低。

SSL。 不大可能您不需要 SSL 的支持,但如果你真不需要它请删除它。


7.删除与 ISAPI 筛选器禁用相关联的 DLL 文件。 Frontpage: fpexdll.dll,摘要: md5filt.dll,压缩: compfilt.dll,SSL: Sspifilt.dll。


8.(如果可能) 取消映射下列扩展名:.asa、.asp、.bat、.cdx、.cer、.htr、.htw、.ida、.idc、.idq、.printer、.shtm、.shtml、.stm 在 ISM,主目录选项卡,并选择配置按钮。


9.禁用“启用父路径”设置。 在 ISM,主目录选项卡,点击 配置按钮,打开应用程序选项选项卡,取消选中复选框。 这样可以防止不知道目录的基础结构情况下恶意的 Web目录遍历。 Web 开发人员不能使用像路径....Default.htm,必须使用完全合格的路径。
 


补丁级别



1.应用 Service Pack 和修补程序。可以使用 UpdateExpert,Microsoft ’s HfCheck 工具。


2.安装高加密包 (附带 Windows 2000 SP 2) ,可以使用128 位加密。

身份验证模式


1.在网站层级、 虚拟目录层级、 目录层级 等所有地方禁用基本身份验证。


2.在任何地方禁用摘要式身份验证。


3.IUSR & IWAM 帐户不应是域用户,也不应是Guests用户。 如果不需要匿名访问则删除这些帐户。


4.如果web 数据是 ultra-sensitive(超灵敏)数据,考虑将服务器放置在域之外。


授权更改


1.启用 IIS 审计,变更为W3号扩展日志记录,并检查信息被正确记录。 (例如:需要用户名吗?) 考虑启用下列项目: 日期和时间,客户端的IP地址,服务器的IP地址,服务器端口,用户名, 用于访问网站的HTTP方法,URI 尾,URI 查询,请求的状态。


2.设置只允许系统和本地管理员能访问IIS日志。


3.删除"hklmsoftware"的非管理员帐户的写入权限 。 管理员和系统帐户:完全控制,所有人: 读取或执行。


4.限制 系统上所有可执行程序的NTFS权限。 NTFS 权限:管理员和系统帐户:完全控制、 用户: 读取或执行。 给 IUSR 帐户谨慎执行权限。

 5.限制任何脚本编译器如Perl的权限 。 NTFS的 权限 :管理员及系统:完全控制,所有人:读/执行。给 IUSR 帐户谨慎执行权限。


6.确保所有人只有只读权限:
     
      Web root
      %systemroot%
      %systemroot%system32
      %systemroot%system32inetsrv
      %systemroot%system32inetsrvasp
      %systemroot%program filescommon files