谁,何时,何地?良好的安全实践表明,您应该知道谁正在访问您的Linux计算机。我们教你怎么做。
Linux和其他类似Unix的操作系统(如MacOS)非常擅长日志记录。在系统内部的某个地方,有一个日志记录着你能想到的一切。我们感兴趣的日志文件叫做wtmp。“w”可能代表“when”或“who”——似乎没有人同意。“tmp”部分可能代表“临时”,但也可能代表“时间戳”
我们知道的是,wtmp是一个日志,它捕获并记录每个登录和注销事件。审查wtmp日志中的数据是对系统管理职责采取安全措施的基本步骤。对于一个典型的家庭电脑,从安全的角度来看,它可能不是那么重要,但它是有趣的,能够审查您的计算机的组合使用。
与Linux中许多基于文本的日志文件不同,wtmp是一个二进制文件。要访问其中的数据,我们需要使用为该任务设计的工具。
那个工具是最后的命令。
最后一个命令从wtmp日志读取数据并在终端窗口中显示。
如果键入last并按Enter键,它将显示日志文件中的所有记录。
last来自wtmp的每条记录都显示在终端窗口中。
从左到右,每行包含:
最后一行告诉我们日志中最早记录的会话的日期和时间。
每次启动计算机时,都会将虚拟用户“reboot”的登录条目输入到日志中。终端字段将替换为内核版本。这些条目的登录会话的持续时间表示计算机的运行时间。
单独使用最后一个命令会生成整个日志的转储,其中大部分会快速通过终端窗口。仍然可见的部分是日志中最早的数据。这可能不是你想看到的。
您可以告诉last为您提供特定数量的输出行。通过在命令行上提供所需的行数来实现这一点。注意连字符。要查看五行,需要键入-5而不是5:
last -5这将给出日志的前五行,这是最新的数据。
d(域名系统)选项告诉last尝试将远程用户的IP地址解析为机器名或网络名。
last -dlast并不总是能够将IP地址转换为网络名称,但是该命令会在可能的时候这样做。
如果您对IP地址或网络名称不感兴趣,请使用-R(无主机名)选项取消显示此字段。
因为这样可以提供更整洁的输出,而且没有难看的包装,所以在下面的所有示例中都使用了此选项。如果使用last试图识别异常或可疑活动,则不会抑制此字段。
可以使用-s(since)选项将输出限制为仅显示自特定日期以来发生的登录事件。
如果您只想查看从2019年5月26日开始发生的登录事件,可以使用以下命令:
last -R -s 2019-05-26输出显示从指定日期的00:00到日志文件中最新记录的登录事件记录。
可以使用-t(until)指定结束日期。这允许您选择在两个感兴趣的日期之间发生的一组登录记录。
此命令要求last检索并显示从26日00:00(黎明)到27日00:00(黎明)的登录记录。这将列表缩小到仅在26日进行的登录会话。
在-s和-t选项中可以使用时间和日期。
可以与使用日期和时间的最后一个选项一起使用的不同时间格式是(据称):
为什么“据称”?
在本文的研究过程中,列表中的第二和第三种格式不起作用。这些命令在Ubuntu、Fedora和Manjaro发行版上进行了测试。它们分别是Debian、RedHat和Arch分布的导数。它涵盖了Linux发行版的所有主要系列。
last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00如您所见,该命令根本没有返回任何记录。
使用列表中与上一个命令具有相同日期和时间的第一个日期和时间格式将返回记录:
last -R -s 20190526110000 -t 20190527130000您还可以指定相对于当前日期和时间以分钟或天为单位的时段。这里我们要的是两天前到一天前的记录。
last -R -s -2days -t -1days你可以用昨天和明天作为昨天日期和今天日期的速记。
last -R -s yesterday -t today并不是说这不包括今天的任何记录。这是预期的行为。该命令要求从开始日期到结束日期的记录。它不包括结束日期内的记录。
“现在”选项是“当前时间的今天”的简写形式。要查看从00:00(黎明)到发出命令时发生的登录事件,请使用以下命令:
last -R -s today -t now这将显示当前的所有登录事件,包括那些仍然登录的事件。
p(present)选项允许您找出某个时间点登录的用户。
它们何时登录或注销并不重要,但是如果它们在您指定的时间登录到计算机,它们将包含在列表中。
如果您指定了一个没有日期的时间,则假定您的意思是“今天”
last -R -p 09:30仍然登录的用户(显然)没有注销时间;他们被描述为仍然登录。如果计算机在您指定的时间之后没有重新启动,它将被列为仍在运行。
如果将now速记与-p(present)选项结合使用,则可以在发出命令时找出登录的用户。
last -R -p now这是一个有点冗长的方式来实现什么可以完成使用世界卫生组织的命令。
相关:如何在Linux中确定当前用户帐户
lastb命令值得一提。它从名为btmp的日志中读取数据。关于这个日志名,大家有了更多的共识。“b”代表坏,但“tmp”部分仍有争议。
lastb列出了错误的(失败的)登录尝试。它接受与上次相同的选项。因为它们是失败的登录尝试,所以它们的登录时间都是00:00。
你必须用sudo和lastb。
sudo lastb -R知道谁已登录到您的Linux计算机,以及何时从何处登录是有用的信息。将此与失败登录尝试的详细信息结合起来,可以帮助您调查可疑行为的第一步。
... 本课程将带您了解Linux的“如何”和“为什么”,并展示各种Linux命令的工作方式、它们的真实结构以及记住这些命令的正确方法。 ...
...bash是什么、不同的模式(交互式和非交互式)以及它是如何产生的基础知识开始,这个站点提供了一个全面的背景知识来帮助您理解命令行的机制。 ...
如果您希望更多地使用Linux终端,那么学习如何手动装载和卸载硬盘是一个简单的开始。此外,如果你发现自己处于一种让你远离传统桌面的境地,学习如何这样做可能会节省很多时间和谷歌搜索。 ...
... 我们已经介绍了如何在Windows和Mac上隐藏文件和文件夹。下面介绍如何在Linux上使用终端和Ubuntu中的文件管理器Nautilus隐藏文件和文件夹。我们还将讨论几种安全地隐藏文件和文件夹的方法...
如果您不知道如何使用ls命令,那么获取与存储上的文件相关的详细信息是很困难的。在这里,我们将讨论Linux上与ls命令相关的所有内容,以及它使用的一些不同的标志。 ...
Linux中有几种不同的应用程序和命令可以为您创建新文件,即使不启动应用程序。使用哪种方法取决于文件的用途。让我们看看这些选项,这样您就可以知道哪一个对您最有用。 ...
...版本可以让您对安全更新做出重要决定。我们将向您展示如何找到这些,无论您使用哪个发行版。 滚动和点释放 你知道你在运行哪个版本的Linux吗?你能找到内核版本吗?Linux的滚动发行版,如Arch、Manjaro和openSUSE,经常使用自...