2022-07-27 21:30:41
查看Linux用户登录失败记录可通过faillog命令结合其他工具实现,以下是具体方法及注意事项:
一、使用faillog命令查看登录失败记录查看所有用户的失败登录尝试
sudo faillog显示所有用户的登录失败次数和最后一次失败时间。
需sudo权限,因涉及系统安全信息。

查看特定用户的失败登录尝试
sudo faillog -u username将username替换为实际用户名,仅显示该用户的失败记录。

重置用户的失败登录计数器
sudo faillog -u username -r重置指定用户的失败计数器,常用于账户解锁后清理记录。
使用lastb命令
lastb显示/var/log/btmp文件中的登录失败记录,可直接查看所有失败尝试:lastb
按用户名过滤:lastb | grep username
结合awk过滤特定时间段(需日志中包含时间戳):lastb | awk '/May 10/ {print $0}' # 示例:过滤5月10日的记录
分析日志文件
/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
仅跟踪通过标准登录程序(如login)的失败尝试,SSH密钥认证失败可能不会被记录。
若PAM未正确配置pam_faillock.so模块,faillog可能无法工作。
系统定期轮转日志文件,旧记录可能被压缩或删除。
修改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分钟)。
重启服务
修改后重启SSH或login服务:sudo systemctl restart sshd # 或 sudo systemctl restart login
部署Fail2ban
自动封禁恶意IP,支持SSH、FTP等服务。
配置示例:监控/var/log/auth.log中的SSH失败尝试,封禁IP 10分钟。
使用OSSEC或Logwatch
OSSEC:实时监控日志,发送警报。
Logwatch:生成日志摘要报告,突出显示登录失败事件。
配置auditd审计系统
记录详细审计信息,如:sudo auditctl -w /var/log/auth.log -p wa -k login_failures
搜索审计记录:sudo ausearch -k login_failures
