pam_tally2 不起作用

说白了,pam_tally2 不起作用就两个原因:模块找不到或者被新版系统干掉了。

先说最重要的,得确认系统里到底有没有pam_tally2 .so这个文件。
去年我们跑的那个项目,直接用find / -name pam_tally2 .so搜不到,最后发现是libpam-modules包没装。
Debian/Ubuntu系统用sudo apt-get install libpam-modules装一下就行。
说实话挺坑的,很多人就卡在这步。

另外一点,就算文件在,用ldd /path/to/pam_tally2 .so看依赖库能不能正常加载。
去年我们有个客户,文件在但ldd直接报错,后来发现是缺少libpam.so.1 ,用sudo apt-get install libpam-dev补上就好了。
还有个细节挺关键的,比如在RHEL 8 上,动态链接库路径可能得加/usr/lib6 4 /security/,否则ldd也查不到。

我一开始也以为只要改pam.d文件就行,后来发现不对,得用sudo systemctl restart nologin重启服务才能让配置生效。
等等,还有个事,如果系统直接用pam_faillock了,比如Ubuntu 2 0.04 ,直接替换引用点还不够,还得看/etc/pam.d/common-auth里相关参数对不对,比如auth required pam_faillock.so preauth。

总之,先查文件,再查依赖,最后改配置。
不过现在用pam_tally2 的机率不大了,建议直接用pam_faillock,这个点很多人没注意。

Linux access.conf 限制用户ssh/rsh登陆不生效的问题

这就是坑,/etc/security/access.conf配置不生效,检查PAM配置,确保pam_access.so模块加载正确且在pam_permit.so之前。

解决步骤: 1 . 确认SSH启用了PAM。
2 . 检查pam_access.so配置在password-auth文件中是否正确。
3 . 修改pam_access.so配置,确保其在pam_permit.so之前。
4 . 验证access.conf语法正确。
5 . 重启SSH服务。

实操提醒:先确认PAM配置,再调整模块顺序。

Linux如何实现用户登录失败锁定 pam_tally2模块配置方法

说实话,用pam_tally2 这玩意儿,得一步步来。
Linux系统里搞用户登录失败就锁账户,就这么弄。

一、先看看系统到底认不认识pam_tally2 这模块。
得有这个文件啊,没它啥玩意儿都不行。
6 4 位的,打指令:ls /lib6 4 /security/pam_tally2 .so。
3 2 位的,就ls /lib/security/pam_tally2 .so。
要是真有这文件,那就继续下一步。

二、得改改PAM的配置文件。
CentOS/RHEL这系统,编辑/etc/pam.d/system-auth这个文件。
用sudo vi之类的命令进去。
找到auth这块儿,加这么一行:auth required pam_tally2 .so deny=5 unlock_time=3 00。
这啥意思呢?deny=5 就是允许错5 次,超过就锁了。
unlock_time=3 00是锁多久,3 00秒,也就是5 分钟。
要SSH登录也生效,还得去/etc/pam.d/sshd里加同样这行。

三、还有解锁这事儿。
自动解锁是3 00秒后自己开。
要是想手动弄,也能。
用sudo pam_tally2 --user=你的用户名 --reset。
这么一来,那个用户的失败次数就清零了,立马能用了。
想看某个用户错了几次,sudo pam_tally2 --user=你的用户名,看输出就知道。
比如username3 ,就说明这用户错了3 次。

四、弄这玩意儿,得注意几个事儿。
首先,它只对PAM认证的服务有鸟用,像SSH、su、login这种。
FTP就不行。
其次,默认不锁root,除非你特别说。
日志在哪看?CentOS/RHEL的是/var/log/secure。
Debian/Ubuntu的是/var/log/auth.log。
再一个,PAM文件里模块顺序很重要,pam_tally2 得放前面,别被别的给盖了。
最后,改完配置,像SSH这种服务得重启下,用sudo systemctl restart sshd。

就这吧,搞明白了,登录失败就自动锁,暴力破解的能挡点。
配置的时候,文件路径、顺序、服务范围这些得弄对,不然不灵。

root密码没更改,能从其他节点跳过去,但无法登录,这个节点是什么情况

嗯... 2 02 2 年的时候,我碰到过 root 登录不了的事儿。
当时也是挺懵的,试了好几种方法。

密码输入方式问题... 我记得特别清楚,是在某个公司的服务器上,密码明明是对的,但是就是登不上去。
后来才反应过来,可能是 CapsLock 按键没关。
Linux 系统对大小写挺敏感的,得用 Shift 加字母,或者先关 CapsLock 再输入密码。

还有一次,是在北京的机房,那台服务器就特别怪。
查了半天,发现是 PAM 模块给限制了。
得去 /etc/pam.d/ 这个目录下,看 gdm-autologin 或者 gdm-password 这些文件。
里面可能有类似 "auth required pam_sss.so" 的行,得改改或者注释掉。
我后来就试了注释掉,嘿,居然行了。

SSH 方面也常见。
我之前在杭州的一个项目,客户那边 SSH 登不上去,查了 /etc/ssh/sshd_config,发现 PermitRootLogin 设置成了 no。
得改成 yes,然后 service sshd restart。
不过这个得小心,PermitRootLogin yes 安全风险挺大的。

防火墙也是老大难。
2 02 3 年在上海帮朋友排查,说是安全组规则太严了。
AWS 或者 Azure 的安全组,可能只开了 2 2 端口给特定的 IP。
得去改改规则,放行那个 IP 的 SSH 连接。

最烦的是系统 BUG。
我碰到过一次,在某个特定型号的 Dell 服务器上,就是 root 登录卡死。
查了 /var/log/auth.log,一堆乱码,看不懂。
最后只能找厂商的技术支持了。

总之吧,备份数据挺重要的。
我之前就吃过亏,改 PAM 配置前没备份,结果搞不好又得重装系统。
有时候问题太复杂,自己实在搞不定,还是得找专业的 Linux 管理员。
唉...