默认su
行为:
system@sword:/etc/pam.d$ su - test
Password:
su: Authentication failure
<su exits>
当有人输入错误密码时,我需要配置“延迟”,以防止我的系统受到字典攻击。为了测试这个配置,我想在 ubuntu 中配置su
usingPAM
来实现这样的行为:
system@sword:/etc/pam.d$ su - test
Password:
su: Authentication failure
<delay for "y" seconds>
<re-asks password>
Password:
su: Authentication failure
<delay for "y" seconds>
<su exits>
我如何使用PAM
或通过任何其他方式(如果需要)实现此目的?
答案1
最简单的解决方案是(取决于您的发行版)修改/etc/default/su
或/etc/login.defs
设置FAIL_DELAY N
其中N
是正整数(秒)。
这不会su
重复提示,但会N
在返回 shell 之前强制等待几秒钟。
当然,这并不能阻止人们提前Ctrl-C
终止su
。
您可以通过 PAM 编辑
/etc/pam.d/su
并添加以下行来实现相同的结果
auth optional pam_faildelay.so delay=3000000
靠近文件顶部(在其他auth required
设置之前)。