如何监控Linux用户登录尝试 faillog查看失败登录记录

监控linux用户登录尝试的方法有:1.使用faillog查看失败记录;2.配置pam_faillock.so锁定账户;3.监控日志文件实时追踪;4.设置邮件告警。具体如下:使用faillog命令可查看或重置用户登录失败次数,如sudo faillog -u john清除特定用户的记录;通过在/etc/pam.d/sshd中添加pam_faillock.so模块并设置deny=3和unlock_time=900实现三次失败后锁定15分钟;使用tail -f或grep命令监控/var/log/auth.log中的登录尝试,并结合awk统计ip的失败次数;安装fail2ban配置jail.local文件,定义封禁规则与邮件通知,当检测到三次错误密码时自动封禁ip并发送邮件告警。

如何监控Linux用户登录尝试 faillog查看失败登录记录

直接告诉你怎么监控linux用户登录尝试,最简单也最常用的就是用faillog来查看失败的登录记录。

如何监控Linux用户登录尝试 faillog查看失败登录记录

解决方案

faillog命令可以显示登录失败的尝试次数。它会读取/var/log/faillog文件,这个文件记录了每个用户的登录失败信息。要查看所有用户的失败登录记录,直接运行:

如何监控Linux用户登录尝试 faillog查看失败登录记录

sudo faillog

这会列出每个用户的用户名和失败登录次数。如果你只想看特定用户的,比如john,那就:

sudo faillog -u john

如果想清除某个用户的失败登录记录,可以这样:

如何监控Linux用户登录尝试 faillog查看失败登录记录

sudo faillog -u john -r

-r参数就是重置的意思。

另外,还可以设置用户登录失败多少次后锁定账号。这通常是通过pam_faillock.so模块实现的。这个模块会在/etc/pam.d/目录下的各种服务配置文件中使用,比如sshd或login。

如何配置pam_faillock.so来锁定用户?

首先,找到你想要保护的服务配置文件,比如/etc/pam.d/sshd。然后,在auth和account部分分别添加如下行:

auth required pam_faillock.so preauth audit deny=3 unlock_time=900 account required pam_faillock.so audit deny=3 unlock_time=900

这里的deny=3表示允许3次失败尝试,unlock_time=900表示锁定时间是900秒(15分钟)。preauth参数确保在用户输入密码之前就进行检查。audit参数用于记录审计日志。

配置完成后,重启SSH服务:

sudo systemctl restart sshd

现在,如果用户连续输入3次错误的密码,账号就会被锁定15分钟。

除了faillog和pam_faillock.so,还有其他监控方法吗?

当然有。还可以通过监控/var/log/auth.log或/var/log/secure文件来实时追踪登录尝试。这两个文件记录了系统认证相关的事件,包括成功的和失败的登录。

可以使用tail -f命令来实时查看日志:

sudo tail -f /var/log/auth.log

或者使用grep命令来过滤失败的登录尝试:

sudo grep "Failed password" /var/log/auth.log

这会显示所有包含”Failed password”的行,也就是失败的密码尝试。

还可以结合awk等工具来进一步分析日志,比如统计某个IP地址的失败登录次数:

sudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

这个命令会列出所有尝试登录的IP地址,以及每个IP地址的失败次数,并按照失败次数从高到低排序。

如何设置邮件告警,当检测到异常登录时自动发送通知?

这个需要结合logwatch或者fail2ban等工具来实现。logwatch可以定期分析日志文件,并生成报告,然后通过邮件发送给你。fail2ban则可以实时监控日志,当检测到恶意行为时,自动封禁IP地址。

以fail2ban为例,首先安装它:

sudo apt install fail2ban

然后,配置/etc/fail2ban/jail.local文件。这个文件可以覆盖/etc/fail2ban/jail.conf中的默认配置。

添加如下配置:

[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 findtime = 600 bantime = 3600 destemail = your_email@example.com sendername = Fail2Ban action = %(action_mwl)s

这里的maxretry = 3表示允许3次失败尝试,findtime = 600表示在600秒内,bantime = 3600表示封禁时间是3600秒(1小时)。destemail是接收告警邮件的邮箱地址。action = %(action_mwl)s表示使用默认的邮件告警动作。

配置完成后,重启fail2ban服务:

sudo systemctl restart fail2ban

现在,当有人连续输入3次错误的SSH密码时,fail2ban会自动封禁该IP地址,并发送邮件告警。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享