生产环境日志防删除需“权限隔离+不可变性+多重验证”:启用chattr +i锁定关键日志文件,限制rsyslog以非root用户运行,配置auditd审计日志操作,并外发至tls加密的日志服务器及哈希校验存证。

生产环境日志防删除的核心是“权限隔离 + 不可变性 + 多重验证”,不能只靠chmod或chown,必须组合文件系统级保护、服务管控和外部备份。
启用文件不可变属性(chattr +i)
对关键日志路径(如/var/log/messages、/var/log/secure、/var/log/audit/audit.log)设置不可修改标志:
- 执行 chattr +i /var/log/messages,普通用户和root都无法删除、重命名或覆盖该文件(需先停用rsyslog或auditd再操作)
- 轮转后新生成的日志文件需重新加锁:chattr +i /var/log/messages.1
- 临时解除锁定用 chattr -i,但仅限维护窗口内操作,完成后立即恢复
限制日志服务进程权限
rsyslog或syslog-ng不应以root身份运行全部模块:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 在/etc/rsyslog.conf中配置 $PrivDropToUser syslog 和 $PrivDropToGroup syslog
- 确保/var/log目录属主为root:syslog,权限为750
- 禁用日志服务的模块加载功能(如注释掉$ModLoad imfile),防止通过配置注入写入任意路径
启用auditd强制审计日志操作
监控所有针对日志文件的敏感行为,包括删除、截断、权限变更:
- 在/etc/audit/rules.d/log-protect.rules中添加规则:
-w /var/log/ -p wa -k log_access
-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat -F dir=/var/log/ -k log_deletion - 执行 augenrules --load 加载并持久化规则
- 配合ausearch -k log_deletion 实时排查异常操作来源
外置日志集中归档与哈希校验
本地防护只是第一道防线,真正防抵赖靠的是不可篡改的第三方存证:
- 使用rsyslog将日志实时转发至专用日志服务器(如ELK或Syslog-ng Server),配置TLS加密和证书双向认证
- 每日对/var/log/下所有主日志文件生成SHA256哈希,输出到只读挂载的NFS或对象存储:
find /var/log -name "*.log" -mtime -1 -exec sha256sum {} \; >> /mnt/readonly/loghash-$(date +%F).txt - 启用AIDE(Advanced Intrusion Detection Environment)定期扫描/var/log目录,检测文件内容或元数据变更










