前一段时间,某公司网站服务器中了病毒,我去帮人解决,跑了四趟,重装了两次系统,犯了若干低级错误,也走了许多弯路,一言难尽啊。
我接手之前的情况:Linux服务器中木马病毒后,技术人员按一些网络教程操作,造成服务器彻底瘫痪,无法启动。
第一次查看情况,用CentOS6的U盘启动后发现:
1、服务器两个分区,boot分区和lvm分区,lvm分区有三个lv,root、swap和home;
2、boot分区无内核和grub文件,疑似被误操作删除;
3、vgchange后,挂载lvm分区,分区完整,数据都还在。
确定解决方案,将数据备份,并重装系统(为什么不直接修复?呵呵)。
第二次备份数据,重装系统。
1、用CentOS6的U盘启动后,挂载了一个移动硬盘,将lvm上的数据复制到上面,结果发现真坑,几百G的数据,得复制好几个小时,算了,把原root分区有用的文件先复制到home分区;
2、安装系统。安装时突然想到还有个8G的swap分区,直接把这个8G的分区格式化成root分区不就行了?这样,原root分区得以保留下来(前面都在做无用功。。。);
3、系统安装过程很顺利,将原root分区文件全部复制到home分区,删掉,重新划分lvm分区,恢复到之前分区状态(lvm太方便了);
4、安装后不让联网(别问我为什么),于是从别的机器上下载好的两个DVD的iso文件,用U盘复制到机器中,挂载为安装源,yum安装apache、php、mysql,从原系统文件中将配置文件找出来,apache和php没问题,顺利启动运行。mysql数据则是找到了一个去年备份的sql文件,导入。怀着激动的心情,打开网站,网站前台页面无法访问!!后台却可以访问。排查半天,无果。
5、由于mysql备份较早,没有后来网站更新的数据。于是又开始折腾将原/var/lib/mysql中的数据恢复,一是Mysql数据库版本不清楚,二是数据表部分为InnoDB,折腾很长时间没弄好。算了,时间晚了,先这样吧。
6、由于直接在机房操作不方便,应对方要求,没有关掉ssh端口(此处为后面重装创造了条件),后面许多操作是局域网ssh登录进行的。
7、回家途中突然想明白前台页面无法访问的原因,应该是犯了一个低级错误:网站目录权限问题(后来证实确实如此)。
第三次修复网站问题,恢复mysql数据。
1、修改网站目录权限,前台页面访问恢复;
2、下载本站的wnmp一键包,将原/var/lib/mysql中的网站数据文件复制到一键包中,删掉InnoDB引擎的部分表(没用的表),成功将其他表的数据恢复出来,导入到网站数据库中,全部网站数据恢复。
3、第二天早晨上班路上,想到一个问题,他们不会没防火墙吧?用手机ssh登录服务器,成功!
一台开放到外网的服务器、曾经中过木马、默认22端口、弱密码,后果是什么?
果然,下午就跟我联系说服务器经常卡住,我登录一看,发现木马!!
以前也给人解决过挖矿的木马,这次的木马又有新的特征:
1、将病毒可执行文件用vim打开,里面除了乱码,还有一些创建文件的操作,代码显示病毒不断检查这些文件是否存在:
/proc/%d/exe
/etc/daemon.cfg%s/%s%s/%s.sh
/etc/cron.hourly/%s.sh
/etc/init.d/%s
/etc/rc%d.d/S90%s
/etc/rc.d/rc%d.d/S90%s
如果不存在,就自动生成随机文件名的文件。
2、木马不断的杀掉自己的进程,并且创建进程名称随机的10来个新进程(进程名如:ps、ls、top等常见命令),因此无法用ps -ef显示进程id或进程名称来杀掉进程。使用进程id和进程名称杀它时,进程id或进程名称已经不存在了。
尝试过的方法:
1、将/etc/init.d/和/etc/cron.d等文件夹中的可执行文件删掉或权限改成000,均无效,病毒检测到后,会重新创建一个名称随机的文件。
2、写了个脚本,将ps出来的可疑进程kill掉,不起作用。可能是由于不可能同时干掉所有的进程,或者还有其他进程存在,很快就会又出现10来个进程。
后来想,算了,不折腾了,重装吧!
第四次,重装,重新配置网站。
1、这次由于有上次经验,很快就重装了,网站配置也很顺利;
2、做好基本的安全防护:修改ssh端口、禁用root登录、只允许key登录、配置好iptables等。
经过这次折腾,也算积累了一些经验吧。
路过了
为啥不联网 ……
如果有这种奇怪要求的话我是不屑于帮忙的
安全狗虽然没什么用 但有比没有好,不嫌麻烦的话就自己配置iptables
仍然记得大学时学校服务器卡住(被学生攻击了,管机房老师自称会Linux,都是别人装好走的,把我从教室拎去机房这真是。。。)
当初恢复数据后用的linuxeye的lnmp(现在没了 改用OneinStack了 因为懒)
也是网站打不开 折腾了好久最后ls -la看到root root
chmod chown后网站回复访问
有时候就是这样,一点点小问题卡了好久。最后才发现原来是意想不到却早该想到的问题起因的
哈哈,每个人都必须踩一些坑才行的。