last
命令查看用户登录历史,lastb
查看失败登录尝试,相关记录保存在/var/log/wtmp
和/var/log/btmp
文件中,lastlog
命令可显示所有用户最近登录时间,常用于系统审计和安全检查。通过系统日志文件查看
Linux的登录记录主要存储在日志文件中,路径通常为:
- /var/log/auth.log(Debian/Ubuntu系)
- /var/log/secure(RedHat/CentOS系)
操作命令:
# Debian/Ubuntu sudo cat /var/log/auth.log | grep "session opened" # RedHat/CentOS sudo cat /var/log/secure | grep "Accepted password"
输出解读:
Jun 15 10:23:45 server sshd[1234]: Accepted password for user1 from 192.168.1.100 port 54322
Jun 15 10:23:45
:登录时间user1
:登录用户名168.1.100
:来源IP地址sshd[1234]
:SSH服务进程ID
使用专用命令工具
last
命令(最常用)
查看所有用户的登录/登出记录:
last
输出示例:
user1 pts/0 192.168.1.100 Mon Jun 15 10:23 still logged in
root tty1 Mon Jun 15 09:45 down (00:05)
- 关键字段:
pts/0
:远程终端会话
tty1
:本地物理终端
still logged in
:当前仍在线
lastb
命令
查看失败登录尝试(需sudo权限):
sudo lastb
lastlog
命令
查看所有用户最后一次登录时间:
lastlog
查看实时登录活动
who
命令
显示当前登录用户:
who
输出示例:
user1 pts/0 2025-06-15 10:23 (192.168.1.100)
w
命令
显示更详细的在线用户信息(包括操作进程):
w
输出示例:
10:30:05 up 1:45, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 pts/0 192.168.1.100 10:23 0.00s 0.05s 0.00s w
高级审计工具
启用 auditd
服务
适合企业级安全审计,记录所有登录事件:
# 安装auditd sudo apt install auditd # Debian/Ubuntu sudo yum install audit # CentOS/RHEL # 添加SSH登录监控规则 sudo auditctl -w /etc/ssh/sshd_config -p wa -k sshd_login # 查看审计日志 sudo ausearch -k sshd_login | grep "USER_LOGIN"
使用 faillock
检查账户锁定
查看用户登录失败次数:
faillock
关键注意事项
-
权限要求:
- 查看
/var/log/secure
或auth.log
需sudo
权限。 lastb
命令默认需要root权限。
- 查看
-
日志轮转:
历史日志可能被压缩(如/var/log/auth.log.1.gz
),使用zcat
查看:zcat /var/log/auth.log.1.gz | grep "session opened"
-
安全建议:
- 定期检查异常IP的登录记录(如
lastb | grep 192.168.1.100
)。 - 敏感服务器可配置实时告警(如
fail2ban
)。
- 定期检查异常IP的登录记录(如
场景 | 推荐命令 | 作用 |
---|---|---|
快速查看历史登录 | last |
所有成功登录记录 |
检查暴力破解尝试 | lastb |
失败登录记录 |
实时监控在线用户 | w 或 who |
当前活跃会话 |
深度审计 | auditd |
企业级安全日志 |
引用说明基于Linux核心文档(
man last
、man auditd
)及Red Hat/Debian官方运维指南整理,符合Linux审计标准,命令测试环境为Ubuntu 22.04/CentOS 7,兼容主流发行版。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/15812.html