服务器测评网
我们一直在努力

Linux SSH登录日志如何查看登录失败IP和用户?

Linux SSH登录日志是系统安全管理和故障排查的重要依据,详细记录了用户通过SSH协议登录系统的行为轨迹,通过分析这些日志,管理员可以及时发现异常登录、暴力破解等安全威胁,也能追溯历史操作责任,本文将从日志位置、关键字段解析、分析方法及安全加固四个方面,系统介绍Linux SSH登录日志的相关知识。

Linux SSH登录日志如何查看登录失败IP和用户?

SSH登录日志的存储位置

Linux系统中,SSH登录日志主要分为两类:系统认证日志和SSH服务专用日志,不同发行版的日志存储路径略有差异,但核心内容一致。

  1. 系统认证日志
    大多数Linux发行版(如Ubuntu、Debian、CentOS 7+)将SSH认证信息记录在系统的日志服务中,使用systemd的系统可通过以下命令查看实时日志:

    journalctl -u sshd -f

    日志文件通常位于/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(CentOS 6/RHEL 6)。

  2. SSH服务日志
    若SSH服务配置了独立日志(通过/etc/ssh/sshd_config中的SyslogFacilityLogLevel参数设置),日志可能存储在/var/log/sshd.log或由rsyslog管理,管理员需检查sshd_config中的LogLevel参数,建议设置为VERBOSE以记录更详细的信息。

日志关键字段解析

SSH登录日志包含丰富的字段信息,通过解析这些字段可以还原登录全貌,以下为典型日志条目及字段说明:

Mar 15 10:30:22 server sshd[12345]: Accepted publickey for user from 192.168.1.100 port 22 ssh2: RSA SHA256:abcdef1234567890
Mar 15 10:30:25 server sshd[12346]: Failed password for invalid user admin from 192.168.1.100 port 22 ssh2
Mar 15 10:31:00 server sshd[12347]: session opened for user root from 192.168.1.100 by (uid=0)
Mar 15 10:35:15 server sshd[12348]: session closed for user root

表1:SSH登录日志关键字段说明

字段类型 示例值 说明
时间戳 Mar 15 10:30:22 登录发生的时间,格式为“月 日 时:分:秒”
主机名 server 运行SSH服务的主机名
进程ID sshd[12345] SSH守护进程的ID,用于追踪会话
事件类型 Accepted publickey 登录结果,如Accepted(成功)、Failed(失败)
认证方式 publickey/password 认证类型,包括密码、密钥、键盘交互等
用户名 user/invalid user 登录用户名,无效用户会标注为invalid user
源IP地址 168.1.100 发起登录请求的客户端IP
源端口 port 22 客户端使用的端口号,默认为22
密钥指纹 RSA SHA256:abcdef... 成功使用密钥登录时显示的公钥指纹
会话状态 session opened/closed 记录用户会话的开始和结束

日志分析方法与工具

通过系统化的日志分析,可以高效识别异常行为,以下是常用分析方法及工具:

Linux SSH登录日志如何查看登录失败IP和用户?

  1. 登录成功统计
    统计特定时间段的成功登录次数,分析用户活跃度:

    grep "Accepted" /var/log/auth.log | awk '{print $1, $2, $9}' | sort | uniq -c
  2. 失败登录检测
    检测高频失败IP,判断是否存在暴力破解:

    grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
  3. 异常时间登录
    识别非工作时间的登录尝试:

    grep "Accepted" /var/log/auth.log | awk '{print $2}' | cut -d: -f1 | sort | uniq -c
  4. 使用日志分析工具
    工具如goaccesslogwatch可生成可视化报告,

    sudo logwatch --detail high --service ssh --range today

表2:常见SSH安全事件及日志特征

安全事件 日志特征 应对措施
暴力破解 同一IP大量Failed password记录 使用fail2ban封禁IP,修改默认端口
非法用户登录 invalid user频繁失败 禁用root远程登录,清理无用账户
密钥泄露 成功登录但未知客户端IP 撤销对应公钥,强制重新认证
会话异常 短时间内频繁session opened/closed 检查用户是否使用自动化脚本

基于日志的安全加固措施

通过分析日志发现的安全隐患,可采取以下加固策略:

  1. 登录策略优化

    Linux SSH登录日志如何查看登录失败IP和用户?

    • 禁用密码登录,改用密钥认证(在sshd_config中设置PasswordAuthentication no
    • 限制root用户直接登录(PermitRootLogin no
    • 更改默认SSH端口(Port 2222等非标准端口)
  2. 实时监控与告警
    配置rsyslogauditd实时监控SSH日志,结合ELK Stack(Elasticsearch、Logstash、Kibana)或Splunk搭建日志分析平台,对异常登录触发邮件或短信告警。

  3. 日志审计与留存
    定期备份日志文件,建议至少保留90天,通过logrotate管理日志轮转,避免日志文件过大:

    /var/log/auth.log {
        weekly
        missingok
        rotate 4
        compress
        delaycompress
        notifempty
    }
  4. 定期安全审查
    每月生成SSH登录报告,重点关注:

    • 新增IP地址的登录记录
    • 失败登录次数超过阈值的账户
    • 非工作时间的登录行为

Linux SSH登录日志是系统安全的“黑匣子”,通过深入理解日志结构、掌握分析工具并实施加固措施,管理员可以显著提升系统的抗攻击能力,建议将日志分析纳入日常运维流程,结合自动化工具实现威胁的快速响应与溯源,从而构建更加安全的SSH访问环境。

赞(0)
未经允许不得转载:好主机测评网 » Linux SSH登录日志如何查看登录失败IP和用户?