在 Exchange Server 中配置扩展保护

Jacki

许多环境尚未在 Exchange Server 中启用扩展保护。虽然他们可以启用扩展保护,但他们并没有意识到或被正确告知他们应该出于安全原因启用它。很高兴知道安装 Exchange Server 2019 CU14(或更高版本)时默认启用扩展保护。在本文中,您将了解如何在 Exchange Server 中配置扩展保护。

什么是扩展保护?

Windows 扩展保护增强 Windows Server 中的现有身份验证并减轻身份验证中继或“中间人”(MitM) 攻击。此缓解措施是通过使用通过通道绑定令牌 (CBT) 指定的通道绑定信息实现的安全信息来实现的,该通道绑定令牌主要用于 SSL 连接。

虽然可以在每个虚拟目录上手动启用扩展保护,但 Microsoft 提供了Exchange扩展保护管理.ps1PowerShell 脚本可帮助批量完成此任务。

在 Exchange Server 上启用扩展保护之前需要注意一些限制。因此,您必须审查微软文档(保持最新)并检查您是否符合资格。

以下 Exchange Server 版本支持 Windows 扩展保护:

  • 交换服务器2013
  • 交换服务器 2016
  • 交换服务器 2019

笔记:您需要在 Exchange Server 上安装 2022 年 8 月的 Exchange Server 安全更新 (SU) 版本或更高版本。

重要的:请记住使用最新的 Exchange 累积更新和 Exchange 安全更新使 Exchange 服务器保持最新状态。订阅新闻通讯,不要错过 Exchange Server 更新。

检查扩展保护状态

我们建议使用两种方法来检查 Exchange Server 上的扩展保护状态。

方法 1. Exchange 运行状况检查器脚本

运行 Exchange 运行状况检查器脚本并创建 Exchange Server 运行状况检查报告。这将告诉您 Exchange Server 上是否启用了扩展保护。

将目录更改为脚本文件夹。

cd C:scripts

运行下面的命令。

Get-ExchangeServer | ?{$_.AdminDisplayVersion -Match "^Version 15"} | .HealthChecker.ps1; .HealthChecker.ps1 -BuildHtmlServersReport -HtmlReportFile "ExchangeAllServersReport.html"; .ExchangeAllServersReport.html

Exchange Server 上未启用扩展保护,它显示了安全漏洞:

方法 2. Exchange 扩展保护管理 PowerShell 脚本

下载Exchange扩展保护管理.ps1PowerShell 脚本并将其保存在C:脚本文件夹。

有关的:配置 Exchange Server 的装载点

以管理员身份运行 Exchange Management Shell 并运行脚本,包括-显示扩展保护范围。

C:scripts.ExchangeExtendedProtectionManagement.ps1 -ShowExtendedProtection

价值支持值列应该具有相同的值。

在我们的示例中,价值栏目展示没有任何对于所有虚拟目录,这意味着 Exchange Server 上未启用扩展保护。

Version 23.05.04.2151
Results for Server: EX01-2019

Default Web Site            Value SupportedValue ConfigSupported RequireSSL     ClientCertificate IPFilterEnabled
----------------            ----- -------------- --------------- ----------     ----------------- ---------------
API                         None  Require                  False True (128-bit) Ignore                      False
Autodiscover                None  None                      True True (128-bit) Ignore                      False
ECP                         None  Require                  False True (128-bit) Ignore                      False
EWS                         None  Allow                     True True (128-bit) Ignore                      False
Microsoft-Server-ActiveSync None  Allow                     True True (128-bit) Ignore                      False
OAB                         None  Require                  False True (128-bit) Ignore                      False
Powershell                  None  Require                  False False          Accept                      False
OWA                         None  Require                  False True (128-bit) Ignore                      False
RPC                         None  Require                  False False          Ignore                      False
MAPI                        None  Require                  False True (128-bit) Ignore                      False

Exchange Back End           Value SupportedValue ConfigSupported RequireSSL     ClientCertificate IPFilterEnabled
-----------------           ----- -------------- --------------- ----------     ----------------- ---------------
API                         None  Require                  False True (128-bit) Ignore                      False
Autodiscover                None  None                      True True (128-bit) Ignore                      False
ECP                         None  Require                  False True (128-bit) Ignore                      False
EWS                         None  Require                  False True (128-bit) Ignore                      False
Microsoft-Server-ActiveSync None  Require                  False True (128-bit) Ignore                      False
OAB                         None  Require                  False True (128-bit) Ignore                      False
Powershell                  None  Require                  False True (128-bit) Accept                      False
OWA                         None  Require                  False True (128-bit) Ignore                      False
RPC                         None  Require                  False False          Ignore                      False
PushNotifications           None  Require                  False True (128-bit) Ignore                      False
RPCWithCert                 None  Require                  False False          Ignore                      False
MAPI/emsmdb                 None  Require                  False True           Ignore                      False
MAPI/nspi                   None  Require                  False True           Ignore                      False

在下一步中,我们将在 Exchange Server 上启用扩展保护。

请执行以下步骤在 Exchange Server 上启用扩展保护。

重要的:即使使用 DAG 配置,也请在工作时间后执行这些步骤。这是因为您需要确保 Outlook 客户端在更改后可以成功连接。

1.更新到最新的 Exchange Server CU/SU。

2.配置 Exchange Server TLS 设置。

3.禁用 Outlook Anywhere 的 SSL 卸载。

默认情况下启用 Outlook Anywhere 的 SSL 卸载,但必须禁用才能实现扩展保护。

Set-OutlookAnywhere "EX01-2019RPC (Default Web Site)" -SSLOffloading $false

4.下载Exchange扩展保护管理.ps1PowerShell 脚本并将其保存在C:脚本文件夹。

5.确保管理员已添加到组织管理团体。

笔记:用户必须在组织管理并且必须从提升的 Exchange Management Shell (EMS) 命令提示符运行此脚本。添加用户后组织管理组,注销并再次登录以使更改生效。

6.将路径目录更改为脚本文件夹并运行 PowerShell 脚本以在 Exchange Server 上启用扩展保护。

C:scripts.ExchangeExtendedProtectionManagement.ps1

7.输出将显示有关启用扩展保护的信息。按进入

笔记:不得在通过混合代理(Exchange 现代混合拓扑)发布的 Exchange 服务器上的前端 EWS 虚拟目录上启用扩展保护。请阅读文章修复错误:验证混合代理的 Exchange 使用情况来了解更多信息。

Version 23.05.04.2151

Enabling Extended Protection
Extended Protection is recommended to be enabled for security reasons. Known Issues: Following scenarios will not work
when Extended Protection is enabled.
    - SSL offloading or SSL termination via Layer 7 load balancing.
    - Exchange Hybrid Features if using Modern Hybrid.
    - Access to Public folders on Exchange 2013 Servers.
You can find more information on: https://aka.ms/ExchangeEPDoc. Do you want to proceed?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

8.该脚本将处理先决条件任务,为以下内容创建备份应用程序主机配置,并配置扩展保护。

The following servers have the TLS Configuration below
EX01-2019

RegistryName        Location                                                                              Value
------------        --------                                                                              -----
SchUseStrongCrypto  SOFTWAREMicrosoft.NETFrameworkv2.0.50727                                           1
SystemTlsVersions   SOFTWAREMicrosoft.NETFrameworkv2.0.50727                                           1
SchUseStrongCrypto  SOFTWAREMicrosoft.NETFrameworkv4.0.30319                                           1
SystemTlsVersions   SOFTWAREMicrosoft.NETFrameworkv4.0.30319                                           1
SchUseStrongCrypto  SOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727                               1
SystemTlsVersions   SOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727                               1
SchUseStrongCrypto  SOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319                               1
SystemTlsVersions   SOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319                               1
DisabledByDefault   SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Client  1
Enabled             SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Client  0
DisabledByDefault   SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server  1
Enabled             SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server  0
DisabledByDefault   SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client  1
Enabled             SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client  0
DisabledByDefault   SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server  1
Enabled             SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server  0
DisabledByDefault   SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client  0
Enabled             SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client  1
DisabledByDefault   SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server  0
Enabled             SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server  1

TLS prerequisites check successfully passed!

All servers that we are trying to currently configure for Extended Protection have RPC (Default Web Site) set to false for SSLOffloading.
EX01-2019: Backing up applicationHost.config.
EX01-2019: Successful backup to C:WindowsSystem32inetSrvconfigapplicationHost.cep.20230505220519.bak
EX01-2019: Successfully updated applicationHost.config.

Successfully enabled Extended Protection: EX01-2019
Do you have feedback regarding the script? Please email [email protected].

扩展保护已成功启用。

验证扩展保护启用状态

确保一切设置正确并创建新的 Exchange Server 运行状况检查报告。

扩展保护不再存在安全漏洞。它显示启用扩展保护(任何 VDir)与价值真的

另一种方法是使用 PowerShell 脚本进行检查。这就是它的样子。

C:scripts.ExchangeExtendedProtectionManagement.ps1 -ShowExtendedProtection

价值支持值列显示相同的值。这意味着 Exchange Server 上启用了扩展保护。

Version 23.05.04.2151
Results for Server: EX01-2019

Default Web Site            Value   SupportedValue ConfigSupported RequireSSL     ClientCertificate IPFilterEnabled
----------------            -----   -------------- --------------- ----------     ----------------- ---------------
API                         Require Require                   True True (128-bit) Ignore                      False
Autodiscover                None    None                      True True (128-bit) Ignore                      False
ECP                         Require Require                   True True (128-bit) Ignore                      False
EWS                         Allow   Allow                     True True (128-bit) Ignore                      False
Microsoft-Server-ActiveSync Allow   Allow                     True True (128-bit) Ignore                      False
OAB                         Require Require                   True True (128-bit) Ignore                      False
Powershell                  Require Require                   True False          Accept                      False
OWA                         Require Require                   True True (128-bit) Ignore                      False
RPC                         Require Require                   True True (128-bit) Ignore                      False
MAPI                        Require Require                   True True (128-bit) Ignore                      False

Exchange Back End           Value   SupportedValue ConfigSupported RequireSSL     ClientCertificate IPFilterEnabled
-----------------           -----   -------------- --------------- ----------     ----------------- ---------------
API                         Require Require                   True True (128-bit) Ignore                      False
Autodiscover                None    None                      True True (128-bit) Ignore                      False
ECP                         Require Require                   True True (128-bit) Ignore                      False
EWS                         Require Require                   True True (128-bit) Ignore                      False
Microsoft-Server-ActiveSync Require Require                   True True (128-bit) Ignore                      False
OAB                         Require Require                   True True (128-bit) Ignore                      False
Powershell                  Require Require                   True True (128-bit) Accept                      False
OWA                         Require Require                   True True (128-bit) Ignore                      False
RPC                         Require Require                   True True (128-bit) Ignore                      False
PushNotifications           Require Require                   True True (128-bit) Ignore                      False
RPCWithCert                 Require Require                   True True (128-bit) Ignore                      False
MAPI/emsmdb                 Require Require                   True True (128-bit) Ignore                      False
MAPI/nspi                   Require Require                   True True (128-bit) Ignore                      False

已在 Exchange Server 上成功配置扩展保护。

回滚 Exchange 扩展保护

此语法将回滚先前配置了扩展保护的所有联机 Exchange 服务器的扩展保护配置。

C:scripts.ExchangeExtendedProtectionManagement.ps1 -RollbackType "RestoreConfiguration"

此语法会回滚先前配置了扩展保护的所有联机 Exchange Server 的 EWS 后端虚拟目录的 IP 限制的扩展保护缓解。

C:scripts.ExchangeExtendedProtectionManagement.ps1 -RollbackType "RestrictTypeEWSBackend"

禁用 Exchange 扩展保护

此语法将通过将所有当前配置位置的值设置为来禁用所有在线 Exchange 服务器的扩展保护配置没有任何

C:scripts.ExchangeExtendedProtectionManagement.ps1 -DisableExtendedProtection

就是这样!

结论

您了解了如何在 Exchange Server 中配置扩展保护。首先,确保满足先决条件。接下来,运行 PowerShell 脚本。该脚本会告诉您是否缺少配置并将中止。如果一切正常,它将在所有虚拟目录上启用扩展保护。如果您遇到问题,可以使用 PowerShell 脚本轻松恢复扩展保护更改。

您喜欢这篇文章吗?您可能还喜欢限制对 Exchange Server 上端口 25 的访问。不要忘记关注我们并分享这篇文章。