auditd 未启动导致 ausearch 查不到记录,需 systemctl enable --now auditd 并确保内核支持 config_audit=y、规则已写入 /etc/audit/rules.d/ 且持久化加载。

auditd 服务没启动,ausearch 查不到任何记录
auditd 是 Linux 审计子系统的守护进程,所有内核审计事件都必须经它接收、过滤、落盘。不运行它,auditctl 加的规则只是内存里的幻影,ausearch 自然查不到东西。
检查是否运行:systemctl status auditd;若未激活,先 systemctl enable --now auditd。注意:某些最小化安装(如 Alpine、部分容器镜像)默认不装 auditd 包,得先 apt install auditd 或 yum install audit。
- 启动前确认
/etc/audit/rules.d/下有 .rules 文件,否则 auditd 启动后无规则可加载 - 若用 systemd 启动失败,看
journalctl -u auditd -n 50,常见报错是Cannot open /dev/audit—— 这说明内核没编译 CONFIG_AUDIT=y,需换内核或重编译 -
auditctl -l只显示当前生效的规则,但重启 auditd 后会清空;持久化必须写进/etc/audit/rules.d/*.rules并执行augenrules --load
想监控 /etc/passwd 修改,但 -w /etc/passwd -p wa 不触发
文件写权限(w)和属性修改(a)确实能捕获 chmod/chown,但对 /etc/passwd 这类被程序覆盖写入的场景,往往只触发一次“写”事件,且可能被缓冲延迟。更稳的方式是监听其父目录 + 过滤文件名。
推荐写法:-w /etc/ -p wa -k etc_passwd_changes,再用 ausearch -k etc_passwd_changes | awk '$13 ~ /passwd$/ {print}' 筛选。这样能捕获 cp、mv、vi 保存等所有路径变更行为。
-
-p wa中的a对硬链接创建/删除无效,需额外加-w /etc/passwd -p r监听读取(用于检测暴力破解尝试) - SELinux 启用时,auditd 规则仍生效,但部分系统调用可能被 SELinux 先拦截,导致 audit 不记录 —— 此时要配合
ausearch -m avc查 SELinux 拒绝日志 - 频繁写入小文件(如日志轮转)会导致 audit 日志暴增,建议用
-F key=打标 +log_file = /var/log/audit/audit-etc.log单独分流
用 auditctl 加了规则却收不到 SSH 登录事件
SSH 登录本身不直接修改文件或系统调用,它走的是 PAM 认证链。audit 默认不跟踪用户空间认证流程,必须显式启用 PAM audit 模块并配置规则。
websenB2B是一套经过完善设计的B2B行业网站程序,是windows nt系列环境下最佳的B2B行业网产站解决方案。精心设计的架构与功能机制,适合从个人到企业各方面应用的要求,为您提供一个安全、稳定、高效、易用而快捷的行业网站商务系统。分普及版和商业版等不同版本。一、网胜B2B电子商务系统SP6.2蓝色风格普及版本升级功能说明:1、邮件群发功能:可以选择某一级别的会员,并放入支持html
确认 /etc/pam.d/sshd 含有这一行:auth [default=ignore] pam_audit.so;同时在 /etc/audit/rules.d/login.rules 中加:-a always,exit -F arch=b64 -S execve -F exe=/usr/sbin/sshd -k ssh_login(x86_64 系统)。
- 32 位系统要用
arch=b32,混用会丢事件 -
execve能捕获 sshd 子进程拉起(如 bash),但登录失败通常只记在/var/log/secure;要抓失败,得结合-F auid=4294967295(未登录用户的 auid 值)过滤 - 容器环境里,宿主机 auditd 无法捕获容器内 sshd 的 execve —— 必须在容器内单独跑 auditd,或改用 eBPF 工具如 tracee
audit 日志暴涨填满磁盘,log_file 配置不生效
auditd 的日志轮转靠 auditd.conf 中的 max_log_file 和 num_logs 控制,但这两个参数只在 auditd 主进程收到 SIGHUP 或重启时才重新读取,改完不 reload 就等于白改。
正确流程:改完 /etc/audit/auditd.conf 后,必须执行 systemctl kill --signal=SIGHUP auditd 或 service auditd reload(取决于发行版)。验证是否生效:auditctl -s | grep "max_log"。
-
max_log_file_action = rotate才启用轮转;设成email或exec会跳过轮转逻辑 - 若用 logrotate 管理
/var/log/audit/audit.log,必须配copytruncate,否则 auditd 写句柄丢失,新日志会写进已删除文件的 inode,磁盘空间不释放 - 高频事件(如监控
/proc)建议关掉enable_krb5和disp_qos,避免网络/队列开销拖慢审计线程
真正难的不是加规则,是区分哪些事件必须留、哪些可以丢——比如监控 openat 全局规则,十有八九会把 auditd 自己压垮。









