解析SSH登录日志的奥秘:深入了解日志的形成过程

发布时间:2023年12月22日

一、SSH登录日志概述

SSH登录日志是维护系统安全、进行故障排除、进行安全审计和监控的重要依据。通过对日志的分析和解读,管理员可以及时发现潜在的安全威胁,防范潜在的入侵,同时也能优化系统性能,保障系统的正常运行。

常见的SSH登录日志类型:

1. sshd 日志: sshd 是 SSH 服务器守护进程的名称,在大多数 Linux/Unix 系统上用于处理 SSH 连接和身份验证。sshd 日志记录了与 SSH 服务器的交互活动、登录尝试、认证成功或失败以及其他事件。

2. secure 日志: secure 日志是一种常见的日志文件,用于记录系统安全相关的事件和活动。SSH登录日志通常存储在 secure 日志文件中,包括来自 sshd 的登录尝试和身份验证信息。

3. auth.log 日志: auth.log 是 Ubuntu/Linux 系统上的系统身份验证日志文件,其中包含有关用户登录、认证成功或失败等信息,也会包括来自 SSH 登录的事件。

4. wtmp 日志: wtmp 日志文件用于记录用户登录和注销的信息。在 SSH 登录的情况下,wtmp 中会记录登录事件、连接时间、用户名和 IP 地址等信息。

5. lastlog 日志: lastlog 日志文件保存用户上次登录时间和登录位置等信息。对于 SSH 登录,lastlog 可以提供与用户上次登录相关的详细信息。

6. var/log/secure.log 日志: Mac OS 系统上的 secure.log 文件记录了与身份验证和授权相关的各种事件,包括 SSH 登录过程中的事件和错误。

7. authpriv.log 日志: authpriv.log 是一种特权级别的日志文件,用于存储包含敏感信息的安全事件。在某些系统中,SSH 登录的敏感事件会记录在 authpriv.log 文件中。

二、SSH登录日志的基本原理

SSH登录过程:

  1. 客户端发起连接请求:用户在本地计算机上的SSH客户端(如OpenSSH)输入要连接的远程服务器的IP地址或主机名。

  2. 远程服务器上运行的SSH服务器守护进程(通常是sshd)会监听传入的连接请求,并等待客户端的连接。

  3. 如果连接建立,客户端和服务器之间将进行密钥交换。这个过程的目的是确保通信的机密性和完整性。客户端和服务器使用非对称加密算法(如RSA或Diffie-Hellman)生成加密密钥对,并交换公钥。

  4. 用户身份认证:客户端向服务器发送用户的身份认证信息,通常是通过密码或公钥进行身份验证。服务器将验证提供的凭证,并决定是否允许登录。

  5. 如果成功通过认证,服务器将向客户端发送确认消息,并允许客户端与服务器建立安全的Shell会话。在该会话中,用户可以在远程服务器上执行命令和操作。

  6. 完成操作后可以通过关闭或退出Shell会话来终止SSH连接。客户端和服务器将关闭连接,并结束与远程服务器的通信。

在这里插入图片描述
日志记录的基本原理和机制是记录和存储系统、应用或网络中发生的事件和活动。

  1. 事件记录:系统和应用在运过程中会生成各种事件,如错误、警告、操作记录等。这些事件将被记录并保存在日志中,生成的SSH登录日志通常会被写入系统日志文件中,例如/var/log/auth.log(Linux系统)或/var/log/secure(某些UNIX系统)。

  2. 日志级别:日志级别用于表示事件的严重程度,常见的级别包括错误(error)、警告(warning)、信息(info)等。

  3. 日志格式包括时间戳、事件级别、事件描述、IP地址、用户信息等。

  4. 为防止日志文件过大,造成存储空间浪费,通常会对日志进行轮转。轮转可以按照时间、大小或其他条件进行,将旧日志文件进行备份、压缩或删除。

"authentication failure"和"Failed password"是不同服务产生的日志。"authentication failure"通常是由操作系统或网络设备产生的日志,记录了身份验证失败的信息。"Failed password"是由具体的服务(如SSH)产生的日志,记录了登录时密码验证失败的信息。

如果日志没有IP的情况,可能是因为服务日志没有记录完整的连接信息。是由于配置错误、日志级别设置不完全、部分信息被过滤等原因导致的。在这种情况下,可能需要详细检查日志配置和相关设置。

三、SSH登录日志的内容解读

在这里插入图片描述

3.1、登录成功的记录

  1. 时间戳:登录事件发生的日期和时间。

  2. 用户名:成功登录的用户账号名称。

  3. 用户IP地址:登录请求来自的IP地址。

  4. 登录方式:标识登录使用的身份验证方法,如密码、公钥、证书等。

  5. 登录结果:指示登录是否成功的标志,通常为"Accepted"或"Successful".

示例:

Dec 21 23:25:34 server sshd[1234]: Accepted password for fly123 from 192.168.0.100 port 5031 ssh2

该示例记录解读如下:

  • 时间戳:Dec 21 23:25:34
  • 用户名:fly123
  • 用户IP地址:192.168.0.100
  • 登录方式:password
  • 登录结果:Accepted

3.2、登录失败的记录

  1. 时间戳:登录事件发生的日期和时间。

  2. 用户名:尝试登录的用户账号名称。

  3. 用户IP地址:登录请求来自的IP地址。

  4. 登录方式:标识登录使用的身份验证方法,如密码、公钥、证书等。

  5. 登录结果:指示登录是否失败的标志,通常为"Failed"或"Invalid user"等。

示例:

Dec 21 13:35:34 server sshd[7632]: Failed password for invalid user fly1235 from 192.168.0.100 port 5032 ssh2

该示例记录解读如下:

  • 时间戳:Dec 21 23:35:34
  • 用户名:fly1235
  • 用户IP地址:192.168.0.100
  • 登录方式:password
  • 登录结果:Failed

3.3、关键事件的标志和含义

SSH登录日志中的关键事件标志和含义可以有多种,常见的关键事件标志和它们的含义:

  1. “Accepted”:表示登录请求成功通过身份验证,允许用户登录到系统。

  2. “Failed”:表示登录请求的身份验证失败。可能是由于密码错误、密钥不匹配或其他认证错误。

  3. “Invalid user”:表示无效的用户账号尝试进行登录,通常是由于用户名不存在。

  4. “Disconnected”:表示连接断开,可能是用户主动断开或网络连接的异常。

  5. “Too many authentication failures”:表示尝试使用多种身份验证方法失败过多,系统拒绝进一步尝试。

  6. “Connection refused”:表示SSH服务器拒绝连接请求,可能是由于防火墙规则、配置错误或系统资源限制。

  7. “Authenticating”:表示身份验证过程正在进行中,可能需要额外的身份验证信息。

  8. “Accepted publickey”:表示成功使用公钥进行身份验证。

  9. “Accepted password”:表示成功使用密码进行身份验证。

  10. “Accepted keyboard-interactive”:表示成功使用键盘交互方式进行身份验证,通常需要输入额外的信息。

四、SSH登录日志的位置和格式

SSH登录日志的位置和格式可能因操作系统而异。主流操作系统的SSH登录日志文件存储位置和格式:

(1)Linux系统:

  • OpenSSH服务器:/var/log/auth.log 或 /var/log/secure。
  • SSHD日志文件格式:通常为纯文本格式。

(2)macOS:

  • OpenSSH服务器:/private/var/log/system.log 或 /private/var/log/secure.log。
  • SSHD日志文件格式:通常为ASL(Apple System Log)格式。

(3)Windows系统(通过第三方软件):

  • Bitvise SSH Server:日志文件可在安装目录的"Logs"文件夹中找到。
  • OpenSSH for Windows:日志文件路径可能因安装方式和配置而异。

(4)FreeBSD:

  • OpenSSH服务器:/var/log/auth.log。
  • SSHD日志文件格式:通常为纯文本格式。

(5)Solaris:

  • OpenSSH服务器:/var/adm/messages 或 /var/log/auth.log。
  • SSHD日志文件格式:通常为纯文本格式。

要查看和解析日志文件,可以:

  1. 使用文本编辑器(如vi、nano、Sublime Text等)直接打开日志文件,逐行查看和解析其中的内容。这种方法适用于日志文件较小且需要查找特定信息的情况。

  2. 命令行工具(如grep、awk、sed等)可以帮助筛选、搜索和解析日志文件中的特定信息。例如,可以使用grep命令搜索特定关键字,如"ERROR"或"Failed",以定位错误或失败的登录尝试。例如:grep "ERROR" /var/log/auth.log

  3. 使用专门的日志解析工具,例如,Logstash、Splunk、ELK(Elasticsearch, Logstash, Kibana)等工具提供了强大的日志管理和解析功能。

五、总结

SSH登录日志对于系统安全和监控非常重要。

  1. SSH登录日志记录了每个SSH连接尝试的详细信息,包括登录时间、来源IP地址、用户名、认证结果等。

  2. 监控SSH登录日志可以帮助发现异常或可疑的行为。

  3. 用户活动追踪:SSH登录日志记录了用户登录和退出的时间戳和终端信息。

  4. 故障排查:SSH登录日志还可以用于故障排查。

在这里插入图片描述

文章来源:https://blog.csdn.net/Long_xu/article/details/135141215
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。