Windows IIS服务器安全加固清单
2008-8-21
正在加载数据...
【TechTarget中国原创】如何保护Windows IIS服务器安全呢?本文提供了从常规、帐户、文件和目录、共享、端口、审核与日志、站点和虚目录等方面加固Windows IIS 服务器的清单……
【TechTarget中国原创】常规
- 如果IIS服务器没有完全加固,就不要将其连接到网络
- 将服务器放置在一个安全的地点
- 不要在域控制器上安装IIS服务器
- 不要安装打印机
- 在服务器上使用两个网络接口,一个用于管理,一个用于网络
- 安装服务包(Service Pack) 、补丁以及hot fixes
- 在服务器上运行IIS Lockdown
- 安装并配置URLScan
- 确保服务器的远程管理的安全并设置密码,低session暂停时间和帐户锁定
- 禁止不必要的Windows服务
- 确保服务运行在最低权限的帐户上
- 禁用不需要的FTP,SMTP和NNTP
- 禁用Telnet服务
- 如果应用程序不需要则禁用ASP.NET服务
- 如果应用程序不需要则禁用webDAV服务,如果需要则确保它安全(具体方法参见:support.microsoft.com网站的create a secure webDAV Publishing Directory)
- 不要安装数据访问组件,除非指定需要
- 不要安装Internet服务管理器的HTML版本
- 不要安装不必要的索引服务
- 不要安装不必要的FrontPage服务
- 加固TCP/IP栈
- 禁用NetBIOS和SMB(关闭137, 138, 139 和445端口)
- 重新配置回收站和页面文件系统数据分配策略
- 确保CMOS设置的安全
- 确保物理介质的安全(软盘驱动器,CD-ROM驱动器等等)
帐户
- 删除服务器上不用的帐户
- 禁用Windows上的Guest帐户
- 重命名管理员帐户并设置一个复杂的密码
- 如果没有应用程序使用则禁用IUSR_MACHINE帐户
- 如果应用程序需要匿名访问则创建一个定制的最低权限的匿名帐户
- 不要赋予匿名帐户对网页内容目录的写访问权或者允许它执行命令行工具
- 如果你的主机有多个Web应用程序,则对每一个应用程序配置一个单独的匿名用户帐户
- 设置ASP.NET访问帐户为最低权限(只有当你不使用具有最低权限的默认ASP.NET帐户时才使用这个帐户)
- 加强服务器帐户和密码安全策略
- 限制远程登录(删除Everyone group中 “通过网络访问这台计算机”的用户权限)
- 不要在管理员中共享帐户
- 禁止NULL session(匿名登录)
- 帐户的授权使用需要得到正式批准
- 不要允许用户和管理员共享帐户
- 在一个管理组中不要创建多于两个的帐户
- 要求管理员本地登录或者确保远程登录安全的方案
文件和目录
- 使用多个磁盘或分区,不要将web服务器根目录和操作系统文件夹安装在同一个分区
- 将文件和目录放在NTFS格式的分区上
- 将web站点内容放在非系统NTFS格式的分区上
- 创建一个新的站点,禁用默认站点
- 将日志文件放在非系统NTFS格式分区上,但不要和web站点内容放在同一个分区
- 限制Everyone group(不能访问\WINNT\system32或者web目录)
- 确保Web站点根目录拒绝匿名Internet帐户的写访问
- 确保内容目录拒绝匿名Internet帐户的写访问
- 删除远程IIS管理应用(\WINNT\System32%#92;Inetsrv\IISAdmin)删除资源kit tools, utilities and SDKs
- 删除示例应用(\WINNT\Help\IISHelp, \Inetpub\IISSamples)
- 删除Content-Location标头中的IP地址
共享
- 删除所有不必要的共享(包括默认管理员共享)
- 限制对必要共享的访问(Everyone group没有这个权限)
- 删除不必要的管理共享(C$ and Admin$)(微软管理服务(SMS)和微软操作管理(MOM)需要这些共享)
端口
- 限制面向网络的接口为80端口(如果SSL使用则端口为443)
- 在服务器上运行IIS Lockdown
注册
- 限制远程注册访问
- 确保SAM的安全(HKLM\System\CurrentControlSet\Control\LSA\NoLMHash),这个只对单独的服务器有效
审核与日志
- 审核失败登录
- 重置IIS日志文件并确保其安全
- 根据应用安全需要配置一个合适文件大小的日志文件
- 定期存档并分析日志文件
- 审核对Metabase.bin文件的访问权限
- 设置IIS对W3C扩展日志文件格式的审核
- 在support.microsoft.com上阅读如何用SQL服务器分析web日志
站点和虚目录
- 将web站点放在非系统分区上
- 禁用“父路径”设置
- 删除具有潜在危险的虚目录,包括IISSamples, IISAdmin, IISHelp and Scripts
- 删除或者确保MSADC虚目录(RDS)的安全
- 不要允许目录的读web访问权限
- 限制虚目录下的匿名帐户的写和执行web的权限
- 确保只有对支持内容创建的文件夹有脚本资源访问权限
- 确保只有对支持内容创建和被配置成电文鉴别(如果需要还有SSL加密)的文件夹有写访问权限
- 删除未使用的FrontPage服务扩展(FPSE),如果FPSE被使用,更新并且限制对它们的访问权限
- 删除IIS因特网打印虚目录
脚本映射
- 将不需要的文件扩展映射到404.dll(.idq, .htw, .ida, .shtml, .shtm, .stm, idc, .htr, .printer)
- 将不必要的ASP.NET文件类型扩展映射到Machine.config中的"HttpForbiddenHandler"
ISAPI筛选器(ISAPI Filters)
- 删除服务器中不必要或者不用的ISAPI筛选器(ISAPI Filters)
IIS Metabase
- 通过使用NTFS许可(%systemroot%\system32\inetsrv\metabase.bin)限制对metabase的访问权限
- 限制IIS的标志信息(在内容中禁用IP地址)
服务器证书
- 确保证书日期范围是合有效的
- 服务器证书只限于运用于预期的用途(例如,服务器证书不用于e-mail)
- 确保证书的公钥有效,所有通向信得过的根目录的路径得到核准
- 确认证书没有被废除
Machine.config
- 将保护资源映射到HttpForbiddenHandler
- 删除不用的HttpModules
- 禁用跟踪信息()
- 关闭调试编译器()
Windows IIS服务器安全加固清单