有些技术问题看似简单,但在网上却很难找到真正的解答,搜索引擎诚然强大,搜索出来的东西却是良莠不齐,往往让搜寻答案者莫衷一是。

本文所探讨的Linux下账户锁定策略便是一例,目标说起来很简单,就是当用户在使用ssh登录Linux系统时三次输入错误密码后即锁定该用户,并禁止他继续登录。大家可能都知道,一般实现的方法是利用pam.d,但根据系统差别,配置方法其实有所不同。

1、pam_tally.so与pam_tally2.so的差别

pam_tally.so是老的版本,从RedHat Linux 6开始,pam_tally2.so是唯一可用的程序。所以只要系统存在pam_tally2.so,建议就不要用pam_tally.so了。

这两者之间的差别:pam_tally的“reset”、“no_magic_root”和“no_reset”选项在pam_tally2里没有了。

2、system_auth与password_auth之间的差别

RedHat Linux 6开始,sshd所包含的pam认证文件是password_auth,而不是system_auth,这种情况下,配置如果加到错误的文件里是不起作用的。

本文只介绍pam_tally2的配置,具体如下:

添加位置:/etc/pam.d/system_auth或/etc/pam.d/password_auth文件

添加项:auth required pam_tally2.so onerr=fail deny=3 unlock_time=60

和      account requiredpam_tally2.so

注意:第一行必须加到auth required pam_env.so这行后面,如果加到别处位置,可能不起作用。第二行可以加到所有account配置之后。

附录(FAQ):

1)如何才能在ssh登录时看到账户已锁定的提示?

答:默认是不会显示的。可以修改sshd_config文件中的配置项:ChallengeResponseAuthentication yes

2)怎么查看某一账户的锁定情况?

答:pam_tally2 -u username可显示账户的锁定情况。

3)怎么重置账户的登录失败次数?

答:pam_tally2 -u username -r

4)默认存放账户登录计数的日志文件是什么?

答:/var/log/tallylog

5)怎样将账户锁定策略同时应用到root用户?

答:在auth那行配置添加even_deny_root选项。

6)如果想永久屏蔽某个账户该怎么办?

答:省略unlock_time选项即可,此时需手工才能解锁。

Logo

更多推荐