如何查看用户登录记录 last命令审计日志分析

要查看用户登录记录并排查安全问题,必须结合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命令审计日志分析

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笔记 如知AI笔记

如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型

如知AI笔记 27 查看详情 如知AI笔记

-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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 16:02:57
下一篇 2025年11月7日 16:04:04

相关推荐

发表回复

登录后才能评论
关注微信