首页/安全/取证与溯源速查/SSH 断开原因与 preauth 行为判读
Linux 取证135 条

SSH 断开原因与 preauth 行为判读

Received disconnect 与 Connection closed 提示会话结束方式:爆破工具常在预认证阶段批量断开,正常用户则多在认证后交互一段时间。

取证与溯源速查安全更新于 2026-10-13

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 文件,长时间跨度的断开频次统计必须把这些文件一并纳入。
调整连接数上限与认证超时等参数会影响正常用户,取证阶段只记录现状,不随意变更配置。

易错点

  • 只看断开记录就定性攻击:网络抖动与客户端超时同样会产生这类日志
  • 忽略 preauth 与已认证的区别:认证前断开与认证后断开反映的行为完全不同
  • 把代理地址当来源:前置设备会让所有连接看起来来自同一地址,归属判断随之失真
  • 排查时顺手修改 sshd 参数:会改变现有证据环境,也可能影响业务连接

数据来源与参考

  • OpenSSH 手册(sshd 日志与 DISCONNECT 消息)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌