Total Pageviews

Tuesday, 24 January 2012

加固Windows Server 2003 IIS 服务器

概述

本模块集中说明在您的环境中强化 IIS 服务器所需的指导和步骤。为了向组织的公司 Intranet 中的 Web 服务器和应用程序提供全面的安全保护,应该保护每个 Microsoft Internet 信息服务 (IIS) 服务器以及在这些服务器运行的每个 Web 站点和应用程序不受可与它们连接的客户端计算机的侵害。此外,还应该保护在这些所有 IIS 服务器上运行的 Web 站点和应用程序不受在公司 Intranet 中其他 IIS 服务器上运行的 Web 站点和应用程序的侵害。

为了在抵制恶意用户和攻击者的过程中占据主动,默 认情况下,IIS 不安装在 Windows Server 2003 系列产品上。IIS 最初以高度安全的“锁定”模式中安装。例如,默认情况下,IIS 最初仅提供静态内容。诸如 Active Server Pages (ASP)、ASP.NET、服务器端包括 (SSI)、Web Distributed Authoring and Versioning (WebDAV) 发布及 Microsoft FrontPage? Server Extensions 等功能仅在管理员启用它们后才起作用。可以通过 Internet 信息服务管理器(IIS 管理器)中的 Web 服务扩展节点启用这些功能和服务。

IIS 管理器具有图形化的用户界面 (GUI),可用来方便地对 IIS 进行管理。它包括用于文件和目录管理的资源,能够对应用程序池进行配置,并且具有安全性、性能、以及可靠性方面的诸多特性。

本章接下来的部分详细介绍了各种安全性强化设置,执行这些设置可增强公司 Intranet 中存放 HTML 内容的 IIS 服务器的安全性。但是,为确保 IIS 服务器始终处于安全状态,还应执行安全监控、检测和响应等步骤。

审核策略设置

在 本指南定义的三种环境下,IIS 服务器的审核策略设置通过 MSBP 来配置。有关 MSBP 的详细信息,请参阅模块创建 Windows Server 2003 服务器的成员服务器基准。MSBP 设置可确保所有相关的安全审核信息都记录在所有的 IIS 服务器上。

用户权限分配

本 指南中定义的三种环境中的 IIS 服务器的大多数用户权限分配都是通过 MSBP 配置的。有关 MSBP 的详细信息,请参阅模块创建 Windows Server 2003 服务器的成员服务器基准。在下一节中阐述 MSBP 与 Incremental IIS Group Policy(增量式 IIS 组策略)之间的差别。

拒绝通过网络访问该计算机

成员服务器默认值 旧客户端 企业客户端 高安全性
SUPPORT_388945a0
匿名登录;内置管理员帐户;Support_388945a0;Guest;所有非操作系统服务帐户
匿名登录;内置管理员帐户;Support_388945a0;Guest;所有非操作系统服务帐户
匿名登录;内置管理员帐户;Support_388945a0;Guest;所有非操作系统服务帐户

注意:安全模板中不包含匿名登录、内置管理员帐户、Support_388945a0、Guest 和所有非操作系统服务帐户。对于组织中的每个域,这些帐户和组拥有唯一的安全标识 (SID)。因此,必须手动添加它们。

“拒 绝通过网络访问该计算机”设置决定了哪些用户不能通过网络访问该计算机。。这些设置将拒绝大量的网络协议,包括服务器消息块 (SMB) 协议、网络基本输入/输出系统 (NetBIOS)、通用 Internet 文件系统 (CIFS)、超文本传输协议 (HTTP) 和组件对象模型 (COM+)。当用户帐户同时适用两种策略时,该设置将覆盖“允许通过网络访问该计算机”设置。通过给其它组配置该用户权限,您可以限制用户在您的环境中 执行委托管理任务的能力。

在模块创建 Windows Server 2003 服务器的成员服务器基准中,本指南建议将 Guests 组包含在被分配了该权限的用户和组列表中,以提供最大可能的安全性。但是,用于匿名访问 IIS 的 IUSR 帐户被默认为 Guests 组的成员。本指南建议从增量式 IIS 组策略中清除 Guests 组,以确保必要时可配置对 IIS 服务器的匿名访问。因此,在本指南所定义的全部三种环境下,我们针对 IIS 服务器将“拒绝通过网络访问该计算机”设置配置为包括:匿名登录、内置管理员、Support_388945a0、Guest 以及所有非操作系统服务帐户。

安全选项

在本指南所的定义的三种环境中,IIS 服务器的安全选项通过 MSBP 来配置。有关 MSBP 的详细信息,请参阅模块创建 Windows Server 2003 服务器的成员服务器基准。MSBP设置确保了在企业IIS服务器中统一配置正确的事件日志设置。

事件日志设置

在 本指南中定义的三种环境中,IIS 服务器的事件日志设置通过 MSBP 来配置。有关 MSBP 的详细信息,请参阅模块创建 Windows Server 2003 服务器的成员服务器基准。MSBP 设置确保了在企业 IIS 服务器中统一配置正确的事件日志设置。

系统服务

为了让 IIS 向 Windows Server 2003 中添加 Web 服务器功能,则必须启用以下三种服务。增量式 IIS 组策略确保了这些服务被配置为自动启动。

注意:MSBP 禁用了几种其它的 IIS 相关服务。FTP、SMTP 和 NNTP 就是 MSBP 所禁用的一些服务。如果想要在本指南所定义的任何一种环境下的 IIS 服务器上启用这些服务,必须更改增量式 IIS 组策略。

HTTP SSL

服务名 成员服务器默认值 旧客户端 企业客户端 高安全性
HTTPFilter
手动
自动
自动
自动

HTTP SSL 服务可让 IIS 执行安全套接字层 (SSL) 功能。SSL是建立加密通信渠道的一种开放标准,以防止诸如信用卡号等关键信息被中途截获。首先,它使得在万维网上进行安全的电子金融事务成为可能,当然也可用它来实现其它 Internet 服务。

如 果 HTTP SSL 服务停止,IIS 将无法执行 SSL 功能。禁用此服务将导致任何明确依赖它的服务都无法实现。您可以使用组策略来保护和设置服务的启动模式,只允许服务器管理员访问这些设置,从而防止未经授 权或恶意的用户配置或操作该服务。组策略还可以防止管理员无意中禁用该服务。因此,在本指南所定义的全部三种环境下,针对 IIS 服务器的需要将“HTTP SSL”设置配置为“自动”。
IIS Admin 服务

服务名 成员服务器默认值 旧客户端 企业客户端 高安全性
IISADMIN
没有安装
自动
自动
自动


“IIS Admin 服务”允许对 IIS 组件进行管理,例如文件传输协议 (FTP)、应用程序池、Web 站点、Web 服务扩展,以及网络新闻传输协议 (NNTP) 和简单邮件传输协议 (SMTP) 的虚拟服务器。

“IIS Admin 服务”必须运行,以便让 IIS 服务器能够提供 Web、FTP、NNTP 以及 SMTP 服务。如果禁用此服务,则无法配置 IIS,并且对站点服务的请求将不会成功。您可以使用组策略来保护和设置服务的启动模式,只允许服务器管理员访问这些设置,从而防止未经授权或恶意的用户 配置或操作该服务。组策略还可以防止管理员无意中禁用该服务。因此,在本指南所定义的全部三种环境下,我们针对 IIS 服务器的需要将“IIS Admin 服务”设置配置为“自动”。

万维网发布服务

服务名 成员服务器默认值 旧客户端 企业客户端 高安全性
W3SVC
没有安装
自动
自动
自动


“万维网发布服务”通过 IIS 管理单元提供网络连通性和网站管理。

“万 维网发布服务”必须运行,以便让 IIS 服务器通过 IIS 管理器提供网络连通性和管理。您可以使用组策略来保护和设置服务的启动模式,只允许服务器管理员访问这些设置,从而防止未经授权或恶意的用户配置或操作该 服务。组策略还可以防止管理员无意中禁用该服务。因此,在本指南所定义的全部三种环境下,我们针对 IIS 服务器的需要将“万维网发布服务”设置配置为“自动”。

其他安全设置

安装 Windows Server 2003 和 IIS 之后,默认情况下,IIS 仅传输静态 Web 内容。当 Web 站点和应用程序包含动态内容,或者需要一个或多个附加 IIS 组件时,每个附加 IIS 功能必须逐一单独启用。但是,在该过程中必须谨慎,以确保在您的环境中将每个 IIS 服务器的受攻击面降至最小。如果您的组织的 Web 站点只包含静态内容而无需其它任何 IIS 组件,这时,默认的 IIS 配置足以将您的环境中的 IIS 服务器的受攻击面降至最小。

通过 MSBP 应用的安全设置为 IIS 服务器提供大量的增强安全性。不过,还是应该考虑一些其他的注意事项和步骤。这些步骤不能通过组策略完成,而应该在所有的 IIS 服务器上手动执行。

仅安装必要的 IIS 组件

除 “万维网发布服务”之外,IIS6.0 还包括其它的组件和服务,例如 FTP 和 SMTP 服务。您可以通过双击“控制面板”上的“添加/删除程序”来启动 Windows 组件向导应用程序服务器,以安装和启用 IIS 组件和服务。安装 IIS 之后,必须启用 Web 站点和应用程序所需的所有必要的 IIS 组件和服务。

您应该仅启用 Web 站点和应用程序所需的必要 IIS 组件和服务。启用不必要的组件和服务会增加 IIS 服务器的受攻击面。

有关 IIS 组件位置和建议设置的指导,请参阅如何识别 Windows Server 2003 中的 IIS 6.0 组件。

仅启用必要的 Web 服务扩展

许多运行于 IIS 服务器上的网站和应用程序具有超出静态页面范畴的扩展功能,包括生成动态内容的能力。通过 IIS 服务器提供的功能来产生或扩展的任何动态内容,都是通过使用 Web 服务扩展来实现的。

IIS 6.0 中增强的安全功能允许用户单独启用或禁用 Web 服务扩展。在一次新的安装之后,IIS 服务器将只传输静态内容。可通过 IIS 管理器中的 Web 服务扩展节点来启用动态内容功能。这些扩展包括 ASP.NET、SSI、WebDAV 和 FrontPage Server Extensions。

启用所有的 Web 服务扩展可确保与现有应用软件的最大可能的兼容性。但是,这可能带来一些安全性风险,因为当所有的扩展被启用时,同时也启用了您的环境下 IIS 服务器所不需要的功能,这样 IIS 的受攻击面就会增加。

为了尽可能减少 IIS 服务器的受攻击面,在本指南所定义的三种环境下,只应该在 IIS 服务器上启用必要的的 Web 服务扩展。

仅启用在您的 IIS 服务器环境下运行的站点和应用软件所必需的 Web 服务扩展,通过最大限度精简服务器的功能,可以减少每个 IIS 服务器的受攻击面,从而增强了安全性。

有关 Web 服务扩展的指导,请参阅如何识别 Windows Server 2003 中的 IIS 6.0 组件。

在专用磁盘卷中放置内容

IIS 会将默认 Web 站点的文件存储到 inetpubwwwroot,其中 是安装 Windows Server 2003 操作系统的驱动器。

在 本指南所定义的三种环境下,应该将构成 Web 站点和应用程序的所有文件和文件夹放置到 IIS 服务器的专用磁盘卷中。将这些文件和文件夹放置到 IIS 服务器的一个专用磁盘卷 — 不包含操作系统的磁盘卷 — 有助于防止目录遍历攻击。目录遍历攻击是指攻击者对位于 IIS 服务器目录结构之外的一个文件发送请求。

例如,cmd.exe 位于于 System32 文件夹中。攻击者可能请求访问以下位置:

....Windowssystemcmd.exe,企图调用命令提示

如 果 Web 站点内容位于一个单独的磁盘卷上,这种类型的目录遍历攻击将无法成功,原因有二。首先,cmd.exe 的权限已经作为 Windows Server 2003 基础结构的一部分进行了重设,从而将对它的访问限制在很有限的用户群中。其次,完成该更改之后,cmd.exe 不再与 Web 根目录处于同一磁盘卷,而目前没有任何已知的方法可通过使用这种攻击来访问位于不同驱动器上的命令。
除了安全性考虑之外,将站点和应用程序文件和文件夹放置在一个专用的磁盘卷中使诸如备份和恢复这样的管理任务变得更加容易。而且,将这种类型的内容放在一个分开的专用物理驱动器中有助于减少系统分区中的磁盘争用现象,并且改善磁盘的整体访问性能。

设置 NTFS 权限

Windows Server 2003 将检查
Web 站点权限: 授予的权限:

用户可查看目录或文件的内容和属性。在默认情况下,该权限为选中状态。

写用户可更改目录或文件的内容和属性。

脚本源访问

用户可以访问源文件。如果启用“读”权限,则可以读取源文件;如果启用“写”权限,则可以更改脚本源代码。脚本源访问包括脚本的源代码。如果既不启用“读”权限,也不启用“写”权限,则此选项将不可用。

要点:启用“脚本源访问”时,用户可以查看敏感信息,例如用户名和密码。他们还可以更改 IIS 服务器上运行的源代码,从而严重影响服务器的安全性和性能。

目录浏览

用户可以查看文件列表和集合。

日志访问

每次访问 Web 站点都会创建日志条目。

索引此资源

允许使用索引服务索引资源。这样便可以对资源执行搜索。

执行

以下选项确定用户运行脚本的级别:

“无” — 不允许在服务器上运行脚本和可执行文件。
“仅限于脚本” — 仅允许在服务器上运行脚本。
“脚本和可执行文件” — 允许在服务器上运行脚本和可执行文件。

配置 IIS 日志

本指南建议在指南定义的三种环境下均启用 IIS 服务器上的 IIS 日志。

可 以为每个站点或应用程序创建单独的日志。IIS 可以记录 Microsoft Windows? 操作系统提供的事件日志或性能监视功能所记录信息范围之外的信息。IIS 日志可记录诸如谁访问过站点、访客浏览过哪些内容、以及最后一次访问的时间等信息。IIS 日志可被用来了解那些内容最受欢迎,确定信息瓶颈,或者用作协助攻击事件调查的资源。

IIS 管理器管理单元可以用来配置日志文件格式、日志计划以及将被记录的确切信息。为限制日志的大小,应当对所记录信息的内容进行仔细规划。

当 IIS 日志被启用时,IIS 使用 W3C 扩展日志文件格式来创建日常操作记录,并存储到在 IIS 管理器中为站点指定的目录中。为改善服务器性能,日志文件应当存储到系统卷以外的条带集或条带集/镜像磁盘卷上。

而且,您还可以使用完整的全局命名约定 (UNC) 路径将日志文件写到网络上以便远程共享。远程日志让管理员能够建立集中的日志文件存储和备份。但是,通过网络对日志文件进行写操作可能会对服务器性能带来负面影响。

IIS 日志可以配置为使用其它几种 ASCII 或开放数据库连接 (ODBC) 文件格式。ODBC 日志让 IIS 能够将活动信息存储到 SQL 数据库中。但是,应该注意,当启用 ODBC 日志时,IIS 将禁用内核模式缓存。因此,执行 ODBC 日志会降低服务器的总体性能。

存 放数以百计的站点的 IIS 服务器通过启用集中的二进制日志来改善日志性能。集中化的二进制日志允许 IIS 服务器将所有 Web 站点的活动信息写到一个日志文件上。这样,通过减少需要逐一存储和分析的日志文件的数量,大大地提高了 IIS 日志记录过程的可管理性和可伸缩性。有关集中化二进制日志的更多信息,请参阅 Microsoft TechNet 主题“Centralized Binary Logging”,其网址为:http://www.microsoft.com/technet/prodtechnol /windowsserver2003/proddocs/standard/log_binary.asp(英文)。

当 IIS 日志按默认设置存储在 IIS 服务器中时,只有服务器管理员有权访问它们。如果日志文件的文件夹或文件的所有者不在“Local Administrators”组中时,HTTP.sys — IIS 6.0 的内核模式驱动程序 — 将向 NT 事件日志发布一个错误。该错误指出文件夹或文件的所有者不在“Local Administrators”组中,并且这个站点的日志将暂时失效,直到其所有者被添加到“Local Administrators”组中,或者现有的文件夹或文件被删除。

向用户权限分配手动添加唯一的安全组
大多数通过 MSBP 应用的用户权限分配都已经在本指南附带的安全性模板中进行了适当的指定。但是,有些帐户和安全组不能被包括在模板内,因为它们的安全标识符 (SID) 对于单个的 Windows 2003 域是特定的。下面给出了必须手动配置的用户权限分配。

警 告:下表包含了内置的 Administrator 帐户。注意不要将 Administrator 帐户和内置的 Administrators 安全组相混淆。如果 Administrators 安全组添加了以下任何一个拒绝访问的用户权限,您必须在本地登录以更正该错误。

此外,根据模块创建 Windows Server 2003 服务器的成员服务器基准中描述的某些建议,内置的 Administrator 账户可能已经被重命名。当添加 Administrator 账户时,请确信指定的是经过重命名的账户。


成员服务器默认值 旧客户端 企业客户端 高安全性
拒绝通过网络访问该计算机
内置管理员帐户;Support_388945a0;Guest;所有非操作系统服务帐户
内置管理员帐户;Support_388945a0;Guest;所有非操作系统服务帐户
内置管理员帐户;Support_388945a0;Guest;所有非操作系统服务帐户

警告:所有非操作系统服务账户包括整个企业范围内用于特定应用程序的服务账户。这不包括操作系统使用的内置帐户 LOCAL SYSTEM、LOCAL SERVICE 或 NETWORK SERVICE。

保护众所周知帐户的安全

Windows Server 2003 具备大量的内置用户帐户,这些帐户不能删除,但可以重命名。Windows 2003 中最常见的两个帐户是 Guest 和 Administrator。

默认情况下,Guest 帐户在成员服务器和域控制器上被禁用。不应更改此设置。内置的 Administrator 帐户应被重命名,而且其描述也应被更改,以防止攻击者通过该帐户破坏远程服务器。

许 多恶意代码的变种企图使用内置的管理员账户来破坏一台服务器。在近几年来,进行上述重命名配置的意义已经大大降低了,因为出现了很多新的攻击工具,这些工 具企图通过指定内置 Administrator 账户的安全标识 (SID) 来确定该帐户的真实姓名,从而侵占服务器。SID 是唯一能确定网络中每个用户、组、计算机帐户以及登录会话的值。改变内置帐户的 SID 是不可能的。将本地管理员帐户改变为一个特别的名称,可以方便您的操作人员监视对该帐户的攻击企图。

要保护 IIS 服务器中众所周知帐户的安全,请执行以下步骤:

1. 重命名 Administrator 和 Guest 帐户,并且将每个域和服务器上的密码更改为长而复杂的值。

2. 在每个服务器上使用不同的名称和密码。如果在所有的域和服务器上使用相同的帐户名和密码,攻击者只须获得对一台成员服务器的访问权限,就能够访问所有其它具有相同帐户名和密码的服务器。

3. 更改默认的帐户描述,以防止帐户被轻易识别。

4. 将这些更改记录到一个安全的位置。


注意:可以通过组策略重命名内置的管理员帐户。本指南提供的任何安全性模板中都没有配置该设置,因为您必须为您的环境选择一个唯一的名字。“帐户:重命名管理员帐户”设置可用来重命名本指南所定义的三种环境中的管理员帐户。该设置是组策略的安全选项设置的一部分。

保护服务帐户的安全

除非绝对必须,否则不要让服务运行在域帐户的安全上下文中。如果服务器的物理安全受到破坏,域账户密码可以很容易通过转储本地安全性授权 (LSA) 秘文而获得。

用 IPSec 过滤器阻断端口

Internet 协议安全性 (IPSec) 过滤器可为增强服务器所需要的安全级别提供有效的方法。本指南推荐在指南中定义的高安全性环境中使用该选项,以便进一步减少服务器的受攻击面。

有关使用 IPSec 过滤器的详细信息,请参阅模块其他成员服务器强化过程。

下表列出在本指南定义的高级安全性环境下可在 IIS 服务器上创建的所有 IPSec 过滤器。

服务 协议 源端口 目标端口 源地址 目标地址 操作 镜像
one point Client
所有
所有
所有
ME
MOM 服务器
允许


Terminal Services
TCP
所有
3389
所有
ME
允许


Domain Member
所有
所有
所有
ME
域控制器
允许


Domain Member
所有
所有
所有
ME
域控制器 2
允许


HTTP Server
TCP
所有
80
所有
ME
允许


HTTPS Server
TCP
所有
443
所有
ME
允许


All Inbound Traffic
所有
所有
所有
所有
ME
禁止


在实施上表所列举的规则时,应当对它们都进行镜像处理。这样可以确保任何进入服务器的网络通信也可以返回到源服务器。

上表介绍了服务器要想完成特定角色的功能所应该打开的基本端口。如果服务器使用静态的 IP 地址,这些端口已经足够。如果需要提供更多的功能,则可能需要打开更多的端口。打开更多的端口将使得您的环境下的 IIS 服务器更容易管理,但是这可能大大降低服务器的安全性。

由 于在域成员和域控制器之间有大量的交互,尤其是 RPC 和身份验证通信,在 IIS 服务器和全部域控制器之间,您应该允许所有的通信。通信还可以被进一步限制,但是大多数环境都需要为有效保护服务器而创建更多的过滤器。这将使得执行和管 理 IPSec 策略非常困难。您应该为每一个将与 IIS 服务器进行交互的域控制器创建类似的规则。为了提高 IIS 服务器的可靠性和可用性,您需要为环境中的所有域控制器添加更多规则。

正如上表所示,如果环境中运行了 Microsoft 操作管理器 (MOM),那么在执行 IPSec 过滤器的服务器和 MOM 服务器之间,应该允许传输所有的网络通信。这是必须的,因为在 MOM 服务器和 OnePoint 客户端(向 MOM 控制台提供报告的客户端应用程序)之间存在大量的交互过程。其它管理软件可能也具有类似的需求。如果需要更高级别的安全性,则可以配置 OnePoint 客户端的过滤操作,从而协调 IPSec 和 MOM 服务器。

该IPSec 策略将有效地阻止通过任意一个高端口的通信,因此它不允许远程过程调用 (RPC) 通信。这可能会使得服务器的管理非常困难。由于已经关闭了许多端口,您可以启用终端服务。这样一来,管理员便可以执行远程管理。

上面的网络通信图假设环境中包含启用了 Active Directory 的 DNS 服务器。如果使用独立的 DNS 服务器,则可能需要其他规则。

IPSec 策略的执行应该不会对服务器的性能有明显影响。但是,在执行这些过滤器之前必须进行测试,以核实服务器保持了必要的功能和性能。您可能还需要添加一些附加规则以支持其它应用程序。

本 指南包括一个 .cmd 文件,它简化了依照指南要求为域控制器创建 IPSec 过滤器的过程。PacketFilters-IIS.cmd 文件使用 NETSH 命令创建适当的过滤器。必须修改此 .cmd 文件,以使其包含您所在环境中域控制器的 IP 地址。脚本中包含两个占位符,用于要添加的两个域控制器。如需要,可以添加其他的域控制器。这些域控制器的 IP 地址列表应当是最新的。

如 果环境中有 MOM,应当在脚本中指定相应的 MOM 服务器 IP 地址。此脚本不会创建永久的过滤器。因此,直到 IPSec 策略代理启动时,服务器才会得到保护。有关构建永久的过滤器或创建高级 IPSec 过滤器脚本的详细信息,请参阅模块其他成员服务器强化过程。最后,此脚本被配置为不分发其创建的 IPSec 策略。IP 安全性策略管理单元可被用来检查所创建的 IPSec 过滤器,并且分发 IPSec 策略以便让其生效。

小结
本章解释了在本指南指定的三种环境下,为保护 IIS 服务器的安全所应采取的强化设置。我们讨论的大多数设置通过组策略进行配置和应用。

FROM http://www.yaosansi.com/post/341.html

No comments:

Post a Comment