一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

服务器安全加固如何加固系统时间同步防止时间篡改

时间:2026-08-16 08:14:49 编辑:袖梨 来源:一聚教程网

服务器时间防篡改需同步稳且禁乱改:用chrony替代ntpd,精简配置server/rtcsync/makestep,禁用ntpd,chattr+i锁定localtime,审计date调用,权限最小化,确保重启后时间自动恢复。

服务器时间被篡改会直接导致日志错乱、证书失效、Kerberos认证失败、分布式事务异常等问题。加固时间同步,核心不是“只让它准”,而是“不让它被乱改”——既要同步稳,又要防篡改。

用 chrony 替代 ntpd(RHEL/CentOS 7+ 默认且推荐)

RHEL/CentOS 7 及以上默认已装 chrony,它比传统 ntpd 更适合现代环境:启动快、抗网络抖动、支持虚拟机、天然兼容硬件时钟(RTC)同步。不要同时启用 chronyd 和 ntpd。

  1. 确认 chrony 已安装并启用:rpm -q chronysystemctl list-unit-files | grep chrony
  2. 若 ntpd 正在运行,立即停用:systemctl stop ntpd && systemctl disable ntpd
  3. 验证同步状态:chronyc tracking 输出中出现 System clock synchronized: yes 才算生效

配置 chrony 同步策略(客户端通用写法)

/etc/chrony.conf 中保留精简关键项,避免冗余配置引入风险:

  1. server 192.168.10.1 iburst —— 指向你内网可信时间源(非公网 pool.ntp.org)
  2. driftfile /var/lib/chrony/drift —— 必须存在,记录时钟漂移率
  3. rtcsync —— 每约11分钟将校准后的系统时间写入硬件时钟,防止重启后时间回跳
  4. makestep 1.0 3 —— 开机时若偏差超1秒,允许前3次“跳跃式”校正(避免缓慢拉偏导致服务拒绝)

改完重启:systemctl restart chronyd,再用 chronyc sources -v(看 ^* 标记)和 chronyc tracking(offset 应稳定在 ±50ms 内)确认连通与精度。

堵住时间篡改路径(比同步本身更重要)

同步只是“喂时间”,防篡改才是“锁住钟”。以下动作缺一不可:

  1. 禁止随意修改硬件时钟:执行 chattr +i /etc/localtime,防止时区文件被覆盖或替换
  2. 限制 root 直接调用 date:虽不能完全禁用(部分脚本依赖),但可通过审计+告警控制——在 /etc/audit/rules.d/audit.rules 中添加:-a always,exit -F path=/bin/date -F perm=x -k time_change,再 systemctl restart auditd
  3. 关闭无关时间服务接口:检查是否启用 systemd-timesyncd 或 ntpdate 类工具,统一归口到 chronyd 管理,避免多源冲突
  4. 权限最小化:确保 /etc/chrony.conf 权限为 644,属主 root:root;/var/lib/chrony/ 目录权限为 755,避免普通用户写入 drift 文件

验证防篡改效果

完成配置后,手动测试能否绕过防护:

  1. 尝试 sudo date -s "2020-01-01" —— 应能执行(Linux 允许 root 修改),但需触发 audit 日志
  2. 尝试 sudo hwclock --set --date="2020-01-01" —— 若未加 rtcsync 或未设 chattr +i /etc/localtime,可能成功;正确加固后,重启应自动恢复
  3. 查看审计日志:ausearch -k time_change | aureport -f -i,确认所有 date 调用被记录

真正安全的时间系统,是“同步可靠 + 修改可溯 + 回退可控”。不复杂但容易忽略。

热门栏目