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

如何在Linux中配置系统安全审计

auditd服务没启动,加再多规则也没用

auditd默认不启用,装完包只是放了个二进制文件在磁盘上。执行systemctl status auditd看到inactive (dead),说明审计根本没跑——/var/log/audit/audit.log会一直为空或只有启动失败记录。

必须手动启用并设为开机自启:

怎么确认它到底有没有真正跑起来?先看sudo auditctl -s | grep enabled,正常情况下输出应该是enabled 1;再执行lsmod | grep audit,能看到对应的内核模块已经加载。还有个很容易忽略的点:CentOS 7并不支持systemctl restart auditd,一旦重启,所有临时规则都会被清空,这地方特别容易踩坑。

/etc/audit/rules.d/里的规则为什么没生效

规则文件放对位置只是第一步,auditd启动时只读取/etc/audit/rules.d/*.rules,但不会自动重载。改完文件后不执行加载命令,新规则就“躺在磁盘上吃灰”。

正确流程是:

注意:augenrules不覆盖你手动写的/etc/audit/audit.rules,但它生成的版本才是实际生效的。

监控命令执行却只看到execve,看不到具体参数

audit默认只记录系统调用入口,不解析参数。比如rm -rf /tmp/*在日志里只会显示execve和内存地址,无法判断删了什么。

要看到完整命令行,必须:

示例规则:

-a always,exit -F arch=b64 -S execve -k command
-a always,exit -F arch=b32 -S execve -k command

性能代价明显:高频命令(如shell循环中的ls)会导致日志量爆炸,生产环境慎用全局execve监控。

日志轮转后audit.log消失或权限异常

auditd自带轮转(靠auditd.conf里的max_log_filenum_logs),但轮转后新日志可能权限不对,或被logrotate误删。

关键动作:

真正难处理的是日志存储路径变更或远程转发配置——一旦auditd.conflog_file指向NFS或挂载点,而该路径不可写或延迟高,auditd会静默失败,连错误日志都不记。

本文转载于:https://www.php.cn/faq/2993249.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。