需在 /etc/pam.d/sshd 的 session 段添加 session required pam_tty_audit.so disable=zabbix,nagios,telegraf enable=*,确保监控账号通过 ssh 交互式登录且 shell 非 nologin,再验证 aureport --tty 输出无其记录。

要在启用 pam_tty_audit.so 的同时排除特定自动化监控账号(如 zabbix、nagios、telegraf 等),关键是利用其 disable= 参数精准过滤,避免这些非交互式账号产生冗余 TTY 日志,从而精简审计日志体积并提升可读性。
明确禁用目标账号的 session 规则
在 SSH 服务的 PAM 配置中(通常为 /etc/pam.d/sshd),将 pam_tty_audit.so 的规则放在 session 段,并使用 disable= 明确列出需跳过审计的账号:
- 编辑文件:
# vi /etc/pam.d/sshd - 在
session区域添加一行(注意位置:应位于pam_selinux.so close之后、其他 session 模块之前):session required pam_tty_audit.so disable=zabbix,nagios,telegraf enable=* - 该配置表示:对所有用户启用 TTY 审计,但明确禁用指定的三个监控账号
确认账号类型与登录方式是否匹配
确保被排除的账号确实通过 SSH 登录且使用交互式 shell,否则 pam_tty_audit 本就不会触发。常见需排除的典型场景包括:
- 监控工具通过 SSH 执行命令(如
ssh zabbix@host 'df -h'),属于非交互式会话,但部分配置仍可能生成短时 TTY 记录 - 账号的
/etc/passwd中 shell 设置为/bin/bash或/bin/sh,而非/sbin/nologin或/usr/sbin/nologin - 若账号已设为
/sbin/nologin,则基本不会进入 PAM session 流程,无需额外排除
验证排除效果与日志清理
配置后需实际验证是否生效,避免误排除或遗漏:
- 重启 sshd(非必需,PAM 配置实时生效):
# systemctl reload sshd - 分别以监控账号和普通用户登录并执行简单命令(如
ls) - 检查 TTY 审计日志:
# aureport --tty --start today - 确认输出中仅含普通用户条目,无
zabbix等账号的comm和data字段 - 如仍有残留,检查是否还有其他服务(如
sudo、su)的 PAM 文件也加载了pam_tty_audit,需一并调整
补充建议:结合 auditd 过滤进一步降噪
即使 TTY 审计已关闭,某些监控行为仍可能触发其他 audit 事件(如 execve)。可配合 auditd 规则减少干扰:
- 临时屏蔽某用户的所有 exec 事件:
-a always,exclude -F uid=zabbix - 或更精细地屏蔽特定程序:
-a always,exit -F path=/usr/bin/df -F uid=zabbix -F perm=x -k monitor-exec - 规则写入
/etc/audit/rules.d/monitor.conf后执行:# augenrules --load










