如何监控系统登录
身份验证管理的一个基本组成部分是在配置用户后监控系统。
幸运的是,现代 Linux 系统将所有身份验证尝试记录在一个离散文件中。 这位于“/var/log/auth.log”:
sudo less /var/log/auth.log
May 3 18:20:45 localhost sshd[585]: Server listening on 0.0.0.0 port 22. May 3 18:20:45 localhost sshd[585]: Server listening on :: port 22. May 3 18:23:56 localhost login[673]: pam_unix(login:session): session opened fo r user root by LOGIN(uid=0) May 3 18:23:56 localhost login[714]: ROOT LOGIN on '/dev/tty1' Sep 5 13:49:07 localhost sshd[358]: Received signal 15; terminating. Sep 5 13:49:07 localhost sshd[565]: Server listening on 0.0.0.0 port 22. Sep 5 13:49:07 localhost sshd[565]: Server listening on :: port 22. . . .
如何使用“last”命令
通常,您只会对最近的登录尝试感兴趣。 您可以使用“last”工具查看这些:
last
demoer pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37 still logged in root pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37 - 19:37 (00:00) root pts/0 rrcs-72-43-115-1 Thu Sep 5 19:15 still logged in root pts/0 rrcs-72-43-115-1 Thu Sep 5 18:35 - 18:44 (00:08) root pts/0 rrcs-72-43-115-1 Thu Sep 5 18:20 - 18:20 (00:00) demoer pts/0 rrcs-72-43-115-1 Thu Sep 5 18:19 - 18:19 (00:00)
这给出了“/etc/log/wtmp”文件的格式化版本。
如您所见,在第一行和第三行中,它显示用户仍然登录到系统中。 否则,会话期间登录系统的总时间由一组连字符分隔的值给出。
如何使用“lastlog”命令
如果您想从不同的角度看待这种情况,您可以查看系统上每个用户的最后一次登录时间。
此信息通过访问“/etc/log/lastlog”文件提供。 然后根据“/etc/passwd”文件中的条目对其进行排序:
lastlog
Username Port From Latest root pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37:02 +0000 2013 daemon **Never logged in** bin **Never logged in** sys **Never logged in** sync **Never logged in** games **Never logged in** . . .
您可以看到系统上每个用户的最新登录时间。
注意系统用户几乎都有“**Never logged in**”。 我们之前看到这些帐户没有设置密码验证,所以这是预期值。
结论
Linux 上的用户身份验证是系统管理中一个相对灵活的领域。 有许多方法可以使用非常简单的工具来实现相同的目标。
了解系统将登录信息保存在何处非常重要,这样您就可以监控服务器以查找不反映您的使用情况的更改。