金融行业等保2.0三级要求Cron日志必须独立分区存储、权限隔离、加密转发;需通过rsyslog设施分离、高安挂载、TLS远程传输及本地防丢队列实现“改不了、丢不掉、查得准、留得够”。

直接把 Cron 日志单独拎出来、存到权限隔离的高安全分区,并实时转发,是金融行业等保2.0三级审计的硬性要求之一。关键不是“能不能记”,而是“谁改不了、丢不掉、查得准、留得够”。Rsyslog 本身不创建分区,但能精准识别、强制路由、加密落盘——配合系统级权限控制,就能达成合规闭环。
一、明确 Cron 日志源并强制分离输出
Cron 的日志默认混在 /var/log/syslog 或 /var/log/messages 里,不可审计。必须让 cron 事件只走指定设施(facility),避免被其他日志污染:
- 编辑 /etc/rsyslog.conf 或新建 /etc/rsyslog.d/20-cron-redirect.conf
- 添加规则: cron.* /dev/xconsole(禁用默认输出)
- 再加一行: cron.*;cron.!notice /var/log/cron-audit.log(仅记录 notice 及以上级别,过滤高频 debug)
- 确保该行前无 # 注释,且位置在通用规则(如 *.info)之前,保证优先匹配
二、挂载独立高安分区并绑定日志路径
不能把日志写进根分区或 /var 分区——一旦系统被入侵或磁盘满,审计日志可能被覆盖或无法写入。必须使用物理隔离或逻辑强管控的挂载点:
- 准备一块专用磁盘或 LVM 逻辑卷(例如 /dev/vg_audit/lv_cron)
- 格式化并挂载至 /var/log/audit/cron,挂载参数含:noexec,nosuid,nodev,relatime
- 修改日志路径:将上一步中的 /var/log/cron-audit.log 改为 /var/log/audit/cron/cron-audit.log
- 设置目录权限:chown root:root /var/log/audit/cron;chmod 700 /var/log/audit/cron
- 禁止普通用户访问整个 /var/log/audit 目录,SELinux 或 AppArmor 策略需显式放行 rsyslogd 写入
三、启用远程加密转发 + 本地防丢队列
单机落盘只是基础,金融场景必须“双保险”:本地高安分区留存 + 远程审计中心实时接收。两者缺一不可:
- 在 /etc/rsyslog.d/30-cron-forward.conf 中加载模块:module(load="imfile")
- 监控本地日志文件:
$InputFileName /var/log/audit/cron/cron-audit.log
$InputFileTag cron-audit:
$InputFileStateFile cron-audit-state
$InputFileFacility cron
$InputRunFileMonitor - 转发规则(TCP+TLS):cron.* @@(o)audit-center.internal:6514;RSYSLOG_SyslogProtocol23Format
- 必须配置队列(防止网络抖动丢日志):
$ActionQueueFileName cron_q
$ActionQueueMaxDiskSpace 500m
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
四、合规验证与留存强化
光配完不等于过审。要经得起等保测评人员现场检查:
- 时间同步:所有节点(包括日志服务器)必须通过内网 NTP 源同步,误差 ≤100ms;timedatectl status 需显示 “System clock synchronized: yes”
- 日志轮转:配置 /etc/logrotate.d/cron-audit,按日切割、保留 180 天、自动压缩、启用 dateext 和 sharedscripts
- 完整性校验(可选增强):用 auditctl -w /var/log/audit/cron/ -p wa 监控目录变更;或每日用 sha256sum 快照归档
- 远程端验证:在审计中心检查是否收到带 hostname 和 timestamp 的 cron 条目,且来源 IP 在白名单内
这套方案不依赖第三方 SIEM,纯原生 Rsyslog 即可落地,已在多家城商行核心运维区稳定运行超18个月。重点在于分区隔离、设施分离、传输加密、留存可证——四个环节环环相扣,少一个都通不过等保现场核查。

















