我们这个应用是装在一台红旗的Linux上,机器是托管的突然有一天用户打电话来说无法ssh到该机器,由于是hp proliant 20c刀片,所以费了好大劲才找个接口转换器连接到console。
现象1、root无法登陆,明明是正确的密码,为什么登陆不进去呢????疑惑ing
2、又重新要了个普通用户,恩,这下可以进去了,于是想再试试root,确认究竟是不是连错了机器,发现还是不对,于是exit用户,然后在别的几个刀片上试了一试,感觉就应该是这台机器,于是又重新连接到这台刀片,这个过程大概有10分钟,奇怪的事情发生了,现在提示密码错误,严重质疑该机器已经被肉鸡了;
3、立马通知使用人,使用人确定了这台机器名就是他们的服务器,看来我连得没错,又说应用可以暂停,进单用户模式修改root口令,于是重新启动,进入单用户模式,进入红旗单用户模式步骤如下:
1、硬重启
2、启动时有一个等待选择的界面,回车进去,对着默认的启动选项按“e”进入编辑模式
3、选择带kernel的那项,按“e”进入编辑模式
4、在‘ro’字母前面加“single ”(后面有个空格)在最后面的‘/’后面加个 空格+s
5、按“b”启动即可
6、命令行状态下输入passwd root ,然后reboot即可。
也可以
chmod 600 /etc/shadow 或者 chmod u+w /etc/shadow
vi /etc/shadow
把第一行root后面两个冒号中间的加密内容全部清空即可,即只剩下两个冒号挨着
然后
chmod 400 /etc/shadow 或者 chmod u-w /etc/shadow
reboot
第6步里面的过程都试过了,但是用“passwd root”的时候提示一个错误“unknown user name ‘root’”,修改 /etc/shadow文件以后重启仍然提示密码错误,用重新进单用户模式修改普通用户密码,结果还是一样,此时自尊受到严重挑战,无奈拨打红旗克服800-810-8362,克服让我进单用户模式检查passwd文件是否有问题,不查不知道,一查吓一跳,这个文件里面的全部内容已经丢失,里面被改写成了“1234”!!!!!!当时可以基本肯定有人控制了这台机器。顾不得多想,先手动修改/etc/passwd文件,这个可以参照其他相同品牌和型号的linux系统,当然我这是红旗dc5.0,把root用户和那个需要ssh的用户手工添加进去。重启,这样总算可以执行“passwd root”和“passwd ***”了。
后来我发现有一个“passwd-”的文件,后来就很怀疑是不是用来备份passwd的,网上一搜果然如此,有个大哥如此解释“Its for backup. When you delete users or groups, the group and passwd files and their shadow files will be backed up as xxxx-.”,所以把内容copy过来就行了。但是有些用户就需要重新设置密码了,比如我原来有个自己添加的用户user1,现在就需要重新设定一下user1的密码才能让这个user1用户生效,否则user1就无法使用无法登陆。
在此之前还出现一个问题,毕竟给被人使用,就得把ssh给远程打开,但是发现一个问题执行“service sshd start”的时候报错“Privilege separation user sshd does not exist ”,现在想来应该还是passwd的问题,但当时的解决办法就是
修改/etc/ssh/sshd_config文件
将其中 UsePrivilegeSeparation yes修改为
UsePrivilegeSeparation no
虽然能解决问题,但是降低了ssh的安全级别。
最后还好,终于把用户的需求满足了,我仔细查看了日志,发现2009-7-5到2009-7-16日的日志全部消失,现在已经可以肯定这台机器被人搞了。但是具体的漏洞出在哪里还在研究。不管怎么样,让用户们先备份一下数据,系统还得再重新做一下。
在这里感谢那些帮助过我的同事以及红旗克服的工作人员。同时鄙视一下黑我机器那哥们,太不地道!有本事做点好事啊!那么多需要你出力的地方,你却只跑来黑自己人的机器,太损!