情景一:使用 preauth 阶段的 faillock
-
黑客开始尝试登录系统,每次尝试输入不同的用户名(即使没有输入密码)。
-
根据 preauth 设置,每尝试一个不存在或禁用的用户名,都会被视为一次登录失败(例如,通过SSH服务,输入用户名后按回车即可视为一次尝试)。
-
如果黑客在三次尝试不同的用户名后仍未找到有效的用户名,那么根据 deny=3 的设置,该IP地址或者账号(取决于PAM的具体实现方式)将会被锁定,禁止进一步的登录尝试,直到指定的解锁时间到达。
情景二:使用 authfail 阶段的 faillock
-
黑客已经知道了某个有效用户名,并开始尝试猜解其密码。
-
每次输入错误的密码后,根据 authfail 设置,这会被记录为一次登录失败。
-
当黑客连续三次输入错误的密码后,该用户名对应的账户会被锁定,无论后续尝试何种密码,都将无法成功登录,直至解锁时间到达。
总结一下,preauth 设置主要针对的是用户名猜测,而 authfail 设置则针对的是密码猜测。两者结合能提供更全面的防护,限制恶意登录尝试。