在过去两个月中,我们遇到了不少问题,服务器时间和日期有时会更改为一些绝对随机的值。有时是未来几天或过去几天,有时甚至是几个月。
我们在多台虚拟机上都遇到了这个问题,所以不幸的是,这不是一台虚拟机的问题。
我们在 Amazon EC2 上运行 Windows Server 2019(版本 1809 OS 内部版本 17763.3406)。我们使用 AWS 默认终端节点 169.254.169.123 同步时间,然后切换到托管 AWS Active Directory。配置由 Ansible 完成,但不确定这是否重要。
所有时间变化事件都记录在系统中,并且看起来相同,如下所示:
系统时间已从 >2022-09-14T12:22:57.146781800Z 更改为 2022-12-23T01:10:04.150070300Z。
更改原因:应用程序或系统组件更改了时间。进程:“\Device\HarddiskVolume1\Windows\System32\svchost.exe”(PID 372)。
如您所见,这个变化非常显著,因此影响了这些虚拟机上的 IIS 服务器上运行的 Web 应用程序。
您知道可能是什么原因吗?我们应该从哪里着手解决这个问题?
编辑:根据@Greg 的评论添加详细信息:
C:\Windows\system32>w32tm /query /status /verbose 飞跃指示器:0(无警告) 层:6(辅助参考 - 由 (S)NTP 同步) 精度:-23(每刻 119.209 纳秒) 根延迟:0.0643878 秒 根分散:7.8759466 秒 ReferenceId:0x0A050C5D(源 IP:10.3.15.74)(已编辑) 上次成功同步时间:2022 年 11 月 2 日晚上 11:05:39 来源:WIN-BOLJH2K6OOL.companydomain.cloud(已编辑) 轮询间隔:6(64 秒)
相位偏移:-0.0023147s 时钟速率:0.0156250s 状态机:1(保持)时间源标志:8(SignatureAuthenticated)服务器角色:0(无)上次同步错误:0(命令已成功完成。)自上次良好同步时间以来的时间:8.5343114s
答案1
看来该问题是由 Microsoft 在 2016 年启用的名为 UtilizeSSLTimeData 的设置引起的。以下是对此情况的一个很好的解释...https://arstechnica.com/security/2023/08/windows-feature-that-resets-system-clocks-based-on-random-data-is-wreaking-havoc/
安全时间播种
Server 2016 中的 W32time 包含安全时间播种功能。此功能确定传出 SSL 连接的大致当前时间。此时间值用于监视本地系统时钟并纠正任何严重错误。您可以在此博客文章中阅读有关此功能的更多信息。在具有可靠时间源和受良好监控的计算机(包括监视时间偏移)的部署中,您可以选择不使用安全时间播种功能,而是依靠现有的基础架构。
您可以按照以下步骤禁用该功能:
在特定机器上将 UtilizeSSLTimeData 注册表配置值设置为 0...
reg 添加 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v UtilizeSslTimeData /t REG_DWORD /d 0 /f
如果由于某种原因无法立即重新启动计算机,则可以通知 W32time 服务有关配置更新的信息。这将停止基于从 SSL 连接收集的时间数据的时间监控和执行。
W32tm.exe /配置/更新
重启机器会使设置立即生效,同时也会停止从 SSL 连接收集任何时间数据。后者的开销很小,不应该成为性能问题。
要在整个域中应用此设置,请将 W32time 组策略设置中的 UtilizeSSLTimeData 值设置为 0 并发布该设置。当组策略客户端拾取该设置时,W32time 服务将收到通知,它将停止使用 SSL 时间数据进行时间监控和强制执行。每台计算机重新启动时,SSL 时间数据收集将停止。如果您的域中有便携式超薄笔记本电脑/平板电脑和其他设备,您可能希望将此类计算机排除在此策略更改之外。这些设备最终将面临电池耗尽的问题,需要安全时间播种功能来引导其时间。
答案2
我遇到过几种会导致这种情况的情况。一是 BIOS 时间设置不正确。二是 CMOS 电池快没电了或快没电了。
答案3
尝试使用外部时间服务器。我推荐:pool.ntp.org
看:https://www.pool.ntp.org/de/use.html
我们使用pool.ntp.org作为域控制器和所有不在AD中的设备(Linux机器、交换机、打印机、防火墙等)的时间源。所有Windows机器都使用DC作为时间源。这非常重要!
如果从技术上来说更改时间源对您来说不可行,也许这会对您有所帮助(自 2021 年中起,较新的 Windows 版本中增强了与时间相关的事件的记录功能):
这应该有助于找出发生了什么以及为什么发生。