讲师中心 微信公众号
AI工具推荐 视频效率加速

系统日志文件轮转策略及审计数据防删除加固

陌雪姑娘_2309

陌雪姑娘_2309

发布时间:2026-03-23 14:51:13

|

284人浏览过

|

来源于php中文网

原创

logrotate 中 rotate 与 maxage 是交集关系而非互斥,需同时配置以兼顾数量与时间约束;auditd 轮转后须用 postrotate 发送 SIGHUP 或重载规则,避免日志丢失;归档文件可用 chattr +i 锁定防误删,但不可作用于当前写入文件;需检查 auditd 空间阈值及 SELinux 上下文防止静默降级。

系统日志文件轮转策略及审计数据防删除加固

logrotate 配置里 rotate 和 maxage 冲突怎么办

两者都控制日志保留,但逻辑不同:rotate 数日志文件个数,maxage 数文件修改时间。如果设了 rotate 5 但某文件已超 maxage 30 天,logrotate 仍会删它——不是“保留最新 5 个”,而是“保留个数 ≤5 且年龄 ≤30 天”的交集。

常见错误现象:logrotate 突然多删几个文件,或该删的旧文件还在;查 /var/lib/logrotate/status 会发现时间戳和预期不符。

  • 优先用 maxage 控制审计类日志生命周期,比如合规要求“至少保留 90 天”,就设 maxage 90,再配 rotate 100 防磁盘打满
  • 避免只设 rotate 不设 maxage:系统重装、时间回拨、日志写入中断都会让文件年龄失真
  • dateext 必须开,否则 maxage 对不带日期后缀的文件(如 audit.log)无效——它只认 audit.log-20240501 这种格式

auditd 日志被 logrotate 删掉后 auditd 不写新文件

auditd 默认不监听 SIGHUP,轮转后若没显式通知,它继续往已被 rename 的旧文件句柄写,导致新日志丢失、磁盘空间不释放。

使用场景:审计日志必须连续不可断,尤其在等保/等保2.0 要求下,中断即算违规。

  • 在 logrotate 配置块里加 postrotate 段,调用 systemctl kill --signal=SIGHUP auditd 或 augenrules --load(后者更稳妥,会重载规则并刷新日志路径)
  • 别用 killall auditd && systemctl start auditd:重启有窗口期,期间 syscall 事件全丢
  • 验证是否生效:轮转后立刻 ls -l /var/log/audit/ 看新文件创建时间,再 ausearch -m avc -ts recent 确认有新记录

防止运维误删 /var/log/audit/ 下的文件

Linux 文件系统级防护比权限掩码更可靠——chattr +a 只允许追加,+i 完全禁止修改,但 auditd 进程需有 CAP_LINUX_IMMUTABLE 才能绕过 +i,普通用户删不动,root 也得先 chattr -i 才行,留痕清晰。

性能影响几乎为零,但要注意:+i 后连 auditd 自己都不能 truncate 或覆盖写,所以只能对归档完成的旧文件(如 audit.log-20240401)加,不能加在当前正在写的 audit.log 上。

  • 轮转完成后自动加锁:logrotate 的 lastaction 块里加 chattr +i /var/log/audit/audit.log-$(date -d 'yesterday' +\%Y\%m\%d) 2>/dev/null
  • 检查是否生效:lsattr /var/log/audit/,看到 ----i--------- 表示已锁定
  • 别给整个 /var/log/audit/ 目录加 +i:auditd 启动时要创建新文件,会失败

auditd 自身配置遗漏导致日志写入失败却无报错

auditd 默认把日志写到 /var/log/audit/audit.log,但如果磁盘满、目录不存在、SELinux 上下文不对,它可能静默降级到 syslog,而 syslog 默认不存 audit 事件——结果就是“以为在记,其实没记”。

最容易被忽略的是 space_left 和 admin_space_left 参数:它们不触发错误,只发警告,且默认值极低(space_left 75 表示剩余空间 space_left_action 执行才动作。

  • 编辑 /etc/audit/auditd.conf,确认 log_file 路径存在且 auditd 有写权限:ls -ld /var/log/audit/ 应显示 drwxr-x--- root root
  • 设 space_left 200(单位 MB)、admin_space_left 50,space_left_action email 并配好 admin_email,避免磁盘满后 auditd 自动 halt
  • SELinux 下必须确保上下文正确:restorecon -Rv /var/log/audit/,否则 auditd 因 denied 写入失败却不报错

事情说清了就结束。真正难的不是配参数,是让所有环节——auditd、logrotate、文件系统属性、SELinux——彼此不拆台。漏掉任意一环,审计数据就可能在你没察觉时断掉或被删。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

相关专题

更多
Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

0

2026.10.15

MySQL 忘记密码怎么办
MySQL 忘记密码怎么办

MySQL忘记密码专题汇集不同版本与系统下的root密码重置方法,覆盖MySQL 5.7、8.0、Mac、Linux及本地集成环境,并提示恢复权限与重新登录的检查步骤。

0

2026.10.15

Vue.js 中 ref 和 reactive 的区别
Vue.js 中 ref 和 reactive 的区别

Vue.js中ref和reactive的区别专题汇集两种响应式API的定义、访问方式、对象解构、侦听与性能取舍等文章,帮助结合实际状态类型选择合适写法。

0

2026.10.15

VS Code 怎么配置开发环境
VS Code 怎么配置开发环境

VS Code开发环境专题汇集编辑器安装、语言扩展、编译器、解释器、终端和调试配置文章,覆盖Java、Python、C++和PHP等常见语言的入门设置。

0

2026.10.15

C++ 开发环境怎么搭建
C++ 开发环境怎么搭建

C++开发环境专题汇集Windows、Linux下的编译器与IDE安装配置教程,涵盖GCC、Clang、Visual Studio、CLion和VS Code,以及编译运行首个程序的步骤。

0

2026.10.15

Python 虚拟环境是什么
Python 虚拟环境是什么

Python虚拟环境专题介绍项目依赖隔离的作用,汇集venv与uv创建、激活、退出及解释器切换的相关文章,并覆盖Windows、Linux和VS Code中的常见配置问题。

0

2026.10.15

Python 怎么安装并配置环境变量
Python 怎么安装并配置环境变量

Python安装与环境变量配置专题汇集Windows、macOS和Linux的安装步骤、PATH设置、pip配置及常见报错排查文章,帮助完成解释器安装并验证命令行可以正常运行。

0

2026.10.15

PHP 连接 MySQL 失败怎么办
PHP 连接 MySQL 失败怎么办

PHP连接MySQL失败专题汇集PDO与MySQLi扩展配置、账号权限、主机端口、套接字和认证方式等排查文章,覆盖连接报错、密码变更与容器环境配置,帮助按错误提示定位原因并修复。

0

2026.10.15

PHP 表单提交后如何获取数据
PHP 表单提交后如何获取数据

PHP表单提交后如何获取数据专题汇集HTML表单提交、GET与POST接收、$_POST和$_GET读取、跨文件传值、单选与下拉字段获取,以及空值和接收失败排查等文章,帮助新手完成从提交到处理的完整流程。

0

2026.10.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn