Chrony优于NTPd因其同步更快、安全性更强、适应虚拟化环境;应配置可信时间源、禁用非必要端口与权限、启用SHA256密钥认证,并通过chronyc监控偏移与日志,防止时间相关攻击。

在 Linux 系统中,时间同步是系统安全和日志审计的重要基础。若系统时间不准确,可能影响证书验证、身份认证、日志追踪等关键功能,甚至被攻击者利用进行时间相关攻击(如重放攻击、证书绕过)。因此,正确配置 NTP 时间同步服务(如 Chrony 或 NTPd)并增强其安全性至关重要。
选择更安全的时间同步工具:Chrony 优于传统 NTPd
现代 Linux 发行版普遍推荐使用 Chrony 替代老旧的 NTPd,原因如下:
- 更快的同步速度:尤其在网络不稳定或长时间离线后,Chrony 能更快校准时间。
- 更好的安全性设计:支持对称密钥和网络身份验证(NTPv4 Autokey),且默认配置更保守。
- 适应虚拟化环境:在 VM 或容器中表现更稳定,避免因 CPU 调度延迟导致时间漂移误判。
大多数主流发行版(如 RHEL/CentOS 8+、Ubuntu 20.04+)已默认使用 Chrony。
限制时间服务器来源并启用认证
只与可信的时间源通信,并尽可能启用加密验证,防止中间人篡改时间数据。
编辑 Chrony 配置文件 /etc/chrony.conf,配置如下:
- 指定权威且可信赖的 NTP 服务器,例如:
server time.cloudflare.com iburst
server ntp.aliyun.com iburst - 禁用本地客户端查询和修改权限:
cmdallow 127.0.0.1
cmdallow ::1
(仅允许本机管理命令) - 关闭不必要的网络访问: port 0 —— 防止 Chrony 监听 UDP 端口作为服务器
启用 NTP 认证增强防欺骗能力
若组织内部部署了支持密钥认证的 NTP 服务器,应开启认证机制。
- 在 /etc/chrony.conf 中添加: keyfile /etc/chrony.keys
- 确保密钥文件权限为 600: chmod 600 /etc/chrony.keys
- 使用 SHA256 或更强算法生成密钥,避免 MD5 等弱算法。
- 通过 authselect on 启用认证选择模式,仅接受已知密钥的时间源。
监控时间偏移与异常行为
定期检查时间同步状态,及时发现潜在攻击或配置问题。
- 使用 chronyc tracking 查看当前偏移、频率误差和参考源信息。
- 运行 chronyc sources -v 确认连接的服务器是否为预期目标。
- 设置告警脚本,当时间跳变超过阈值(如 ±5 秒)时通知管理员。
- 结合 syslog 或 SIEM 工具记录 chronyd 的关键事件,如“频率调整过大”或“服务器丢失”。
基本上就这些。合理配置 Chrony,限制通信范围,启用认证并持续监控,能有效防范基于时间的攻击。安全不只是防火墙和补丁,连时间也不能被忽视。










