阅读量:3
Ubuntu日志中管理用户登录信息的方法
一、查看用户登录信息的常用命令
last命令:查看系统启动以来的用户登录、注销及系统重启记录,数据源自/var/log/wtmp文件。执行last可显示用户名、终端类型、登录IP、登录时间及会话状态(如“still logged in”表示仍在登录)。该命令是快速了解近期登录情况的常用工具。lastlog命令:查看所有用户的最后一次成功登录信息,包括登录时间、IP地址,数据源自/var/log/lastlog文件。执行lastlog会列出所有用户(包括从未登录过的),从未登录的用户会显示“Never logged in”。who命令:显示当前登录的用户信息,包括用户名、终端类型、登录时间及来源(本地或IP地址),数据源自/var/run/utmp文件。执行who可快速掌握当前系统活跃用户。w命令:扩展了who的功能,不仅显示当前登录用户,还提供用户正在执行的命令、空闲时间、CPU占用等详细信息,数据同样源自/var/run/utmp文件。lastb命令:查看失败的登录尝试记录(如密码错误、无效用户),数据源自/var/log/btmp文件(需root权限)。该命令是检测潜在入侵尝试的重要工具,执行sudo lastb可查看失败登录的详细信息。
二、分析认证日志文件
Ubuntu的用户认证日志主要存储在/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(Red Hat/CentOS)中,记录了用户登录、登出、sudo操作、密码修改等认证相关事件。可通过以下命令筛选关键信息:
- 查看所有登录记录:
sudo grep "session opened" /var/log/auth.log(“session opened”表示用户成功登录); - 查看SSH登录记录:
sudo grep "sshd" /var/log/auth.log(SSH登录会记录在sshd服务日志中); - 查看失败登录尝试:
sudo grep "invalid user" /var/log/auth.log(无效用户尝试登录的记录)或sudo grep "authentication failure" /var/log/auth.log(认证失败记录)。
三、自定义用户操作日志记录
若需要更详细的用户操作记录(包括命令执行时间、IP地址),可通过修改系统配置文件实现:
- 编辑全局配置文件
/etc/profile(对所有用户生效),在文件末尾添加以下代码:这段代码的作用是将用户的命令历史记录到USER=$(whoami) USER_IP=$(who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g') if [ "$USER_IP" = "" ]; then USER_IP=$(hostname) fi if [ ! -d /var/log/history ]; then mkdir /var/log/history chmod 777 /var/log/history fi if [ ! -d /var/log/history/${LOGNAME} ]; then mkdir /var/log/history/${LOGNAME} chmod 300 /var/log/history/${LOGNAME} fi export HISTSIZE=4096 export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$(date +"%Y%m%d_%H:%M:%S")" export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S: ${USER} : " chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null/var/log/history/${用户名}/目录下,文件名包含用户名、IP地址及执行时间(如root@192.168.1.100_20251028_10:30:00),并设置日志文件的权限(仅用户自己可读写)。 - 使配置生效:执行
source /etc/profile,后续用户的操作命令将自动记录到指定目录。
四、保护登录记录的安全性
- 限制访问权限:登录记录文件(如
/var/log/auth.log、/var/log/wtmp、/var/log/btmp)包含敏感信息,需确保只有root用户可访问。可使用chmod 600命令设置权限,例如sudo chmod 600 /var/log/auth.log。 - 定期审计日志:通过
cron任务定期检查登录记录,例如每周检查一次失败登录尝试,及时发现异常。可将以下命令添加到/etc/crontab中:该任务会在每周日凌晨3点执行,将失败登录记录追加到0 3 * * 0 root /usr/bin/grep "invalid user" /var/log/auth.log >> /var/log/failed_login_audit.log/var/log/failed_login_audit.log中。 - 使用日志管理工具:部署
fail2ban等工具,自动分析登录日志并封禁可疑IP地址。例如,安装fail2ban后,配置/etc/fail2ban/jail.local文件启用SSH防护,设置maxretry=3(允许的最大失败次数)和bantime=600(封禁时间,单位秒),可有效防止暴力破解。
以上就是关于“Ubuntu日志中如何管理用户登录信息”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm