在 Exchange Server 中配置扩展保护
许多环境尚未在 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 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 的访问。不要忘记关注我们并分享这篇文章。
