适用于: SharePoint Foundation 2010
上一次修改主题: 2016-11-30
本文介绍 Microsoft SharePoint Foundation 2010 Web 服务器、应用程序服务器和数据库服务器角色的安全强化,并提供关于 Microsoft SharePoint 2010 产品中的端口、协议和服务的特定强化要求的详细指导。
本文内容:
安全服务器快照
在服务器场环境中,各服务器扮演着特定的角色。针对这些服务器的安全强化建议视各服务器扮演的角色而定。本文包含两类服务器角色的安全快照:
快照可分为常见的配置类别。为每个类别定义的特征代表 Microsoft SharePoint 2010 产品的最佳强化状态。本文不包括环境中其他软件的强化指导。
Web 服务器和应用程序服务器角色
本节说明了 Web 服务器和应用程序服务器的强化特征。有些指导适用于特定的服务应用程序;在这样的情况下,相应的特征只适用于运行与指定服务应用程序关联的服务的服务器。
类别 |
特征 |
服务 MMC 管理单元中列出的服务 |
启用以下服务:
确保不禁用这些服务:
确保在承载相应角色的服务器上没有被禁用这些服务:
|
端口和协议 |
|
注册表 |
无其他指导 |
审核和日志记录 |
如果已重定位日志文件,请确保更新日志文件位置以保持匹配。同时还要更新目录访问控制列表 (ACL)。 |
代码启用安全性 |
确保为 Web 应用程序启用最小的代码启用安全性权限集。应将每个 Web 应用程序的 Web.config 文件中的 <trust> 元素设置为 WSS_Minimal(其中 WSS_Minimal 具有在 14\config\wss_minimaltrust.config 中定义的较低默认值;或者您自己来自定义策略文件,此文件按最低限度设置。) |
Web.config |
对于运行安装程序后创建的每个 Web.config 文件,请遵循这些建议:
|
数据库服务器角色
对于 SharePoint 2010 产品的主要建议是通过阻止用于 Microsoft SQL Server 通信的外部端口并建立用于此通信的自定义端口来确保内部服务器场通信的安全。有关如何为 SQL Server 通信配置端口的详细信息,请参阅本文后面的阻止标准的 SQL Server 端口。
类别 |
特征 |
端口 |
|
本文不介绍如何保护 SQL Server。有关如何保护 SQL Server 的详细信息,请参阅保护 SQL Server (https://go.microsoft.com/fwlink/?linkid=186828&clcid=0x804)。
特定端口、协议和服务指导
本文其余部分更详细地介绍 SharePoint 2010 产品的特定强化要求。
本节内容:
阻止标准的 SQL Server 端口
服务器是安装在 SQL Server 的默认实例上,还是安装在 SQL Server 的命名实例上,会影响用于连接 SQL Server 的特定端口。SQL Server 的默认实例侦听 TCP 端口 1433 上的客户端请求。SQL Server 的命名实例在随机分配的端口号上侦听。此外,如果命名实例重新启动,其端口号可以重新分配(视以前分配的端口号是否可用而定)。
默认情况下,连接到 SQL Server 的客户端计算机首先使用 TCP 端口 1433 进行连接。如果此通信不成功,客户端计算机将询问在 UDP 端口 1434 上侦听的 SQL Server 解析服务,以确定数据库实例在其上进行侦听的端口。
SQL Server 的默认端口通信行为会引起一些影响服务器强化的问题。第一点,SQL Server 使用的是众所周知的端口,而且 SQL Server 解析服务已成为缓冲区溢出攻击和拒绝服务攻击(包括“Slammer”蠕虫病毒)的目标。即使 SQL Server 已更新以减轻 SQL Server 解析服务中的安全问题,众所周知的端口也仍是攻击目标。第二点,如果数据库安装在 SQL Server 的命名实例上,则会随机分配相应的通信端口,而且此端口可能会改变。在强化的环境中,此行为可能会阻止服务器之间的通信。为保护您的环境,对开放或阻止 TCP 端口的控制能力是必不可少的。
因此,对于服务器场,我们建议将静态端口号分配给 SQL Server 的命名实例,并阻止 UDP 端口 1434 以防止潜在的攻击者访问 SQL Server 解析服务。此外,还应考虑重新分配默认实例使用的端口并阻止 TCP 端口 1433。
可以使用多种方法来阻止端口。您可以使用防火墙来阻止这些端口。但是,除非您可以确保没有其他路由接入到网络段中,并且没有恶意的用户能够访问网络段,否则我们建议直接在承载 SQL Server 的服务器上阻止这些端口。可以使用“控制面板”中的“Windows 防火墙”来执行此操作。
配置 SQL Server 数据库实例以便在非标准端口上进行侦听
SQL Server 能够重新分配由默认实例和任何命名实例使用的端口。在 SQL Server 2005 和 SQL Server 2008 中,可使用 SQL Server 配置管理器重新分配端口。
配置 SQL Server 客户端别名
在服务器场中,所有前端 Web 服务器和应用程序服务器都是 SQL Server 客户端计算机。如果阻止 SQL Server 计算机上的 UDP 端口 1434,或者更改默认实例的默认端口,则必须在连接到 SQL Server 计算机的所有服务器上配置 SQL Server 客户端别名。
若要连接到 SQL Server 2005 或 SQL Server 2008 实例,请在目标计算机上安装 SQL Server 客户端组件,然后使用 SQL Server 配置管理器来配置 SQL Server 客户端别名。若要安装 SQL Server 客户端组件,请运行安装程序并仅选择安装以下客户端组件:
连接组件
管理工具(包括 SQL Server 配置管理器)
有关阻止标准 SQL 端口的具体强化步骤,请参阅针对 SharePoint 环境强化 SQL Server (SharePoint Foundation 2010)。
服务应用程序通信
默认情况下,服务器场内 Web 服务器和服务应用程序之间的通信是使用绑定到端口 32843 的 HTTP 进行的。当您发布服务应用程序时,可以选择具有以下绑定的 HTTP 或 HTTPS:
HTTP 绑定:端口 32843
HTTPS 绑定:端口 32844
此外,开发服务应用程序的第三方可以实现第三个选择:
- net.tcp 绑定:端口 32845
您可以更改每个服务应用程序的协议和端口绑定。在管理中心的“服务应用程序”页上,选择服务应用程序,然后单击“发布”。
服务应用程序和 SQL Server 之间的通信是通过标准的 SQL Server 端口或您为 SQL Server 通信配置的端口进行的。
文件和打印机共享服务要求
有多项核心功能依赖文件和打印机共享服务以及相应的协议和端口。这些功能包括(但不限于):
搜索查询 所有搜索查询都需要文件和打印机共享服务。
爬网和索引内容 为了爬网内容,包括爬网组件的服务器通过前端 Web 服务器发送请求。前端 Web 服务器直接与内容数据库通信,然后将结果发送回包括爬网组件的服务器。这种通信需要文件和打印机共享服务。
文件和打印机共享服务需要使用命名管道。命名管道可以使用直接承载 SMB 协议或 NetBT 协议进行通信。为了确保环境的安全,建议使用直接承载 SMB 而不使用 NetBT。本文中提供的强化建议假定使用的是 SMB。
下表说明因依赖文件和打印机共享服务而引起的强化要求。
类别 |
要求 |
注释 |
服务 |
文件和打印机共享 |
需要使用命名管道。 |
协议 |
使用直接承载 SMB 的命名管道 禁用 NetBT |
命名管道可以使用 NetBT 来取代直接承载 SMB。但是,NetBT 的安全性不如直接承载 SMB。 |
端口 |
以下任意一项:
|
禁用 NetBT(端口 137、138 和 139)(如果不使用它) |
有关如何禁用 NetBT 的详细信息,请参阅 Microsoft 知识库文章 204279:TCP/IP 上的 SMB 的直接宿主连接 (https://go.microsoft.com/fwlink/?linkid=76143&clcid=0x804)。
电子邮件集成的服务要求
电子邮件集成需要使用以下两种服务:
SMTP 服务
电子邮件集成需要在服务器场中的至少一台前端 Web 服务器上使用简单邮件传输协议 (SMTP) 服务。传入电子邮件需要使用 SMTP 服务。对于传出电子邮件,既可以使用 SMTP 服务,也可以通过组织中的专用电子邮件服务器(例如 Microsoft Exchange Server 计算机)传送传出电子邮件。
Microsoft SharePoint 目录管理服务
SharePoint 2010 产品包含一项内部服务(Microsoft SharePoint 目录管理服务)以用于创建电子邮件通讯组。当您配置电子邮件集成时,可以选择启用目录管理服务功能,允许用户创建通讯组列表。当用户创建 SharePoint 组并且选择用于创建通讯组列表的选项时,Microsoft SharePoint 目录管理服务会在 Active Directory 环境中创建相应的 Active Directory 通讯组列表。
在强化安全性的环境中,建议保护与 Microsoft SharePoint 目录管理服务关联的文件(即 SharePointEmailws.asmx),以限制对此服务的访问。例如,您可以只允许服务器场帐户访问此文件。
此外,该服务需要 Active Directory 环境中的相应权限以创建 Active Directory 通讯组列表对象。建议在 Active Directory 中为 SharePoint 2010 产品对象设置单独的组织单位 (OU)。只有该组织单位才能允许对 Microsoft SharePoint 目录管理服务所使用的帐户进行写访问。
SharePoint 2010 产品服务
请勿禁用 SharePoint 2010 产品所安装的服务(在前面的快照中列出)
如果您的环境不允许以本地系统运行的服务,则可以考虑禁用 SharePoint 2010 管理服务,但前提是您知道这样做的后果并且可以应对这些后果。此服务是以本地系统运行的 Win32 服务。
此服务由 SharePoint 2010 定时服务用来执行需要服务器上管理权限的操作,例如创建 Internet Information Services (IIS) 网站、部署代码以及停止和启动服务。如果您禁用此服务,则无法通过管理中心网站完成与部署有关的任务。您必须使用 Windows PowerShell 运行 Start-SPAdminJob cmdlet(或使用 Stsadm.exe 命令行工具运行 execadmsvcjobs 操作),来完成 SharePoint 2010 产品的多服务器部署以及运行与部署有关的其他任务。
Web.config 文件
.NET Framework(特别是 ASP.NET)使用 XML 格式的配置文件来配置应用程序。.NET Framework 依赖配置文件来定义配置选项。配置文件是基于文本的 XML 文件。多个配置文件可以并且通常存在于一个系统上。
.NET Framework 的系统范围配置设置在 Machine.config 文件中定义。Machine.config 文件位于 %SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\ 文件夹中。可以修改 Machine.config 文件中包含的默认设置,以影响在整个系统上使用 .NET Framework 的应用程序的行为。
如果在应用程序的根文件夹中创建 Web.config 文件,则可以更改该应用程序的 ASP.NET 配置设置。执行此操作时,Web.config 文件中的设置会替代 Machine.config 文件中的设置。
使用管理中心扩展 Web 应用程序时,SharePoint 2010 产品会自动为该 Web 应用程序创建一个 Web.config 文件。
本文前面提供的 Web 服务器和应用程序服务器快照列出了有关配置 Web.config 文件的建议。这些建议应该应用于所创建的每个 Web.config 文件,包括为管理中心网站创建的 Web.config 文件。
有关 ASP.NET 配置文件和编辑 Web.config 文件的详细信息,请参阅 ASP.NET 配置(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=73257&clcid=0x804)(该链接可能指向英文页面)。