团队,
交换环境都是2016,没有混用。父域和子域存在,但每个域和林的功能级别是2012R2。直到最近,所有域控制器都是 2012R2。AD 团队(与我不同)引入了 Server 2016 域控制器,我认为它引起了问题。以下是症状:
邮件卡在目标为子域的父域中的服务器上。队列上的错误是“454 4.7.0 临时身份验证错误”,事件日志中的相关事件是事件 ID 2017,来源:MSExchangeTransport,消息是:
“发送连接器内部 SMTP 发送连接器的出站身份验证失败,错误 KdcUnknownEncryptionType。身份验证机制是 ExchangeAuth。目标是 SMTPSVC/服务器 fqdn。”
邮件将毫无问题地从子域流向父域。就像我之前所说的,我认为发生的最重要的变化就是引入了 Server 2016 DC。要临时修复它,我可以重新启动消息卡住的服务器,它会工作一段时间。这看起来确实像是一个 Kerberos 问题。
编辑:我们还设置了 ASA,但我所有的交换服务器、DC 和此 ASA 之间支持的加密类型都是“28”。
谷歌搜索显示时间同步问题,但我检查了 Exchange 服务器和域控制器,一切似乎完全同步。我还检查了复制运行状况,似乎没有任何问题。我还检查了重复或格式错误的 SPN,但没有找到任何东西。关于 SPN,我还有更多可以研究的地方吗?就像他们请求/使用什么样的加密一样?我对 Kerberos 了解不多。
编辑:作为另一个说明,使用 GPO,我确实从目标服务器中删除了 RC4-HMAC。结果,该klist tickets
命令确实显示了正确的“AES ...”,但后来我的powershell被破坏了......“可能的原因”是:
- “用户或密码错误”
- “未指定身份验证方法和用户名时使用的 Kerberos”
- “Kerberos 接受域用户名,但不接受本地用户名。”
- “远程计算机名称和端口的 SPN 不存在”
- “客户端和远程计算机在不同的域中,没有信任。”
然后它建议尝试在 WinRM TrustedHosts 列表中添加目标计算机。
我想你可以先检查 SPN,你可以运行“
SetSPN -L <ExchangeServerName>
”命令检查 SPN 配置。它应该包含:如果有些遗漏,您可以运行“
setspn -a <data>
”来添加。然后,在客户端,在 CMD 中运行“klist ticket”以检查票证类型。通常应该是“AES-256-CTS-xxx”。
这是有关票证类型的相关博客: https ://blogs.msdn.microsoft.com/openspecification/2011/05/30/windows-configurations-for-kerberos-supported-encryption-type/
此外,根据我的研究,从 Windows Server 2016 开始,KDC 可以支持 PKInit 新鲜度扩展。也许你也可以检查这一点。
听起来 RC4 是 2012 DC 上允许的 Kerberos 加密类型,而您的 AD 团队引入了禁用 RC4 的 2016 DC。我这样说是有信心的,因为它是 Server 2016 上推荐的安全设置。目标是从环境中删除 RC4,但必须首先更新您的关键任务应用程序以支持 AES。我的建议是确保允许的 Kerberos 加密类型在所有 DC 上配置相同,然后在所有域控制器上启用 Kerberos 服务票证成功审核,以查看哪些应用程序仍在尝试使用 RC4。它将显示在 EventId 4769 中,加密类型为 0x17。如果您看到这一点,则表明正在使用 RC4。您需要确保所有涉及的用户帐户、计算机帐户、