auditd是Linux内核级审计核心,通过-a always,exit -F arch=b64 -S execve等规则捕获SSH、su/sudo等全路径登录行为,结合auid唯一标识会话并串联操作链,配合ausearch精准回溯,远超/var/log/secure等应用层日志能力。
服务器登录日志审计与监控,核心是捕获真实登录行为、统一标识会话、串联完整操作链,并能快速回溯。只依赖 /var/log/secure 或 Windows 事件查看器远远不够——攻击者可绕过应用层日志,必须从内核级入手。
SSH 登录、本地控制台、su/sudo 切换都需覆盖,每条规则都要带上 -k login_context 标签和 -F auid!=4294967295 过滤系统进程:
-a always,exit -F arch=b64 -S connect -F a0=0x3 -k ssh_connect(匹配 IPv4 建连)-w /etc/pam.d/sshd -p r -k pam_ssh(绕过 sshd 日志的关键兜底)-w /usr/bin/sudo -p x -k sudo_exec、-w /bin/su -p x -k su_attempt
-a always,exit -F arch=b64 -S execve -F path=/bin/bash -k bash_spawn
基本审计粒度太粗,必须启用“高级审核策略配置”:
gpedit.msc → 计算机配置 → 安全设置 → 高级审核策略配置 → 系统审核策略compmgmt.msc → 事件查看器 → 安全日志 → 右键属性 → 设置日志大小至少 1GB,启用“按需覆盖事件”auid 是用户首次登录时分配的唯一 ID,不随 su/sudo 改变,是关联所有操作的核心字段:
192.168.1.100):ausearch -m USER_LOGIN -i | grep "host=192.168.1.100"
ausearch -ts "07/30/2026 02:15:00" -te "07/30/2026 02:18:00" -k login_context -i
SubjectLogonId 关联别让规则长期静默失效:
auditctl -a ... 加临时规则,手动 SSH 或 sudo 一次ausearch -k ssh_connect -i | tail -3,确认有输出再写入 /etc/audit/rules.d/20-login.rules
augenrules --load 加载,再用 auditctl -l | grep login_context 验证是否生效ausearch 或 aureport,不要直接 cat /var/log/audit/audit.log