温馨提示×

Ubuntu日志中如何管理用户登录信息

小樊
46
2025-10-28 14:40:09
栏目: 智能运维

Ubuntu日志中管理用户登录信息的方法

一、查看用户登录信息的常用命令

  1. last命令:查看系统启动以来的用户登录、注销及系统重启记录,数据源自/var/log/wtmp文件。执行last可显示用户名、终端类型、登录IP、登录时间及会话状态(如“still logged in”表示仍在登录)。该命令是快速了解近期登录情况的常用工具。
  2. lastlog命令:查看所有用户的最后一次成功登录信息,包括登录时间、IP地址,数据源自/var/log/lastlog文件。执行lastlog会列出所有用户(包括从未登录过的),从未登录的用户会显示“Never logged in”。
  3. who命令:显示当前登录的用户信息,包括用户名、终端类型、登录时间及来源(本地或IP地址),数据源自/var/run/utmp文件。执行who可快速掌握当前系统活跃用户。
  4. w命令:扩展了who的功能,不仅显示当前登录用户,还提供用户正在执行的命令、空闲时间、CPU占用等详细信息,数据同样源自/var/run/utmp文件。
  5. 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地址),可通过修改系统配置文件实现:

  1. 编辑全局配置文件/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),并设置日志文件的权限(仅用户自己可读写)。
  2. 使配置生效:执行source /etc/profile,后续用户的操作命令将自动记录到指定目录。

四、保护登录记录的安全性

  1. 限制访问权限:登录记录文件(如/var/log/auth.log/var/log/wtmp/var/log/btmp)包含敏感信息,需确保只有root用户可访问。可使用chmod 600命令设置权限,例如sudo chmod 600 /var/log/auth.log
  2. 定期审计日志:通过cron任务定期检查登录记录,例如每周检查一次失败登录尝试,及时发现异常。可将以下命令添加到/etc/crontab中:
    0 3 * * 0 root /usr/bin/grep "invalid user" /var/log/auth.log >> /var/log/failed_login_audit.log
    
    该任务会在每周日凌晨3点执行,将失败登录记录追加到/var/log/failed_login_audit.log中。
  3. 使用日志管理工具:部署fail2ban等工具,自动分析登录日志并封禁可疑IP地址。例如,安装fail2ban后,配置/etc/fail2ban/jail.local文件启用SSH防护,设置maxretry=3(允许的最大失败次数)和bantime=600(封禁时间,单位秒),可有效防止暴力破解。

0