Faillog - Linux中的登录尝试失败
"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