规划安全强化 (SharePoint Server 2010)

 

适用于: SharePoint Foundation 2010, SharePoint Server 2010

上一次修改主题: 2016-11-30

本文介绍对 Microsoft SharePoint Server 2010 Web 服务器、应用程序服务器、数据库服务器角色的安全强化,并提供有关 Microsoft SharePoint 2010 产品中端口、协议和服务的特定强化要求的详细指导。

本文内容:

安全服务器快照

在服务器场环境中,各服务器扮演着特定的角色。针对这些服务器的安全强化建议视各服务器扮演的角色而定。本文包含两类服务器角色的安全快照:

这些快照划分为常见的配置类别。为每个类别定义的特征表示 Microsoft SharePoint 2010 产品的最佳强化状态。本文不包含针对环境中的其他软件的强化指导。

Web 服务器和应用程序服务器角色

本节将确定 Web 服务器和应用程序服务器的强化特征。某些指导应用于特定的服务应用程序;在这些情况下,需要只在运行与指定服务应用程序关联的服务的服务器上应用对应的特征。

类别

特征

服务 MMC 管理单元中列出的服务

启用下列服务:

  • 文件和打印机共享

  • ASP.NET 状态服务(如果您正在使用 InfoPath Forms Services 或 Microsoft Project Server 2010)

  • 视图状态服务(如果您正在使用 InfoPath Forms Services)

  • World Wide Web 发布服务

确保未禁用下列服务:

  • 对 Windows 令牌服务的声明

  • SharePoint 2010 管理服务

  • SharePoint 2010 定时服务

  • SharePoint 2010 跟踪服务

  • SharePoint 2010 VSS 编写器服务

确保下列服务在承载对应角色的服务器上未被禁用:

  • SharePoint 2010 用户代码主机

  • SharePoint Foundation Search V4

  • SharePoint Server Search 14

  • 从目录存储区导入配置文件的服务器上的 User Profile Service 应用程序需要下列服务:

    • Forefront Identity Manager 服务

    • Forefront Identity Manager 同步服务

端口和协议

  • TCP 80、TCP 443 (SSL)

  • 用于进行搜索爬网的自定义端口(如果配置)

  • 搜索角色所使用的文件和打印机共享服务 — 以下两者之一:

    • 直接宿主 SMB (TCP/UDP 445) — 推荐端口

    • TCP/IP 上的 NetBIOS (NetBT)(TCP/UDP 端口 137、138、139)— 不使用此端口时禁用它

  • Web 服务器和服务应用程序之间进行通信所需的端口(默认为 HTTP):

    • HTTP 绑定:32843

    • HTTPS 绑定:32844

    • net.tcp 绑定:32845(前提是第三方已为服务应用程序实现此选项)

  • 在运行 Forefront Identity Management 代理的服务器上同步 SharePoint 2010 产品与 Active Directory 之间的配置文件所需的端口:

    • TCP/5725

    • TCP/UDP 389(LDAP 服务)

    • TCP/UDP 88 (Kerberos)

    • TCP/UDP 53 (DNS)

    • UDP 464(Kerberos 更改密码)

    有关如何与其他目录存储同步配置文件的信息,请参阅下文中的 User Profile Service 强化要求

  • UDP 端口 1434 和 TCP 端口 1433 — 用于 SQL Server 通信的默认端口。如果在 SQL Server 计算机上阻止这些端口(推荐),并在命名实例上安装数据库,请配置 SQL Server 客户端别名以连接到命名实例。

  • 用于 Microsoft SharePoint Foundation User Code Service(针对沙盒解决方案)的 TCP/IP 32846 — 对于所有 Web 服务器上的出站连接,此端口必须是打开的。对于已启用此服务的 Web 服务器或应用程序服务器上的入站连接,此端口必须是打开的。

  • 确保端口对于可供用户访问的 Web 应用程序保持开放状态。

  • 阻止从外部访问用于管理中心网站的端口。

  • TCP/25(用于电子邮件集成的 SMTP)

注册表

无其他指导

审核和日志记录

如果已重定位日志文件,请确保更新日志文件位置以保持匹配。同时更新目录访问控制列表 (ACL)。

代码启用安全性

确保为 Web 应用程序启用最小的代码访问安全性权限集。应将每个 Web 应用程序的 Web.config 文件中的 <trust> 元素设置为 WSS_Minimal(其中 WSS_Minimal 具有在 14\config\wss_minimaltrust.config 中定义或由您自己的自定义策略文件定义的较低默认值,自定义策略文件设置在最低限度。)

Web.config

针对您运行安装程序后所创建的每个 Web.config 文件,请遵循以下建议:

  • 不允许通过 PageParserPaths 元素编译数据库页面或为其编写脚本。

  • 确保 <SafeMode> CallStack=""false"" 和 AllowPageLevelTrace=""false""。

  • 确保将大约为每个区域最大控件数的 Web 部件限制设置为较低值。

  • 确保将 SafeControls 列表设置为网站所需的最小控件集合。

  • 确保将工作流 SafeTypes 列表设置为所需 SafeTypes 的最低级别。

  • 确保启用 customErrors (<customErrors mode=""On""/>)。

  • 根据需要考虑 Web 代理设置 (<system.net>/<defaultProxy>)。

  • 将 Upload.aspx 限制设置为合理预期用户要上载的最大大小(默认为 2 GB)。上载大小超过 100 MB 时可能会影响性能。

数据库服务器角色

关于 SharePoint 2010 产品的主要建议是保护服务器场内部通信安全,方法是阻止用于 Microsoft SQL Server 通信的默认端口,并改为建立自定义端口用于此通信。有关如何为 SQL Server 通信配置端口的详细信息,请参阅下文中的阻止标准的 SQL Server 端口

类别

特征

端口

  • 阻止 UDP 端口 1434。

  • 考虑阻止 TCP 端口 1433。

本文不介绍如何保护 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 Server 2010)

服务应用程序通信

默认情况下,通过使用具有到端口 32843 的绑定的 HTTP,可在同一服务器场内的 Web 服务器和服务应用程序之间进行通信。当您发布服务应用程序时,可以选择具有以下绑定的 HTTP 或 HTTPS:

  • HTTP 绑定:端口 32843

  • HTTPS 绑定:端口 32844

此外,开发服务应用程序的第三方还可实现第三种选择:

  • net.tcp 绑定:端口 32845

您可以更改每个服务应用程序的协议和端口绑定。在管理中心的“服务应用程序”页上,选择相应服务应用程序,然后单击“发布”。

通过标准 SQL Server 端口或为 SQL Server 通信配置的端口,服务应用程序与 SQL Server 之间可进行通信。

文件和打印机共享服务要求

有多项核心功能依赖文件和打印机共享服务以及相应的协议和端口。这些功能包括(但不限于):

  • 搜索查询   所有搜索查询都需要文件和打印机共享服务。

  • 爬网和索引内容   为了爬网内容,包含爬网组件的服务器通过前端 Web 服务器发送请求。前端 Web 服务器直接与内容数据库通信,然后将结果发送回包括爬网组件的服务器。这种通信需要文件和打印机共享服务。

  • 索引传播   如果 Search Service 应用程序是使用分布于多台服务器的爬网组件和查询组件配置的,则具有爬网组件的服务器会将内容索引文件复制到具有查询组件的服务器。此操作需要文件和打印机共享服务及其对应的协议和端口。

文件和打印机共享服务需要使用命名管道。命名管道可以使用直接承载 SMB 协议或 NetBT 协议进行通信。为了确保环境的安全,建议使用直接承载 SMB 而不使用 NetBT。本文中提供的强化建议假定使用的是 SMB。

下表说明因依赖文件和打印机共享服务而引起的强化要求。

类别

要求

注释

服务

文件和打印机共享

需要使用命名管道。

协议

使用直接承载 SMB 的命名管道

禁用 NetBT

命名管道可以使用 NetBT 来取代直接承载 SMB。但是,NetBT 的安全性不如直接承载 SMB。

端口

以下任意一项:

  • 直接宿主 SMB (TCP/UDP 445) — 推荐

  • NetBT(TCP/UDP 端口 137、138、139)

禁用 NetBT(端口 137、138、139)(如果未在使用)

有关如何禁用 NetBT 的详细信息,请参阅 Microsoft 知识库文章 204279:TCP/IP 上的 SMB 的直接宿主连接 (https://go.microsoft.com/fwlink/?linkid=76143&clcid=0x804)。

User Profile Service 强化要求

User Profile Service 应用程序使用 Forefront Identity Management 代理对 SharePoint 2010 产品与 Active Directory 或轻型目录访问协议 (LDAP) 目录服务之间的配置文件进行同步。Forefront Identity Management 代理安装在 SharePoint 场中的所有服务器上,但只有设置为与目录存储同步的服务器上需要此代理。

Forefront Identity Manager 代理包括以下两种服务,它们在设置为对 Active Directory 或其他目录存储进行爬网的服务器上必须保持启用状态:

  • Forefront Identity Manager 服务

  • Forefront Identity Manager 同步服务

此外,还必须在运行 Forefront Identity Management 代理且设置为对目录存储进行爬网的服务器上打开 TCP 端口 5725。

在 Active Directory 环境中,为了在与目录存储同步的 SharePoint 2010 产品服务器和运行 Active Directory 的服务器之间进行通信,以下端口必须保持打开状态:

  • TCP/UDP 389(LDAP 服务)

  • TCP/UDP 88 (Kerberos)

  • TCP/UDP 53 (DNS)

  • UDP 464(Kerberos 更改密码)

有关 Forefront Identity Management 代理的强化要求(包括其他目录类型的端口要求)的详细信息,请参阅管理代理通信端口、权利和权限(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=186832&clcid=0x804)(该链接可能指向英文页面)。

与外部服务器的连接

可以配置 SharePoint Server 2010 的若干功能,以便访问位于服务器场外部的服务器计算机上的数据。如果配置对位于外部服务器计算机上的数据的访问权限,请确保启用相应计算机之间的通信。大多数情况下,所使用的端口、协议和服务取决于外部资源。例如:

  • 与文件共享的连接使用文件和打印机共享服务。

  • 与外部 SQL Server 数据库的连接使用默认端口或自定义端口进行 SQL Server 通信。

  • 与 Oracle 数据库的连接通常使用 OLE DB。

  • 与 Web 服务的连接同时使用 HTTP 和 HTTPS。

下表列出了一些功能,可对这些功能进行配置,以便访问位于服务器场外部的服务器计算机上的数据。

功能

说明

内容爬网

您可以配置爬网规则,以便对位于外部资源(包括网站、文件共享、Exchange 公共文件夹和业务数据应用程序)上的数据进行爬网。在对外部数据源进行爬网时,爬网角色直接与这些外部资源通信。

有关详细信息,请参阅“规划内容爬网 (Office SharePoint Server)”[ https://technet.microsoft.com/zh-cn/library/cc262926.aspx ]。

Business Data Connectivity 连接

Web 服务器和应用程序服务器与配置为使用 Business Data Connectivity 连接的计算机直接通信。

有关详细信息,请参阅“规划业务数据与业务数据目录的连接”[ https://technet.microsoft.com/zh-cn/library/cc263252.aspx ]。

接收 Microsoft Office Excel 工作簿

如果在 Excel Services 应用程序中打开的工作簿连接到任何外部数据源(例如,Analysis Services 和 SQL Server),则需要开放适当的 TCP/IP 端口,用于连接到这些外部数据源。有关详细信息,请参阅“规划 Excel Services 的外部数据连接”[ https://technet.microsoft.com/zh-cn/library/cc262899.aspx ]。

如果将通用命名约定 (UNC) 路径配置为 Excel Services 应用程序中的受信任位置,则 Excel Calculation Services 应用程序角色使用文件和打印机共享服务所使用的协议和端口,通过 UNC 路径接收 Office Excel 工作簿。

存储在内容数据库中的工作簿或者用户在网站中上载或下载的工作簿不受此通信影响。

电子邮件集成的服务要求

电子邮件集成需要使用以下两种服务:

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 产品对象设置单独的组织单位。只有该组织单位才能允许对 Microsoft SharePoint 目录管理服务所使用的帐户进行写访问。

会话状态的服务要求

Project Server 2010 和 InfoPath Forms Services 都保留会话状态。如果在服务器场内部署这些功能或产品,请不要禁用 ASP.NET 状态服务。此外,如果您要部署 InfoPath Forms Services,则不要禁用视图状态服务。

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)(该链接可能指向英文页面)。