当前位置: 首页 > 科技观察

Linux内置审计跟踪工具:最后一个命令

时间:2023-03-11 22:27:01 科技观察

如果您是服务器管理员,您可能知道您需要保护您的服务器,不仅要从外部保护,还要从内部保护。Linux有一个内置的工具可以查看谁登录了服务器,可以帮助您保护服务器。这个命令是最后的。这对于跟踪非常有用。让我们看看last能为您做什么。last命令的功能是什么last显示自/var/log/wtmp文件创建以来登录(和注销)的所有用户。该文件为二进制文件,不能用vi、Joe等文本编辑器或其他软件查看。这非常有用,因为用户(或root)无法随意修改此文件。last将为所有登录用户提供用户名、tty、IP地址(如果用户远程连接)、日期时间和用户登录时间。如何运行last你只需要在控制台中输入last即可。这是一个例子:$lastlenipts/010.0.76.162MonDec212:32-13:25(00:53)pungkitty1MonDec209:31stillloggedinrebootsystemboot2.6.32-358.23.2MonDec209:20-13:25(04:05)以下是如何阅读最后一条消息:***列告诉用户是谁第二列给出用户如何连接pts/0(伪终端)的信息例如远程连接用户的SSH或telnettty(电传打字机)表示直接连接到计算机的用户或本地连接的用户,除了重新启动活动外,所有状态都在启动时显示,第三列显示用户来自何处。如果用户来自远程计算机,您将看到主机名或IP地址。如果您看到:0.0或什么都没有,则表示用户正在通过本地终端连接。除了重启活动外,内核版本也会显示在状态中。其余列显示日志活动发生的时间。括号中的数字告诉我们连接持续了多少小时和分钟。lastindaily操作的一些例子限制显示的行数当你有很多行要显示时,你可以限制你想看的行数。使用-n参数来执行此操作。$last-n3lenipts/010.0.76.162MonDec212:32-13:25(00:53)pungkitty1MonDec209:31stillloggedinrebootsystemboot2.6.32-358.23.2MonDec209:20-13:25(04:05)-n参数会导致last显示从当前时间到未来时间的3条记录。要不显示主机名,请使用-R参数。这是示例:$last-Rlenipts/0MonDec212:32-13:25(00:53)pungkitty1MonDec209:31stillloggedinrebootsystembootMonDec209:20-13:25(04:05)如您所见,现在也没有关于主机或IP地址的信息。***一列显示主机名为此,我们使用-a参数$last-alenipts/0MonDec212:32-13:25(00:53)10.0.76.162pungkitty1MonDec209:31stillloggedin:0.0rebootsystembootMonDec209:20-13:25(04:05)2.6.32-358.23.2.el6.i686现在10.0.76.162等主机信息会放在最后一栏.显示完整的登录和注销时间和日期为此,您可以使用-F参数。这是一个示例:$last-Flenipts/010.0.76.162MonDec212:32:242013–MonDec201313:25:242013(00:53)如果您想跟踪特定用户,则打印特定用户名,你可以专门打印出来。在最后一条命令后输入用户名。$lastlenilenitty1MonDec218-42stillloggedinlenipts/0MonDec212:32-13:25(00:53)10.0.76.162或者如果您想知道重启何时完成,您还可以显示它像这样:$lastrebootrebootsystembootMonDec209:20-16:55(07:34)rebootsystembootSunDec104:26-04:27(00:01)rebootsystembootWedNov2720:27-01:24(04:57)rebootsystembootTueNov2621:06-06:13(09:06)打印特定的/ptslast也可以打印特定的tty/pts信息。只需在最后一个命令后输入tty名称或pty名称即可。以下是一些示例:$lasttty1pungkitty1MonDec209:31stillloggedinpungkitty1MonDec204:26–down(00:00)pungkitty1MonDec204:07–down(00:00)pungkitty1Sun12月1日18:55–04:07(09:12)$lastpts/0lenipts/010.0.76.162MonDec212:32-13:25(00:53)pungkipts/0:0.0WedNov2720:28-down(04:56)当你看到down的值时-如上面第二行,表示用户在某个时间登录,直到系统重新启动或关闭。使用另一个文件而不是/var/log/wtmp默认情况下,最后一个命令将解析来自/var/log/wtmp的消息。如果你想从另一个文件解析最后一个命令,你可以使用-f参数。例如,当日志被剪切时,我们假设剪切后,之前的文件名变为/var/log/wtmp.1。然后最后一个命令看起来像这样。$last-f/var/log/wtmp.1显示运行级别变化有一个-x参数显示运行级别。此处输出示例:pungkitty1MonDec219:21stillloggedinrunlevel(tolvl3)2.6.32-358.23.2MonDec219:20–19:29(00:08)rebootsystemboot2.6.32-358.23.212月2日星期一19:20–19:29(00:08)关闭系统2.6.32-358.23.212月2日星期一18:56–19:20(00:23)运行级别(至0级)2.6。32-358.23.2MonDec218:56–18:56(00:00)lenitty1MonDec218:42–down(00:00)你可以看到这里有两个运行级别。运行级别到lvl3的条目意味着系统在完全控制台模式下运行,没有X窗口或GUI。此外,当系统关闭时,它实际上切换到运行级别0,这就是last显示为lvl0的原因。查看失败的登录last命令记录成功的登录,而lastb命令记录失败的登录尝试。您必须具有root权限才能运行lastb命令。下面是lastb命令的示例输出。lastb会解析/var/log/btmp的信息。#lastblenitty1MonDec222:12–22:12(00:00)rahmatty1MonDec222:11–22:11(00:00)削减日志,因为/var/log/wtmp记录每个登录活动,文件大小可能会快速增长。默认情况下,Linux每个月都会削减/var/log/wtmp/。切割策略放在/etc/logrotate.conf文件中。这是我的/etc/logrotate.conf*文件的内容。/var/log/wtmp{  monthly  create0664rootumtp  minsize1M  rotate1}对于/var/log/btmp,这里是默认的switchactivity配置/var/log/btmp{  missingok  monthly  create0600rootumtp  minsize1M  rotate1}大家可以根据需要修改。总结您可以组合这些参数来自定义last和lastb的输出。所有可以在last命令上运行的参数都可以在lastb命令上运行。有关更多详细信息,请通过在控制台中键入manlast来访问它。via:http://linoxide.com/linux-command/linux-last-command/译者:geekpi校对:wxy