服务器测评网
我们一直在努力

Linux系统如何查看最近登录用户记录及详细时间?

在Linux系统中,监控和管理用户登录活动是系统管理员的重要职责之一,通过分析最近登录信息,可以及时发现异常登录行为、排查系统故障,并确保系统安全,本文将详细介绍Linux系统中与“最近登录”相关的命令、日志文件及其分析方法,帮助读者全面掌握这一实用技能。

Linux系统如何查看最近登录用户记录及详细时间?

常用查看最近登录的命令

Linux系统提供了多种命令来查看用户的最近登录记录,这些命令各有特点,适用于不同的场景。

last命令

last命令是查看最近登录用户信息的常用工具,它从/var/log/wtmp文件中读取数据,显示用户的登录、注销时间以及终端信息,执行last命令会输出类似以下内容:

root     pts/0        192.168.1.100   Tue Dec 5 10:30   still logged in
user1    pts/1        192.168.1.101   Tue Dec 5 09:15 - 10:20  (01:05)
user2    tty1         -               Mon Dec 4 16:45   gone - no logout

输出字段包括用户名、终端、来源IP、登录时间和持续时间,若需限制输出行数,可使用-n参数,如last -n 10只显示最近10条记录。

lastb命令

last不同,lastb命令用于查看失败的登录尝试,其数据来源为/var/log/btmp文件,这对于检测暴力破解等恶意行为至关重要。

failed   ssh:notty    192.168.1.200   Tue Dec 5 11:00 - 11:00  (00:00)
failed   login       192.168.1.201   Tue Dec 5 10:55 - 10:55  (00:00)

默认情况下,普通用户无法查看lastb的输出,需要root权限。

lastlog命令

lastlog命令显示所有用户最近一次的登录信息,数据来自/var/log/lastlog文件。

Username         Port     From             Latest
root             pts/0    192.168.1.100    Tue Dec 5 10:30:00 +0800 2023
user1            pts/1    192.168.1.101    Tue Dec 5 09:15:00 +0800 2023
user2            tty1     -                Mon Dec 4 16:45:00 +0800 2023

该命令适合快速定位特定用户的最近登录情况,使用lastlog -u username可查询指定用户。

登录日志文件详解

除了上述命令,Linux系统的登录活动还会记录在多个日志文件中,了解这些文件的结构和位置有助于深入分析登录行为。

/var/log/wtmp

wtmp文件是二进制文件,记录所有成功的登录和注销事件。last命令通过解析此文件生成报告,由于文件是二进制格式,无法直接用cat查看,需借助lastac等工具。

/var/log/btmp

btmp文件同样为二进制格式,记录所有失败的登录尝试。lastb命令是查看此文件的主要工具,定期检查此文件可及时发现异常IP地址的暴力破解行为。

Linux系统如何查看最近登录用户记录及详细时间?

/var/log/lastlog

lastlog文件存储每个用户最近一次的登录信息,包括登录时间和终端,每个用户对应一条记录,适合用于审计用户的活动历史。

/var/log/auth.log 或 /var/log/secure

这两个文件记录了系统的认证日志,包括SSH登录、sudo使用、密码修改等事件,以Ubuntu系统为例,/var/log/auth.log会包含类似以下内容:

Dec  5 10:30:01 server sshd[1234]: Accepted publickey for user1 from 192.168.1.101 port 22 ssh2
Dec  5 10:30:02 server sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/ls -la

通过分析此文件,可以追踪用户的详细操作轨迹。

登录信息的分析方法

掌握查看方法后,如何有效分析登录信息是关键,以下是一些实用的分析技巧和场景。

检测异常登录行为

  • 来源IP分析:使用last命令后,通过管道结合grepawk提取IP地址,统计高频登录IP。

    last | grep -v "still logged in" | awk '{print $3}' | sort | uniq -c | sort -nr

    此命令可显示登录次数最多的IP地址,帮助识别可疑来源。

  • 登录时间模式:异常登录通常发生在非工作时间,可通过last命令的输出时间字段,结合脚本分析登录时间分布。

用户活动审计

对于多用户系统,定期审计用户登录情况是必要的,检查某用户最近7天的登录记录:

last -u username | grep -E "^[[:space:]]*[A-Za-z]" | head -n 20

结合/var/log/auth.log查看该用户的sudo操作和文件访问记录。

日志轮转与维护

Linux系统通常会配置日志轮转(logrotate),防止日志文件过大。/etc/logrotate.conf中可能包含以下配置:

Linux系统如何查看最近登录用户记录及详细时间?

/var/log/wtmp {
    monthly
    create 0644 root utmp
    rotate 1
}
/var/log/btmp {
    weekly
    create 0640 root utmp
    rotate 4
    missingok
}

管理员需确保日志轮转配置正确,并定期备份重要日志文件。

安全加固建议

基于登录信息的分析结果,可采取以下措施加固系统安全:

  1. 限制SSH登录:修改/etc/ssh/sshd_config,禁用root远程登录,使用密钥认证而非密码:

    PermitRootLogin no
    PasswordAuthentication no
  2. 设置失败登录阈值:使用fail2ban工具,对多次失败登录的IP进行封禁。

  3. 定期审查用户权限:通过lastlog/etc/passwd文件,清理长期未使用的账户。

  4. 启用日志监控:使用logwatchelk(Elasticsearch、Logstash、Kibana)工具,实时监控日志异常。

Linux系统的“最近登录”信息是系统管理和安全审计的重要数据来源,通过熟练使用lastlastblastlog等命令,并结合日志文件的深入分析,管理员可以及时发现潜在风险并采取应对措施,合理配置日志轮转和安全策略,能够有效提升系统的安全性和可维护性,在日常运维中,将登录信息监控作为常规工作,是保障Linux系统稳定运行的关键环节。

赞(0)
未经允许不得转载:好主机测评网 » Linux系统如何查看最近登录用户记录及详细时间?