CentOS时间戳审计方法
auditd是CentOS系统默认的审计工具,用于记录系统事件(包括时间戳修改)。若未安装,可通过以下命令完成安装及启动:
yum install audit -y # 安装auditd
systemctl start auditd # 启动服务
systemctl enable auditd # 设置开机自启
通过auditd规则监控时间戳修改的关键系统调用及文件,确保所有时间变更操作被记录。需编辑规则文件(/etc/audit/rules.d/audit.rules)并添加以下内容:
# 监控调整系统时间的系统调用(适用于64位系统)
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
-a always,exit -F arch=b64 -S clock_settime -k time-change
# 监控32位系统的时间调整系统调用
-a always,exit -F arch=b32 -S adjtimex -S settimeofday -S stime -k time-change
# 监控本地时间文件(/etc/localtime)的修改(写入或属性变更)
-w /etc/localtime -p wa -k time-change
其中,-k time-change为自定义关键字,用于后续快速过滤时间戳相关日志。
添加规则后,需重新加载auditd配置使规则生效:
auditctl -R /etc/audit/rules.d/audit.rules # 重新加载规则
auditctl -l # 查看当前生效的规则(确认包含时间戳规则)
时间戳相关日志存储在/var/log/audit/audit.log中,可通过以下命令过滤和格式化查看:
# 按关键字“time-change”过滤时间戳修改事件
ausearch -k time-change
# 按时间范围过滤(如2025-10-15当天的时间戳修改)
ausearch -ts "2025-10-15 00:00:00" -te "2025-10-15 23:59:59" -k time-change
# 生成可读性高的报告(包含用户、时间、操作等详情)
aureport -i --key time-change
日志中的关键字段说明:
type=SYSCALL:表示系统调用事件(如adjtimex、settimeofday);uid:执行操作的用户ID;auid:审计用户ID(实际登录用户);time:事件发生的具体时间(精确到毫秒);msg:事件详情(如修改时间的命令或参数)。为防止时间戳被非法篡改,需配合以下安全措施:
chronyd服务实现:yum install chrony -y # 安装chrony
systemctl start chronyd # 启动服务
systemctl enable chronyd # 开机自启
timedatectl status # 验证同步状态(确认“NTP synchronized: yes”)
chmod和chown设置/etc/localtime、/etc/ntp.conf等时间相关文件的权限,仅允许root用户修改:chown root:root /etc/localtime
chmod 644 /etc/localtime
通过以上步骤,可实现CentOS系统时间戳的全面审计,及时发现并响应非法时间修改行为。