前言
昨天深夜一点多接到客户电话,客户说OS用户下午下班前还能正常登录。因为晚上一点半需要关闭所有服务进行迁移,但是用户无法登录了,导致后续流程无法执行。我让他先通过root用户紧急修改了密码,先保证业务正常流转。
问题
1、为什么OS用户突然无法登录?
思考方向
1、拥有root账号的用户是否临时更改了原OS密码,没有及时告知相关人员?
2、是否有其它服务器使用该OS账号与当前服务器通信,改密码后是否同步了所有使用该服务器的相关用户密码?
3、是否有OS级别的审计、安全漏扫等工具正在工作,导致非服务器IP被禁止访问?
检查
第二天一大早就跑到公司与客户face to face的沟通,仔细验证流程并询问拥有root账号的用户是否更改过OS密码。均未得到想要的答案,但是他们告诉我网管会定期更新密码并执行安全漏扫。然后找到网管询问是否同步了所有使用该服务器账号的用户新密码,得到了肯定的答复。最后我询问了他们昨晚是否有OS级别的审计或者安全漏扫工作,同样得到了肯定的答复,但网管回应安全漏扫并未成功执行,看了下安全漏扫的配置文件,发现新密码未同步。最后破大案了。
结语
以上的处理思路并不包括所有,只是当下能想到的几个方向。同时可以通过Linux级别查询,不需要浪费太多时间在询问用户的身上。毕竟有时候大家都想着甩锅,所以通过事实说话才是最有力的。所以接下来我将提供如何在Linux上排查此类问题的方式。
linux如何排查用户账号被锁
1、验证账号是否能够登录
-- 远程连接错误
login as: test
qa@192.168.211.132's password:
Access denied
qa@192.168.211.132's password:
2、查看账号是否被锁
[root@qaupdb ~]# passwd -S test
oraprod LK 2025-04-28 0 99999 7 -1 (Password locked.) -- 如果用户后面出现 Password locked. 。有两种可能
-- 用户并没有被设置初始密码
[root@qaupdb ~]# grep qa /etc/shadow
qa:!!:20206:0:99999:7::: -- 此处未显示密文,则代表着当前用户并未设置初始密码。无法实现直接登录,仅通过root用户切换
-- 用户账号被锁
[root@qaupdb ~]# grep qa /etc/shadow
qa:!$1$tPwjPzUA$wBqNPzAw5dxll2tm5KtVv1:20206:0:99999:7::: -- 如果用户账号被锁,在密文前会有一个感叹号。
3、查看用户账号登录失败次数
# 注意:如果 Failures 出现异常次数,考虑是否存在程序登录、或密码暴露被强行破解测试
[root@qaupdb ~]# pam_tally2 --user test
Login Failures Latest failure From
test 300
4、查看用户登录信息
注意:此处通过Linux系统的安全日志查看,当前用户被频繁登录的客户端IP是哪
$ tail -n 100 /var/log/secure
Apr 28 16:42:06 qaupdb--【主机名称】 su -- 【通过账号实现切换的信息,具体由哪个账号切换在最后显示】: pam_unix(su-l:session): session closed for user oraprod -- 【执行切换账号的用户 oraprod】
Apr 28 16:43:10 qaupdb useradd[11728]: new user: name=test, UID=501, GID=500, home=/home/test, shell=/bin/bash
Apr 28 16:43:25 qaupdb passwd: pam_unix(passwd:chauthtok): password changed for test
Apr 28 16:44:07 qaupdb usermod[11738]: lock user `test' password
Apr 28 16:44:30 qaupdb sshd -- 【sshd的方式通过远程登录实现】[11745]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.220.170 user=test -- 【当前用户显示的认证失败的用户】
Apr 28 16:44:32 qaupdb sshd[11745]: Failed password for test from 192.168.220.170 -- 【当前IP显示的是用认证失败账号登录的客户端地址】 port 51620 ssh2
Apr 28 16:45:14 qaupdb usermod[11754]: unlock user `test' password
Apr 28 16:45:17 qaupdb sshd[11745]: Accepted password for test from 192.168.220.170 port 51620 ssh2
Apr 28 16:45:17 qaupdb sshd[11745]: pam_unix(sshd:session): session opened for user test by (uid=0)
Apr 28 16:45:17 qaupdb sshd[11760]: Accepted password for test from 192.168.220.170 port 51635 ssh2
Apr 28 16:45:17 qaupdb sshd[11760]: pam_unix(sshd:session): session opened for user test by (uid=0)
Apr 28 16:45:17 qaupdb sshd[11763]: subsystem request for sftp
Apr 28 16:45:20 qaupdb sshd[11745]: pam_unix(sshd:session): session closed for user test
Apr 28 16:45:21 qaupdb sshd[11760]: pam_unix(sshd:session): session closed for user test
5、清空登录失败次数
$ pam_tally2 -r -u test
6、解锁用户
$ usermod -U test
7、登录即可