Plan security hardening for SharePoint Server

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

安全服务器快照

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

这些快照划分为常见的配置类别。 为每个类别定义的特征表示 SharePoint Server 的最佳强化状态。 本文不包括环境中其他软件的强化指南。

除了为特定角色强化服务器外,还必须通过在场服务器和外部请求之间放置防火墙来保护 SharePoint 场。 可使用本文中的指导来配置防火墙。

SharePoint 服务器

本部分标识 SharePoint 服务器的强化特征。 某些指导应用于特定的服务应用程序;在这些情况下,需要只在运行与指定服务应用程序关联的服务的服务器上应用对应的特征。

类别 特征
服务 MMC 管理单元中列出的服务
启用下列服务:
如果使用 InfoPath Forms Services 或 Project Server 2016) ,ASP.NET State service (
如果使用的是 InfoPath Forms Services) ,则查看状态服务 (
World Wide Web 发布服务
确保未禁用这些服务:
声明为 Windows 令牌服务
SharePoint 管理
SharePoint 定时服务
SharePoint 跟踪服务
SharePoint VSS 编写器
确保在托管相应角色的服务器上未禁用这些服务:
AppFabric 缓存服务
SharePoint 用户代码主机
SharePoint 搜索主机控制器
SharePoint Server 搜索
端口和协议
TCP 80、TCP 443 (SSL)
用于搜索爬网的自定义端口(如果已配置)(例如在默认端口上对文件共享或网站进行爬网)
搜索索引组件所需的端口 — TCP 16500-16519(仅限服务器场内)
AppFabric 缓存服务所需的端口 — TCP 22233-22236
Windows Communication Foundation 通信所需的端口 — TCP 808
SharePoint 服务器和服务应用程序之间的通信所需的端口 (默认值为 HTTP) :
HTTP 绑定:TCP 32843
HTTPS 绑定:TCP 32844
net.tcp 绑定:TCP 32845(前提是第三方已为服务应用程序实现此选项)
如果您的计算机网络环境使用 Windows Server 2012、Windows Server 2008、Windows Server 2008 R2、Windows 7 或 Windows Vista 以及 Windows Server 2012 和 Windows Vista 之前的 Windows 版本,您必须对下面两个端口范围启用连接性:
高端口范围 49152 至 65535
低端口范围 1025 至 5000
用于 SQL Server 通信的默认端口 — TCP 1433、UDP 1434。 如果在 SQL Server 计算机上阻止了这些端口,并且数据库安装在命名实例上,请配置 SQL Server 客户端别名以连接到命名实例。
Microsoft SharePoint Foundation User Code Service(针对沙盒解决方案)— TCP 32846。 对于具有分布式缓存服务器的所有前端和前端上的出站连接,必须打开此端口。 对于前端和前端上的入站连接,必须打开此端口,并启用此服务的分布式缓存服务器。
确保端口对于可供用户访问的 Web 应用程序保持开放状态。
阻止从外部访问用于管理中心网站的端口。
用于电子邮件集成的 SMTP - TCP 25 或自定义 TCP 端口(如果已将出站电子邮件配置为使用非默认端口)。
用于回显请求的 ICMP - 每个分布式缓存服务器都应具有为回显请求启用 ICMP 的入站/出站防火墙规则。
注册表
无其他指导
审计和日志记录
如果已重定位日志文件,请确保更新日志文件位置以保持匹配。 同时更新目录访问控制列表 (ACL)。
Web.config
针对您运行安装程序后所创建的每个 Web.config 文件,请遵循以下建议:
不允许通过 PageParserPaths 元素编译或编写数据库页的脚本。
确保 <SafeMode> CallStack="false" 和 AllowPageLevelTrace="false"。
确保将大约为每个区域最大控件数的 Web 部件限制设置为较低值。
确保将 SafeControls 列表设置为网站所需的最小控件集合。
确保将工作流 SafeTypes 列表设置为所需 SafeTypes 的最低级别。
确保启用 customErrors (<customErrors mode="On"/>)。
根据需要考虑 Web 代理设置 (<system.net>/<defaultProxy>) 。
将Upload.aspx限制设置为合理预期用户上传的最大大小。 上载大小超过 100 MB 时可能会影响性能。

数据库服务器角色

注意

SharePoint Server 2016 中增加了 MinRole 功能,角色的概念发生了变化。 有关角色的信息,请参阅 在 SharePoint Server 2016 中规划 MinRole 服务器部署

SharePoint Server 的主要建议是通过阻止用于 SQL Server 通信的默认端口并为此通信建立自定义端口来保护服务器场间通信。 有关如何为 SQL Server 通信配置端口的详细信息,请参阅下文中的阻止标准的 SQL Server 端口

类别 特征
端口
阻止 UDP 1434。
考虑阻止 TCP 1433。

本文不介绍如何保护 SQL Server。 有关如何保护 SQL Server 的详细信息,请参阅 保护 SQL Server (https://go.microsoft.com/fwlink/p/?LinkId=186828) 。

特定端口、协议和服务指导

本文的其余部分更详细地介绍了 SharePoint Server 的特定强化要求。

本节内容:

阻止标准的 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 端口,但请确保防火墙配置为仅允许与需要访问 SQL Server 的服务器通信。 应阻止不需要访问 SQL Server 的服务器通过 TCP 端口 1433 和 UDP 端口 1444 连接到 SQL Server。

可以使用多种方法来阻止端口。 您可以使用防火墙来阻止这些端口。 但是,除非您可以确保没有其他路由接入到网络段中,并且没有恶意的用户能够访问网络段,否则我们建议直接在承载 SQL Server 的服务器上阻止这些端口。 可以使用"控制面板"中的"Windows 防火墙"来执行此操作。

配置 SQL Server 数据库实例以便在非标准端口上进行侦听

使用 SQL Server,可以重新分配默认实例和任何命名实例所使用的端口。 在 SQL Server 中,可通过使用 SQL Server 配置管理器来重新分配端口。

配置 SQL Server 客户端别名

在服务器场中,所有前端 Web 服务器和应用程序服务器都是 SQL Server 客户端计算机。 如果阻止 SQL Server 计算机上的 UDP 端口 1434,或者更改默认实例的默认端口,则必须在连接到 SQL Server 计算机的所有服务器上配置 SQL Server 客户端别名。 在此方案中,SQL Server 客户端别名指定命名实例正在侦听的 TCP 端口。

若要连接到 SQL Server 的实例,请在目标计算机上安装 SQL Server 客户端组件,然后使用 SQL Server 配置管理器来配置 SQL Server 客户端别名。 若要安装 SQL Server 客户端组件,请运行安装程序并仅选择安装以下客户端组件:

  • 连接组件

  • 管理工具(包括 SQL Server 配置管理器)

有关阻止标准 SQL Server 端口的具体强化步骤,请参阅 为 SharePoint Server 配置 SQL Server 安全性

服务应用程序通信

默认情况下,SharePoint 服务器与场中的服务应用程序之间的通信是通过使用 HTTP 与 TCP 32843 绑定进行的。 当您发布服务应用程序时,可以选择具有以下绑定的 HTTP 或 HTTPS:

  • HTTP 绑定:TCP 32843

  • HTTPS 绑定:TCP 32844

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

  • net.tcp 绑定:TCP 32845

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

还可以使用 Get-SPServiceHostConfigSet-SPServiceHostConfig Microsoft PowerShell cmdlet 查看和更改 HTTP/HTTPS/net.tcp 绑定。

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

与外部服务器的连接

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

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

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

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

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

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

功能 说明
内容爬网
您可以配置爬网规则,以便对位于外部资源(包括网站、文件共享、Exchange 公共文件夹和业务数据应用程序)上的数据进行爬网。 在对外部数据源进行爬网时,爬网角色直接与这些外部资源通信。
有关详细信息,请参阅 在 SharePoint Server 中管理爬网
Business Data Connectivity 连接
Web 服务器和应用程序服务器与配置为使用 Business Data Connectivity 连接的计算机直接通信。

电子邮件集成的服务要求

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

SMTP 服务

电子邮件集成要求至少在服务器场中的一台前端 Web 服务器上使用简单邮件传输协议 (SMTP) 服务。 传入电子邮件必须使用 SMTP 服务。 对于传出的电子邮件,既可以使用 SMTP 服务,也可以通过组织中专用的电子邮件服务器(例如 Microsoft Exchange Server 计算机)路由传出的电子邮件。

Microsoft SharePoint 目录管理服务

SharePoint Server 包括用于创建电子邮件通讯组的内部服务(Microsoft SharePoint 目录管理服务)。 当您配置电子邮件集成时,可以选择启用目录管理服务功能,使用户能够创建通讯组列表。 当用户创建 SharePoint 组并且选择创建通讯组列表的选项时,Microsoft SharePoint 目录管理服务会在 Active Directory 环境中创建相应的 Active Directory 通讯组列表。

在强化安全性的环境中,建议保护与 Microsoft SharePoint 目录管理服务关联的文件(即 SharePointEmailws.asmx),以限制对此服务的访问。 例如,您可能只允许服务器场帐户访问此文件。

此外,该服务需要 Active Directory 环境中的相应权限以创建 Active Directory 通讯组列表对象。 建议在 Active Directory for SharePoint Server 对象中设置单独的组织单位 (OU) 。 只有该组织单位才能允许对 Microsoft SharePoint 目录管理服务所使用的帐户进行写访问。

会话状态的服务要求

Project Server 2016 和 InfoPath Forms Services 都维护会话状态。 如果要在服务器场中部署这些功能或产品,请不要禁用 ASP.NET State 服务。 此外,如果要部署 InfoPath Forms Services,请不要禁用视图状态服务。

SharePoint Server 产品服务

不要禁用 SharePoint Server 安装的服务 (前面) 快照中列出的服务。

如果您的环境不允许作为本地系统运行的服务,则只有在您知道后果并可以解决这些后果时,才能考虑禁用 SharePoint 管理服务。 此服务是以本地系统运行的 Win32 服务。

此服务由 SharePoint 定时服务用来执行需要服务器上管理权限的操作,例如创建 Internet Information Services (IIS) 网站、部署代码以及停止和启动服务。 如果禁用此服务,则无法从管理中心站点完成与部署相关的任务。 必须使用 Microsoft PowerShell 运行 Start-SPAdminJob cmdlet (或使用 Stsadm.exe 命令行工具来运行 execadmsvcjobs 操作) 完成 SharePoint Server 的多服务器部署并运行其他与部署相关的任务。

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 Server 会自动为 Web 应用程序创建 Web.config 文件。

本文前面提到的 Web 服务器和应用程序服务器快照列出了有关配置 Web.config 文件的建议。 这些建议应该应用于所创建的每个 Web.config 文件,包括为管理中心网站创建的 Web.config 文件。

有关 ASP.NET 配置文件和编辑 Web.config 文件的详细信息,请参阅 ASP.NET 配置 (https://go.microsoft.com/fwlink/p/?LinkID=73257) 。

另请参阅

概念

SharePoint Server 的安全性