要查看用户登录记录并排查安全问题,必须结合last命令与auditd审计日志分析。1. 使用last命令可快速查看登录历史,如last查看所有记录,last username查询特定用户,last -n 10显示最近10条,last reboot查看重启记录,last -f /var/log/wtmp.1读取历史wtmp文件;但其依赖的/var/log/wtmp文件易被篡改,存在安全隐患。2. 配置auditd可实现更可靠的审计:通过sudo apt-get install auditd或yum install auditd安装并启动服务,编辑/etc/audit/rules.d/audit.rules添加-w /var/log/wtmp -p wa -k login_attempts和-w /var/log/btmp -p wa -k failed_login_attempts规则以监控成功与失败登录,重启auditd生效。3. 使用sudo ausearch -k login_attempts和sudo ausearch -k failed_login_attempts搜索对应事件,分析时间、uid、ip等信息。4. 分析异常行为包括:短时间内大量失败登录(可能为暴力破解)、非工作时间或异常ip登录;可通过编写python脚本调用ausearch自动检测失败登录频率,超过阈值则告警。综上,应以auditd为核心,结合last命令和自动化分析,全面追踪用户活动并保障系统安全。

查看用户登录记录,关键在于利用
last
命令,结合审计日志,可以追踪用户活动,排查安全问题。
last命令审计日志分析
last
命令的确是查看用户登录历史的利器,但仅仅依赖它是不够的。想想,如果有人清空了
/var/log/wtmp
文件,
last
就失效了。所以,审计日志的分析就显得尤为重要。
如何使用last命令?
last
命令默认会显示所有用户的登录和注销记录,时间倒序排列。直接输入
last
,你会看到密密麻麻的记录。
last username
: 查看特定用户的登录记录。比如
last john
。
last -n 10
: 显示最近10条记录。
last reboot
: 查看系统重启记录,这对于诊断系统问题很有用。
last -f /var/log/wtmp.1
: 指定不同的wtmp文件,比如查看历史的登录记录。
但要注意,
last
依赖于
/var/log/wtmp
文件,这个文件如果被篡改,信息就不可信了。
如何配置和使用auditd审计日志?
auditd
是一个更强大的工具,它可以记录系统上的各种事件,包括用户登录。配置稍微复杂,但带来的价值远超
last
。
首先,确保
auditd
已安装并运行:
sudo apt-get install auditd # Debian/Ubuntusudo yum install auditd # CentOS/RHELsudo systemctl start auditdsudo systemctl enable auditd
接下来,配置审计规则。编辑
/etc/audit/rules.d/audit.rules
,添加以下规则来审计用户登录:
如知AI笔记
如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型
27 查看详情
-w /var/log/wtmp -p wa -k login_attempts-w /var/log/btmp -p wa -k failed_login_attempts
这两条规则分别监控
/var/log/wtmp
(登录成功记录)和
/var/log/btmp
(登录失败记录),并将事件标记为
login_attempts
和
failed_login_attempts
。
重启
auditd
使配置生效:
sudo systemctl restart auditd
现在,你可以使用
ausearch
命令来搜索审计日志:
sudo ausearch -k login_attempts # 查找登录成功的记录sudo ausearch -k failed_login_attempts # 查找登录失败的记录
ausearch
的输出会包含很多信息,包括时间戳、用户ID、进程ID等。你需要仔细分析这些信息,才能还原用户登录行为。
如何分析审计日志中的异常登录行为?
仅仅记录登录信息是不够的,还需要分析这些信息,找出异常行为。比如:
短时间内大量登录失败: 这可能是暴力破解攻击的迹象。非工作时间登录: 可能是账户被盗用。来自异常IP地址的登录: 同样可能是账户被盗用。
要自动化分析这些信息,可以使用
auditd
的日志分析工具,或者将日志导入到SIEM(安全信息和事件管理)系统中。SIEM系统可以关联多个日志源,提供更全面的安全分析。
例如,你可以编写一个简单的脚本,定期分析审计日志,查找短时间内大量登录失败的记录:
#!/usr/bin/env python3import subprocessimport redef analyze_failed_logins(time_window=60, threshold=5): """ Analyzes audit logs for failed login attempts within a given time window. """ cmd = f"sudo ausearch -k failed_login_attempts -ts recent -i" result = subprocess.run(cmd, shell=True, capture_output=True, text=True) log_lines = result.stdout.splitlines() login_attempts = [] for line in log_lines: if "time->" in line: timestamp = re.search(r"time->(.*)", line).group(1).strip() uid_match = re.search(r"uid=(.*?) ", line) uid = uid_match.group(1) if uid_match else "N/A" login_attempts.append((timestamp, uid)) # Simple analysis: Count failed logins per user within the time window user_counts = {} for timestamp, uid in login_attempts: if uid not in user_counts: user_counts[uid] = 0 user_counts[uid] += 1 for user, count in user_counts.items(): if count > threshold: print(f"Possible brute-force attack detected for user {user}: {count} failed logins in the last {time_window} seconds.")if __name__ == "__main__": analyze_failed_logins()
这个脚本会调用
ausearch
命令,获取最近的登录失败记录,然后统计每个用户在指定时间窗口内的失败次数。如果超过阈值,就认为是潜在的暴力破解攻击。
这只是一个简单的例子,实际应用中,你需要根据你的安全需求,编写更复杂的分析脚本。 关键是理解
auditd
的强大之处,并善用它来监控和分析系统安全事件。
以上就是如何查看用户登录记录 last命令审计日志分析的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/435677.html
微信扫一扫
支付宝扫一扫