良许Linux教程网 Linux教程 监测Linux上失败的登录尝试方法分享

监测Linux上失败的登录尝试方法分享

登录失败可能是正当的人为错误,也可能是企图闯入Linux系统的尝试,但无论怎样,它们都可能标记出了值得关注的举动。

在Linux服务器上重复的失败登录尝试可能表明有人企图闯入帐户,或者仅仅意味着有人忘了密码或输错密码。本文介绍了如何检查失败的登录尝试并检查系统的设置,查看何时锁住帐户以处理问题。

监测Linux上失败的登录尝试方法分享监测Linux上失败的登录尝试方法分享

您要了解的第一件事是如何检查登录是否失败。以下命令在Ubuntu和相关系统上使用的/var/log/auth.log文件中查找登录失败的迹象。有人尝试使用错误或拼错的密码登录时,失败的登录将显示以下行:

$ sudo grep "Failed password" /var/log/auth.log | head -3 
Nov 17 15:08:39 localhost sshd[621893]: Failed password for nemo from 192.168.0.7 port 8132 ssh2 
Nov 17 15:09:13 localhost sshd[621893]: Failed password for nemo from 192.168.0.7 port 8132 ssh2

您可以使用这样的命令按帐户汇总失败登录的情况:

$ sudo grep "Failed password" /var/log/auth.log | grep -v COMMAND | awk '{print $9}' | sort | uniq -c 
     22 nemo 
      1 shs 
      2 times:

该命令按用户名(grep输出的第9列)汇总失败的登录。它避免了查看含有“COMMAND”一词的行,跳过含有“Failed passwords”短语的查询(比如运行上面运行的命令的人)。 “times:”字符串表明重复尝试的次数比报告的次数还多。这些来自含有“消息重复5次:”的行,快速连续多次输错密码后,这些行可能被添加到日志文件中。

您可能要检查的另一个方面是失败的登录尝试来自何处。为此,如本例所示,将您关注的字段从第九个更改为第十一个:

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

比如说,如果您发现多个用户的失败登录来自单单一个系统,这可能特别可疑。

在RHEL、Centos和相关系统中,您可以在/var/log/secure文件中找到与失败登录有关的消息。您可以使用与上述基本相同的查询来计数。只需更改文件名,如下所示:

$ sudo grep "Failed password" /var/log/secure | awk '{print $9}' | sort | uniq -c 
      6 nemo

核查/etc/pam.d/password-auth和/etc/pam.d/system-auth文件中的设置。添加这样的行将强制执行您的设置。

检查faillog

您可能关注过faillog命令,但是该命令查看的/var/log/faillog文件如今似乎在许多系统上并没有使用。如果您使用faillog -a命令,会得到类似如下所示的在时间列中列出12/31/69的输出,很明显该文件并未使用。

$ faillog -a 
Login       Failures Maximum Latest                On 
 
root            0        0   12/31/69 19:00:00 -0500 
daemon          0        0   12/31/69 19:00:00 -0500 
bin             0        0   12/31/69 19:00:00 -0500 
sys             0        0   12/31/69 19:00:00 -0500

显示的日期和时间可以追溯到Unix的开始(01/01/70)――可能针对本地时区进行了更正。如果您运行下面显示的命令,可以证实文件不是空的,但不包含实际数据:

$ ls -l /var/log/faillog 
-rw-r--r-- 1 root root 32576 Nov 12 12:12 /var/log/faillog 
$ od -bc /var/log/faillog 
0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0 
* 
0077500

如果faillog文件确实在使用中,您应该会看到最近的活动,并不提及1969错误提示。

如何回应?

失败登录的原因有很多。可能是您的一个用户在大写锁定键开启的情况下试图登录,却没有注意到。也许用户最近更改了密码,却忘了更改密码这回事,尝试使用旧密码。也许用户在尝试在其他系统上使用的密码。如果您在运行查询时经常出现某个特定的帐户,应调查一下。然而,偶尔失败的登录尝试很常见。

检查设置

要查看系统如何经过设置来处理失败的登录,请检查/etc/pam.d/common-auth文件。它用于带有Linux可插拔身份验证模块(PAM)的系统。该文件中的两个设置控制着暂时锁定帐户之前允许多少次失败的登录尝试以及锁住该帐户多长时间。

六次失败的登录尝试后,这样一行将使PAM锁住帐户。锁住时间将持续五分钟(300秒)。

auth required pam_tally2.so deny=6 unlock_time=300

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部