Linux审计跟踪工具:last命令

Linux审计跟踪工具:last命令

linux系统中last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。这对于追踪入侵来说是非常有用的。

last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览,比如vi、Joe或者其他软件。这是非常有用的,因为用户(或者root)不能像他们希望的那样修改这个文件。

last会给出所有已登录用户的用户名、tty、IP地址(如果用户是远程连接的话)、日期-时间和用户已经登录的时间。

例子:

$ last

leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)

pungki tty1 Mon Dec 2 09:31 still logged in

reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)

这里是如何阅读last信息:

第一列告诉谁是用户

第二列给出了用户如何连接的信息

pts/0 (伪终端) 意味着从诸如SSH或telnet的远程连接的用户

tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户

除了重启活动,所有状态会在启动时显示

第三列显示用户来自哪里。如果用户来自于远程计算机,你会看到一个主机名或者IP地址。如果你看见:0.0 或者什么都没有,这意味着用户通过本地终端连接。除了重启活动,内核版本会显示在状态中。

剩下的列显示日志活动发生在何时。括号中的数字告诉我们连接持续了多少小时和分钟。

日常操作中last的一些示例

限制显示行的数目

当你有很多行要显示时,你可以限制你想看到的行的数目.使用 -n 参数来这么做。

$ last -n 3

leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)

pungki tty1 Mon Dec 2 09:31 still logged in

reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)

-n 参数会使last显示从当前时间到以后的3条记录。

不显示主机名

使用 -R 参数来这么做。这里是例子 :

$ last -R

leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53)

pungki tty1 Mon Dec 2 09:31 still logged in

reboot system boot Mon Dec 2 09:20 - 13:25 (04:05)

如你所见,现在在也没有关于主机或者IP地址的信息了。

最后一列显示主机名

要这么做,我们使用 -a参数

$ last -a

leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162

pungki tty1 Mon Dec 2 09:31 still logged in :0.0

reboot system boot Mon Dec 2 09:20 - 13:25 (04:05) 2.6.32-358.23.2.el6.i686

现在主机信息诸如10.0.76.162 会放在最后一列。

显示完整登入登出时间日期

对于此,你可以使用 -F 参数。这个是个示例:

$ last -F

leni pts/0 10.0.76.162 Mon Dec 2 12:32:24 2013