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

最新下载

热门教程

Linux日志文件存放:/var/log目录的审计与维护

时间:2026-07-26 08:33:05 编辑:袖梨 来源:一聚教程网

/var/log 是 Linux 日志中枢,需严格管控权限(如 600)、启用 logrotate 并验证、配置 rsyslog 远程转发、定期巡检内容真实性与完整性。

/var/log 目录是 Linux 系统日志的“中枢仓库”,不是简单存放文件的地方,而是安全审计与系统健康监控的关键入口。它本身需要被审计和维护,否则日志可能被篡改、丢失或失控膨胀,反而成为排查盲区。

关键日志文件权限与归属必须严格管控

日志文件一旦被普通用户写入或删除,完整性即失效。核心原则是:只允许 root 读写,禁止其他用户访问。

  • /var/log/secure/var/log/auth.log/var/log/audit/audit.log 等敏感日志,应设为 600 权限:chmod 600 /var/log/secure
  • 目录本身(如 /var/log/audit/)建议加 sticky bit 或使用 chattr +a,确保只能追加、不可覆盖或删除:chattr +a /var/log/audit/audit.log
  • 检查归属是否统一:ls -l /var/log/ | grep -E "(secure|auth|audit)",所有关键日志应属 root:root

日志轮转必须定期验证有效性

logrotate 不是配置完就一劳永逸的。轮转失败会导致单个日志暴涨,最终撑满磁盘。

  • 查看轮转配置是否启用:ls /etc/logrotate.d/ | grep -E "(syslog|rsyslog|nginx|apache)"
  • 手动触发一次测试:logrotate -f /etc/logrotate.conf,再检查 ls -lt /var/log/messages* 是否生成新编号文件
  • 确认压缩与保留策略生效:比如 rotate 4 后,旧日志不应超过 4 个;compress 后应出现 .gz 文件
  • 留意 notifemptymissingok 的实际效果——空日志不轮转、缺失配置不报错,但可能掩盖服务未写日志的问题

远程归档与本地审计需同步落地

仅靠本地日志无法应对入侵后的擦除行为。真实有效的审计必须包含异地留存。

  • 启用 rsyslog 远程转发,在 /etc/rsyslog.conf 中添加:*.* @@10.10.20.5:514(TCP 更可靠,@@ 表示 TCP;@ 表示 UDP)
  • 确保远程服务器已部署 rsyslog 或 syslog-ng,并监听对应端口,且有足够存储空间
  • 本地开启 auditd 并加载 execve 规则后,/var/log/audit/audit.log 必须纳入转发范围,它是还原命令执行链的唯一可信源
  • 定期抽样比对本地与远程日志时间戳和条目数,例如:wc -l /var/log/secure 与远程同名文件对比

日常巡检不能只看“有没有”,要看“对不对”

运维人员常误以为日志存在=日志可用。实际上需验证内容真实性、时效性和可读性。

  • tail -n 5 /var/log/messages 确认最近 1 分钟内仍有新记录写入(排除 rsyslog 崩溃或停服)
  • journalctl --disk-usagedu -sh /var/log/journal/,避免 journald 占满 /var
  • 运行 ausearch -m avc -ts recent 检查 SELinux 拒绝事件是否被正确捕获(若启用 SELinux)
  • 对 Web 服务等关键应用,抽查其日志路径是否存在且非空:ls -lh /var/log/nginx/error.log,再 grep "error" /var/log/nginx/error.log | tail -3

热门栏目