发布于2026-08-16 阅读(0)
扫一扫,手机访问
auditd服务未启动则规则无效,需手动启用并设为开机自启;规则文件须以.rules结尾,修改后执行augenrules --load加载;监控execve需指定架构并加-k标签;日志轮转需确保目录及文件权限正确。

auditd默认不启用,装完包只是放了个二进制文件在磁盘上。执行systemctl status auditd看到inactive (dead),说明审计根本没跑——/var/log/audit/audit.log会一直为空或只有启动失败记录。
必须手动启用并设为开机自启:
sudo systemctl start auditdsudo systemctl enable auditd怎么确认它到底有没有真正跑起来?先看sudo auditctl -s | grep enabled,正常情况下输出应该是enabled 1;再执行lsmod | grep audit,能看到对应的内核模块已经加载。还有个很容易忽略的点:CentOS 7并不支持systemctl restart auditd,一旦重启,所有临时规则都会被清空,这地方特别容易踩坑。
规则文件放对位置只是第一步,auditd启动时只读取/etc/audit/rules.d/*.rules,但不会自动重载。改完文件后不执行加载命令,新规则就“躺在磁盘上吃灰”。
正确流程是:
.rules结尾(如10-identity.rules,不能叫audit.conf)auditctl前缀,例如直接写-w /etc/shadow -p wa -k identitysudo augenrules --load(它会合并所有.rules文件,生成/etc/audit/audit.rules,再调用auditctl -R加载)sudo auditctl -l确认规则已出现在内存中注意:augenrules不覆盖你手动写的/etc/audit/audit.rules,但它生成的版本才是实际生效的。
audit默认只记录系统调用入口,不解析参数。比如rm -rf /tmp/*在日志里只会显示execve和内存地址,无法判断删了什么。
要看到完整命令行,必须:
-F arch=b64(64位系统)或-F arch=b32(兼容32位库)-S execve使用,不能只写-F path=/usr/bin/rm-k标签,后续才能用ausearch -k command过滤示例规则:
-a always,exit -F arch=b64 -S execve -k command -a always,exit -F arch=b32 -S execve -k command
性能代价明显:高频命令(如shell循环中的ls)会导致日志量爆炸,生产环境慎用全局execve监控。
auditd自带轮转(靠auditd.conf里的max_log_file和num_logs),但轮转后新日志可能权限不对,或被logrotate误删。
关键动作:
/var/log/audit/目录权限:chmod 0700 /var/log/audit/(仅root可进入)audit.log文件权限:chmod 0600 /var/log/audit/audit.log(仅root可读写)/etc/logrotate.d/auditd存在且配置合理,包含compress、rotate 6、maxsize 50Msudo logrotate -f /etc/logrotate.d/auditd,观察是否生成audit.log.1且权限正确真正难处理的是日志存储路径变更或远程转发配置——一旦auditd.conf里log_file指向NFS或挂载点,而该路径不可写或延迟高,auditd会静默失败,连错误日志都不记。
上一篇:Linux怎么查看具体的文件编码
下一篇:Linux怎么调整进程的优先级
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9