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

最新下载

热门教程

Linux 日志安全加固:如何预防恶意修改与日志删除行为

时间:2026-07-03 10:00:50 编辑:袖梨 来源:一聚教程网

关键在于构建多层防御:用chattr +i锁定日志实现文件系统级不可变防护,配合chmod 640/chown root:adm严格权限控制、auditd实时审计操作、rsyslog TLS加密外发至远程服务器及SHA256哈希存证。

防范恶意修改与日志删除,不能只靠“设个权限”或“关个服务”,关键在于构建多层防御:让攻击者改不动、删不了、藏不住、逃不掉。

锁定关键日志文件(文件系统级防护)

即使获得 root 权限,chattr +i 也能阻止对文件的任何写入、重命名或删除操作,这是对抗清空内容和直接删除最硬核的手段。

  • 对核心日志启用不可变属性:sudo chattr +i /var/log/auth.log /var/log/secure /var/log/messages /var/log/audit/audit.log
  • 注意:加锁前需停止相关服务(如 rsyslog、auditd),否则日志写入会失败;轮转后新生成的日志文件(如 messages.1)也需手动加锁
  • 临时解除用 chattr -i,仅限维护窗口内操作,完成后立即恢复
  • 验证是否生效:lsattr /var/log/auth.log 应显示 i 标志

严格控制访问权限与所有权

权限是第一道防线,松散设置等于主动放行。默认 644 权限允许所有用户读取,组权限若开放过宽,风险更高。

  • 统一属主属组:sudo chown root:adm /var/log/*.log(Ubuntu/Debian)或 root:syslog(RHEL/CentOS)
  • 收紧文件权限:sudo chmod 640 /var/log/auth.log(root 可读写,adm 组可读,其他用户无权)
  • 加固日志目录:sudo chmod 750 /var/log,防止非 root 用户在该目录下创建或覆盖同名文件

启用 auditd 实时审计日志操作

权限和属性负责“守”,auditd 负责“察”。它能记录谁、何时、用什么系统调用(open/write/unlink)动了日志文件,留下不可抵赖的操作铁证。

  • 安装并启用:sudo apt install auditd && sudo systemctl enable --now auditd(Debian/Ubuntu)
  • 添加监控规则(写入 /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
  • 重载规则:sudo augenrules --load,之后所有删、改、截断行为都会在 /var/log/audit/audit.log 中留下完整记录(含 UID、时间戳、调用栈)

外发至远程日志服务器并做哈希存证

本地防护再强,也挡不住整机沦陷。真正防抵赖,靠的是攻击者无法触及的第三方存证。

  • 使用 rsyslog 配置 TLS 加密转发,目标为独立、加固的远程日志服务器(如 ELK 或专用 syslog-ng server),启用双向证书认证
  • 每日对主日志生成 SHA256 哈希,输出到只读挂载的 NFS 或对象存储:
    find /var/log -name "*.log" -mtime -1 -exec sha256sum {} ; >> /mnt/readonly/loghash-$(date +%F).txt
  • 配合 AIDE 工具定期扫描文件完整性,检测未授权变更

热门栏目