Faillog - Linux中的登录尝试失败

时间:2020-03-05 15:28:51  来源:igfitidea点击:

"faillog"命令显示用户的所有失败登录尝试。
如果尝试过多的尝试太多,则可以使用"faillog"禁用帐户。
在用户无法登录后,可以使用该帐户几秒钟锁定。

faillog命令语法

这些故障存储在名为"faillog"的文件中,该文件存在于/var/log目录中。
"faillog"命令使用此文件(/var/log/faillog)来显示失败的登录。
"faillog"命令在其自己的打印机上输入了用户的任何不成功的尝试:

# faillog
Login Failures Maximum Latest On
student 1 0 06/28/12 15:27:27 +0530 tty1

登录失败后,可以使用-l选项锁定用户指定的时间。
要锁定帐户(例如,学生)1分钟(60秒),请使用以下内容:

# faillog -l 60 -u student
# faillog
Login Failures Maximum Latest On
student 2 0 06/28/12 15:28:32 +0530 tty1 [51s left]

正如我们所看到的,剩余的时间以来登录失败的时间显示在最后一列中。
-u选项用于指定用户名(需要锁定其帐户)。
此外,可以通过-m选项设置登录尝试次数的最大限制。

# faillog -m 0 -u student

此命令将在3个不成功的登录后禁用"学生"帐户。

pam_tally.so:

如果我们仔细阅读,"Faillog"不会记录故障,只需显示它们。
这种尝试的实际监视是PAM_tally.SO模块的责任。
现在,在进入本模块的详细信息之前,让我们快速概述PAM。

可插拔身份验证模块(PAM)

顾名思义,PAM在Linux中执行所有身份验证任务。
但这些模块是"可插拔",这意味着它可以与其他应用一起使用。
PAM不是提供身份验证功能的"程序或者实用程序"。
它是一个模块,它有助于所有需要认证功能的实用程序。
例如,当我们登录到任何终端(看起来的提示:"localhost登录:")在Linux系统上,在后台运行的实用程序是"登录"实用程序。
此实用程序使用PAM模块。
其他公用事业(如SSH(用于远程登录),SU(用于切换用户),AT,Cron(用于调度任务)也使用PAM模块进行身份验证。

所以,让我们回到关于PAM_tally.so模块的讨论。
此模块计数失败的登录尝试并将其存储在/var/log/faillog文件中。
如果系统未配置为使用此模块,则"Faillog"将无法正常工作。
因此,为了配置系统使用此模块,我们需要编辑/etc/pam.d/system-auth文件。
在文件中添加这2行:

auth required pam_tally.so
account required pam_tally.so

my /etc/pam.d/system-auth文件看起来像这样(你可以看到由注释包围的这些行,以粗体和斜体):

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
###---------Added by igi---------###
auth required pam_tally.so
###--------------------------------###
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
###---------Added by igi---------###
account required pam_tally.so
###--------------------------------###
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so