怎样检查 Linux 登录历史

如果您有 Linux 服务器,则可能有多个用户访问该系统。 当特定用户登录到 Linux 系统时,您可能想知道谁登录了您的系统。 您可能还想知道从哪个 IP 地址访问您的系统。

即使您没有多个用户,也可能有人试图访问您的 Linux 服务器。 相信我,这听起来可能很奇怪,但如今机器人尝试访问您的 Linux 服务器是很常见的事情。 不相信我? 只需检查您服务器上的错误登录尝试,看看是否有人试图登录您的系统。

让我向您展示怎样查看 Linux 登录历史,以便您了解谁在访问您的系统以及从哪里访问。

查看 Linux 登录历史

Linux 非常擅长保存系统上所有内容的日志。 很自然地,它还存储有关登录和登录尝试的日志。 登录信息存储在三个地方:

  • /var/log/wtmp – 上次登录会话的日志
  • /var/run/utmp – 当前登录会话的日志
  • /var/log/btmp – 错误登录尝试的日志

让我们详细了解一下这些内容。

1. 查看所有登录用户的历史记录

要查看系统上所有成功登录的历史记录,只需使用 last 命令。

last

输出应如下所示。 如您所见,它列出了用户、用户访问系统的 IP 地址、登录日期和时间范围。 pts/0 表示通过 SSH 访问服务器。

abhi     pts/0        202.91.87.115    Wed Mar 13 13:31   still logged in
root     pts/0        202.91.87.115    Wed Mar 13 13:30 - 13:31  (00:00)
servesha pts/0        125.20.97.117    Tue Mar 12 12:07 - 14:25  (02:17)
servesha pts/0        209.20.189.152  Tue Mar  5 12:32 - 12:38  (00:06)
root     pts/0        202.91.87.114    Mon Mar  4 13:35 - 13:47  (00:11)

wtmp begins Mon Mar  4 13:35:54 2019

输出的最后一行告诉您 wtmp 日志文件的创建时间。 这很重要,因为如果最近删除了 wtmp 文件,最后一个命令将无法显示该日期之前的登录历史记录。

您可能有大量的登录会话历史,因此最好通过 less 命令传输输出。

2.查看某个用户的登录历史

如果只想查看特定用户的登录历史,可以使用 last 命令指定用户名。

last <username>

您将仅看到所选用户的登录信息:

last servesha
servesha pts/0        125.20.97.117    Tue Mar 12 12:07 - 14:25  (02:17)
servesha pts/0        209.20.189.152  Tue Mar  5 12:32 - 12:38  (00:06)

wtmp begins Mon Mar  4 13:35:54 2019

3. 在登录历史中显示 IP 地址而不是主机名

您在前面的输出中看不到它,但默认情况下,最后一个命令显示主机名而不是用户的 IP 地址。 如果您在子网中,您可能只会看到主机名。

您可以使用 -i 选项强制显示以前登录的用户的 IP 地址。

last -i

4.只显示最近N次登录

如果您的系统具有良好的正常运行时间,那么您的登录历史记录可能会很大。 正如我之前提到的,您可以使用 less 命令或其他文件查看命令,例如 head 或 tail。

最后一个命令让您可以选择仅显示特定数量的登录历史记录。

last -N

只需将 N 替换为您想要的数字。 您也可以将其与用户名结合使用。

5. 查看 Linux 服务器上的所有错误登录尝试

现在是重要的部分:检查服务器上的错误登录尝试。

您可以通过两种方式做到这一点。 您可以将最后一个命令与 btmp 日志文件一起使用:

last -f /var/log/btmp

或者您可以使用 lastb 命令:

lastb

这两个命令都会产生相同的结果。 lastb 实际上是指向带有指定文件的最后一个命令的链接。

root     ssh:notty    218.92.0.158     Wed Mar 13 14:34 - 14:34  (00:00)
sindesi  ssh:notty    59.164.69.10     Wed Mar 13 14:34 - 14:34  (00:00)
root     ssh:notty    218.92.0.158     Wed Mar 13 14:34 - 14:34  (00:00)
sindesi  ssh:notty    59.164.69.10     Wed Mar 13 14:34 - 14:34  (00:00)
root     ssh:notty    218.92.0.158     Wed Mar 13 14:34 - 14:34  (00:00)

错误的登录可能是合法用户输入的错误密码。 它也可能是一个机器人试图 蛮力 你的密码。

你必须在这里分析一下,看看你是否认出了日志中的IP。 如果使用 root 用户从某个 IP 登录尝试次数过多,则可能有人试图通过暴力破解来攻击您的系统。

在这种情况下,您应该部署 Fail2Ban 来保护您的服务器。 禁止失败 将从您的服务器中禁止此类 IP,从而为您的服务器提供额外的保护层。

结论

我希望本教程教您在 Linux 中查看登录历史,现在您可以使用这些知识来更好地管理和保护您的 Linux 系统。

如果您喜欢这篇文章,请在社交媒体上分享并订阅我们的时事通讯以获取更多 Linux 相关教程。

相关阅读:

Posted in: Linux