使用auditd检测pg_dump调用时配置规则不生效问题求助
auditd无法追踪pg_dump调用的解决方案
常见原因及对应解决步骤
- 第一步:确认pg_dump的实际二进制路径
大部分发行版中pg_dump默认不在/bin路径下,优先执行以下命令获取实际路径:
如果返回路径为符号链接,可执行以下命令获取真实二进制文件路径:which pg_dump
将你现有规则中的readlink -f $(which pg_dump)/bin/pg_dump替换为上述查询到的路径即可。如果匹配符号链接路径不生效,建议改用exe参数匹配真实文件,规则示例如下:-a exit,always -S execve -F exe=<替换为你查询到的真实pg_dump路径> -k test_pg - 第二步:重新加载审计规则
规则修改完成后执行以下命令加载新规则,同时验证规则是否生效:
确认返回的规则列表中包含你新增的pg_dump匹配规则。augenrules --load auditctl -l - 第三步:验证审计结果
手动执行一次pg_dump命令后,执行以下命令查询对应审计日志:
即可看到对应的pg_dump调用审计记录。ausearch -k test_pg -i
额外排查点
- 执行
systemctl status auditd确认auditd服务处于正常运行状态 - 若使用CentOS/RHEL等带SELinux的发行版,可临时执行
setenforce 0关闭SELinux测试,若此时能正常采集日志,需调整SELinux策略放行auditd对pg_dump的审计 - 若通过脚本调用pg_dump,确认脚本中调用的pg_dump路径和你规则中配置的路径一致,避免PATH环境变量指向其他位置的pg_dump二进制文件未被匹配
内容的提问来源于stack exchange,提问作者Danos
相关产品推荐
相关产品推荐

