如何查看Linux用户登录失败记录 faillog命令使用详解

如何查看Linux用户登录失败记录 faillog命令使用详解
最新回答
唇角那吻痕

2022-07-27 21:30:41

查看Linux用户登录失败记录可通过faillog命令结合其他工具实现,以下是具体方法及注意事项

一、使用faillog命令查看登录失败记录
  1. 查看所有用户的失败登录尝试

    sudo faillog

    显示所有用户的登录失败次数和最后一次失败时间。

    需sudo权限,因涉及系统安全信息。

  2. 查看特定用户的失败登录尝试

    sudo faillog -u username

    将username替换为实际用户名,仅显示该用户的失败记录。

  3. 重置用户的失败登录计数器

    sudo faillog -u username -r

    重置指定用户的失败计数器,常用于账户解锁后清理记录。

二、结合其他工具查看登录失败记录
  1. 使用lastb命令

    lastb显示/var/log/btmp文件中的登录失败记录,可直接查看所有失败尝试:lastb

    按用户名过滤:lastb | grep username

    结合awk过滤特定时间段(需日志中包含时间戳):lastb | awk '/May 10/ {print $0}' # 示例:过滤5月10日的记录

  2. 分析日志文件

    /var/log/auth.log(Debian/Ubuntu)或/var/log/secure(RHEL/CentOS)

    搜索“Failed password”关键词:grep "Failed password" /var/log/auth.log

    按用户名过滤:grep "Failed password for invalid user" /var/log/auth.log | grep username

    统计IP地址的失败次数:grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

    /var/log/btmp

    直接使用lastb查看,或通过cat命令(需root权限):sudo cat /var/log/btmp

三、faillog的局限性
  1. 不记录所有失败类型

    仅跟踪通过标准登录程序(如login)的失败尝试,SSH密钥认证失败可能不会被记录

  2. 依赖PAM配置

    若PAM未正确配置pam_faillock.so模块,faillog可能无法工作。

  3. 日志轮转导致记录丢失

    系统定期轮转日志文件,旧记录可能被压缩或删除。

四、确保faillog正常工作的PAM配置
  1. 修改PAM配置文件

    编辑/etc/pam.d/login或/etc/pam.d/sshd,确保包含以下模块:auth required pam_faillock.so preauth audit silent deny=5 unlock_time=300auth sufficient pam_unix.so try_first_pass likeauth nullok auditauth required pam_faillock.so authfail audit deny=5 unlock_time=300account required pam_unix.soaccount required pam_faillock.so

    参数说明

    preauth:认证前初始化失败计数器。

    authfail:认证失败时增加计数器。

    deny=5:5次失败后锁定账户。

    unlock_time=300:锁定时间300秒(5分钟)。

  2. 重启服务

    修改后重启SSH或login服务:sudo systemctl restart sshd # 或 sudo systemctl restart login

五、其他监控方法
  1. 部署Fail2ban

    自动封禁恶意IP,支持SSH、FTP等服务。

    配置示例:监控/var/log/auth.log中的SSH失败尝试,封禁IP 10分钟。

  2. 使用OSSEC或Logwatch

    OSSEC:实时监控日志,发送警报。

    Logwatch:生成日志摘要报告,突出显示登录失败事件。

  3. 配置auditd审计系统

    记录详细审计信息,如:sudo auditctl -w /var/log/auth.log -p wa -k login_failures

    搜索审计记录:sudo ausearch -k login_failures

六、总结
  • 优先使用faillog:快速查看失败次数和最后一次失败时间。
  • 结合lastb和日志分析:获取更详细的失败记录(如IP、时间)。
  • 配置PAM和auditd:确保记录完整性和可追溯性。
  • 部署安全工具:Fail2ban适合自动防御,OSSEC/Logwatch适合全面监控。