SSH 登录审计是什么
SSH 登录审计是主机侧最基础的审计动作:核对成功与失败登录、来源 IP 集中度、会话时段与特权操作。登录记录分布在 wtmp/btmp 等二进制日志与认证日志中,前者适合快速统计,后者包含失败原因与来源端口,两者配合才能把时间线和来源讲清楚。
基本信息
| 适用平台 | Linux/Unix 各发行版,OpenSSH 服务 |
|---|---|
| 成功登录记录 | /var/log/wtmp,用 last 读取 |
| 失败登录记录 | /var/log/btmp,用 lastb 读取,通常需 root |
| 认证日志路径 | RHEL 系 /var/log/secure,Debian 系 /var/log/auth.log |
| 审计重点 | 失败集中来源、非工作时段登录、特权账号与提权 |
| 留存要求 | 认证日志纳入集中留存,避免本地轮转后证据丢失 |
典型使用场景
- 每日或每周核对失败登录来源,识别暴力破解尝试
- 事件调查时重建某账号的登录时间线与来源 IP
- 检查是否存在非工作时段或异地的成功登录
- 配合提权审计确认谁在何时获得了 root 权限
- 集中留存认证日志,支撑检查与取证要求
常用命令
常用命令
last -a | head -20 # 成功登录历史
lastb | head -20 # 失败登录(部分发行版需 root)
who -a # 当前会话
# 认证日志位置:RHEL 系 /var/log/secure,Debian 系 /var/log/auth.log
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head日志字段读法
| 字段 | 含义 | 异常特征 |
|---|---|---|
| 用户名 | 尝试登录的账号 | 大量不存在的用户名说明在枚举 |
| 来源 IP | 连接来源地址 | 单一地址高频失败,或境外来源 |
| 时间戳 | 登录发生时间 | 非工作时段频繁成功登录 |
| 认证方式 | 口令或公钥 | 关闭口令后仍有口令尝试属异常 |
| 会话时长 | 连接持续时长 | 极短连接可能为扫描或脚本探测 |
失败登录来源 IP 集中、非工作时段成功登录、root 直登等属于重点复核对象;把统计做成日报更易发现异常。
审计口径建议写明在制度中:谁看、多久看一次、看哪些字段、发现异常怎么升级,这样审阅动作本身也能形成记录。