温馨提示×

Debian SSH日志如何查看和分析

小樊
37
2025-12-12 20:06:13
栏目: 智能运维

Debian SSH日志查看与分析

一 日志位置与查看方式

  • 日志文件位置:Debian 系统的 SSH 认证日志默认写入 /var/log/auth.log(由 rsyslog 按 facility=auth 收集),使用 systemd 时也可通过 journalctl 查看 sshd 单元日志。
  • 常用查看命令:
    • 实时查看 auth.log:sudo tail -f /var/log/auth.log
    • 查看 systemd 日志:sudo journalctl -u ssh -f(按 Ctrl+C 退出)
    • 按时间过滤:sudo journalctl -u ssh --since -5m / -1h / -1d
    • 兼容旧版或非 systemd:grep sshd /var/log/auth.log
  • 日志轮转:历史日志可能以 auth.log.1、auth.log.2.gz 等形式存在,分析时需一并检查(必要时先解压 .gz 文件)。

二 关键日志与字段解读

  • 常见成功与失败关键字:
    • 成功:Accepted password / Accepted publickey
    • 失败:Failed password / Failed publickey / invalid user
  • 典型日志示例:
    • 成功:Dec 21 23:25:34 server sshd[1234]: Accepted password for fly123 from 192.168.0.100 port 5031 ssh2
    • 失败:Dec 21 13:35:34 server sshd[7632]: Failed password for invalid user fly123 from 192.168.0.100 port 5032 ssh2
  • 字段含义与定位:
    • 时间戳:如 Dec 21 23:25:34
    • 进程:如 sshd[1234]
    • 结果:如 Accepted / Failed
    • 用户名:如 fly123(失败日志中也可能为 invalid user
    • 来源 IP:如 192.168.0.100(在常见 Debian 日志格式中通常位于倒数第 4 列)
    • 端口与协议:如 port 5031 ssh2
  • 辅助命令:
    • 历史登录会话:last(含 SSH)、last -a | grep ssh
    • 最近一次登录:lastlog
    • 当前在线用户:w

三 常用分析命令速查

  • 成功登录清单(含时间、用户、来源 IP):
    • grep "Accepted " /var/log/auth.log | awk ‘{print $1,$2,$3,$9,$11}’
  • 失败登录 Top N IP:
    • grep "Failed " /var/log/auth.log | awk ‘{print $(NF-3)}’ | sort | uniq -c | sort -nr | head
  • 失败登录 Top N 用户:
    • grep "Failed " /var/log/auth.log | awk ‘{print $9}’ | sort | uniq -c | sort -nr | head
  • 指定 IP 的所有尝试:
    • grep “192.168.1.100” /var/log/auth.log
  • 指定时间窗口(示例:12:00–18:00):
    • awk ‘/sshd.*Failed password for root/ {print $1,$2,$3}’ /var/log/auth.log | awk ‘$2 >= “12:00:00” && $2 <= “18:00:00”’
  • 统计某时段失败次数:
    • grep “Failed password for root” /var/log/auth.log | awk ‘{print $1}’ | sort | uniq -c
  • 归档日志一并分析(含 .gz):
    • zcat /var/log/auth.log.*.gz | grep “Failed” | awk ‘{print $(NF-3)}’ | sort | uniq -c | sort -nr
  • 实时跟踪失败尝试:
    • tail -f /var/log/auth.log | grep --color=auto “Failed”

四 异常排查与安全加固

  • 常见异常与日志线索:
    • 用户不在白名单:User root from IP not allowed because not listed in AllowUsers
    • 密钥算法不被支持:userauth_pubkey: unsupported public key algorithm: ssh-ed25519
    • 连接被策略关闭:Connection closed by IP
    • 无效用户尝试:input_userauth_request: invalid user root
  • 快速处置思路:
    • 核对 /etc/ssh/sshd_config 关键项:Port、PermitRootLoginPasswordAuthenticationPubkeyAuthenticationAllowUsers/AllowGroups;修改后执行 sudo systemctl restart ssh
    • 结合日志与网络状态排查:确认服务运行(sudo systemctl status ssh)、端口可达(nc -zv IP 22)、安全组/防火墙放行
  • 加固建议:
    • 使用 Fail2Ban 自动封禁反复失败的来源 IP:sudo apt install fail2ban
    • 优先采用密钥登录并禁用密码:PasswordAuthentication no;必要时更改默认端口(Port 2222
    • 集中化日志:使用 ELKSplunk 做可视化与告警

0