背景

客户要求用pam_tally2来限制输入密码多次错误后锁定

在/etc/pam.d/common-auth中增加下面选项进行限制

auth        required      pam_tally2.so deny=6 onerr=fail no_magic_root unlock_time=120


配置完后手使用ssh进行测试,输入密码错误6次后会锁定120秒,解锁后输入正确密码,pam_tally2计数器清零

查看计数器的命令如下:

pam_tally2 -u maintain 

显示结果

Login           Failures Latest failure     From
maintain            0    

问题

配置完成后通过ansible远程执行命令使用sudo提权的时候,一直提示密码错误,排查问题中发现只要使用SUDO就会增加密码错误次数(密码正确时也一样),当密码正确也不会清零

只能使用手动清零

pam_tally2 -u admin --reset

通过网上查资料发现,这个问题是sudo的一个bug,ubuntu,redhat都有人碰到过
pam_tally2的文档这样解释:

Account phase resets attempts counter if the user is not magic root.This phase can be used optionally for services which don't call pam_setcred(3) correctly or if the reset should be done regardless of the failure of the account phase of other modules." 

这个问题一个可能的原因是sudo模块在执行具体动作之前关闭了pam的session,没有正确调用pam_setcred(),导致返回失败的错误码,pam_tally2计数器累加。

解决办法

有一个临时解决办法就是
auth required pam_tally2.so deny=6 onerr=fail no_magic_root unlock_time=120行后面增加

account     required      pam_tally2.so  

本博客所有内容采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

转载文章请注明:pam_tally2计数器在每次sudo时都增加的BUG - https://yangxx.net/?p=3709

分类: linux

young

记住该记住的,忘记该忘记的,改变能改变的,接受不能改变的!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

我不是机器人*