生产环境身份日志加固需五维并举:防删(chattr +i)、防改(权限最小化)、防读(加密存储/传输)、可验(aide校验+auditd监控)、可溯(异地worm归档)。

生产环境中,身份日志(如 /var/log/auth.log、/var/log/secure、/var/log/journal 中的认证事件)直接关联登录行为、sudo操作、SSH尝试等关键安全线索,一旦被篡改或删除,将导致审计断链、入侵无法追溯。加固需兼顾防删、防改、防读、可验、可溯五个维度,不能只靠单一手段。
启用不可变属性 + 权限最小化
这是最基础也最关键的防线——让日志文件在操作系统层面“锁死”:
- 对已归档的旧日志(如
/var/log/auth.log.1)立即设置不可变位:sudo chattr +i /var/log/auth.log.1
该操作后,即使 root 用户也无法修改、删除或重命名该文件,除非先执行chattr -i(应严格管控此操作权限)。 - 确保当前活动日志文件所有权和权限合理:
sudo chown root:adm /var/log/auth.logsudo chmod 640 /var/log/auth.log
避免普通用户或非 syslog 进程拥有写权限。 - 禁止日志目录被普通用户写入:
sudo chmod 755 /var/log(不开放写),并确认/var/log不在 world-writable 挂载选项下。
强制加密存储与传输
防止物理介质失窃或未授权挂载导致日志泄露,需分层加密:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
磁盘级加密:使用 LUKS 加密整个
/var/log所在分区(推荐)。若无法重分区,至少对专用日志卷启用 LUKS,并在系统启动时由 initramfs 解密;避免仅用文件级工具(如 gpg)做临时加密,易被绕过且影响服务可用性。 -
传输加密:若日志需转发至中央服务器(如 SIEM),必须禁用明文 syslog(UDP/TCP 514),改用 rsyslog 或 syslog-ng 配置 TLS:
• 服务端启用证书验证与双向 TLS;
• 客户端配置$DefaultNetstreamDriverCAFile和$ActionSendStreamDriverMode;
• 禁用任何未认证的远程接收端口。
部署完整性校验与实时监控
加密和权限只能防“偷”,不能证“真”。需主动验证日志是否被静默篡改:
- 部署 AIDE(Advanced Intrusion Detection Environment)进行每日离线校验:
• 初始化数据库:sudo aide --init && sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
• 在/etc/aide.conf中明确包含:/var/log/auth.log$ p+i+n+u+g+s+b+acl+xattrs+sha256
• 通过 cron 每日凌晨运行aide --check并邮件告警异常。 - 配合 auditd 监控日志文件自身访问:
sudo auditctl -w /var/log/auth.log -p wa -k authlog_access
该规则会记录所有 open/write/unlink 操作,包括谁、何时、以何种方式试图修改日志,日志本身记录在/var/log/audit/audit.log(需同样加固)。
分离存储与可信归档
本地再强的防护也敌不过 root 权限沦陷。必须将证据链延伸到外部:
- 配置 rsyslog 将 auth 日志实时同步至异地高保真存储:
• 使用action(type="omfwd" protocol="tcp" target="siem.example.com" port="6514" template="RSYSLOG_ForwardFormat" streamdriver="gtls");
• SIEM 端启用写入即不可删(WORM)策略,或对接对象存储(如 S3 Object Lock)。 - 对 systemd-journald 用户,启用持久化并限制本地保留:
sudo mkdir -p /var/log/journalsudo systemd-machine-id-setup(确保 journal 唯一性)
编辑/etc/systemd/journald.conf:Storage=persistentMaxRetentionSec=90dForwardToSyslog=yes(便于统一处理) - 禁止禁用 journald 的
Immutability特性(默认启用),其二进制日志格式天然抗文本篡改。
以上措施不是堆砌功能,而是形成纵深防御闭环:不可变属性守住最后一道本地防线,加密阻断离线窃取,AIDE+auditd 提供篡改证据,异地归档确保取证源头不丢失。实际落地时,建议按“先归档加密 → 再设不可变 → 后配校验监控”顺序实施,并每次变更后用 journalctl -u rsyslog --since "1 hour ago" 验证日志流完整性。










