SSH 连接中断分析
sshd 会把连接中断写进认证日志,关键字包括 Received disconnect 与 Connection closed by authenticating user 等。区分正常断开与扫描很有价值:自动化扫描通常以固定间隔反复建连、在认证前就断开,形成稳定节奏;人工操作则会有明显的会话内容与更长的持续时间。
基本信息
| 关键字 | Received disconnect、Connection closed、Connection reset |
|---|---|
| 关键标签 | [preauth] 表示尚未通过认证 |
| 日志位置 | Debian 系 /var/log/auth.log,RHEL 系 /var/log/secure |
| 相关配置 | MaxAuthTries、LoginGraceTime、MaxStartups |
| 权限要求 | 读取认证日志需要 root 或相应组权限 |
| 时间口径 | 与主时间线统一时区后再统计 |
典型使用场景
- 识别自动化扫描与口令爆破尝试
- 区分正常超时断开与异常中断
- 统计特定来源的断开频率
- 结合成功记录确认是否存在后续利用
- 为连接限制与防护策略提供数据依据
最小示例
最小示例
grep -E 'Received disconnect|Connection closed|Connection reset' /var/log/auth.log | tail -30
grep 'preauth' /var/log/auth.log | tail -20 # 认证前断开,扫描特征明显
grep -c 'Connection closed by authenticating user' /var/log/auth.log
awk '/Received disconnect/ {print $NF}' /var/log/auth.log | sort | uniq -c | sort -rn | head
sshd -T 2>/dev/null | grep -Ei 'maxauthtries|logingracetime|maxstartups'
grep 'Too many authentication failures' /var/log/auth.log | tail -5记录与判断
| 记录 | 含义 | 判断 |
|---|---|---|
| Received disconnect | 对端主动断开 | 常见于扫描,带 preauth 更明确 |
| Connection closed by | 对端在认证过程中关闭 | 需结合来源与频率判断 |
| Connection reset | 连接被重置 | 可能是网络中断或安全设备干预 |
| preauth 标签 | 认证前断开 | 自动化特征的强信号 |
| Too many authentication failures | 失败次数超限 | 可能是密钥过多或爆破 |
固定间隔的高频 preauth 断开是自动化扫描的典型节奏,可以用断开时间间隔的规律性把这一特征量化后写进报告。
连接中断本身不等于入侵成功;必须与认证成功记录、会话建立和命令执行放在一起判断。
反向代理或负载均衡场景下来源地址可能是前置设备地址,归属判断要结合转发头或代理侧日志。
把失败与成功记录放在同一时间窗内一起看:先出现高频断开、随后出现一次认证成功,是爆破得手的典型过渡形态。
日志轮转后旧记录会进入 .1 与 .gz 文件,长时间跨度的断开频次统计必须把这些文件一并纳入。
调整连接数上限与认证超时等参数会影响正常用户,取证阶段只记录现状,不随意变更配置。