当前位置首页 > Linux知识

Linux系统发现占用CPU达100%的进程并处理

阅读次数:240 次  来源:admin  发布时间:

转至:https://blog.csdn.net/xinxin_2011/article/details/84936581

服务器使用的是Centos7.2 64位系统。发现服务器异常,一般先想到用top命令查看占用CPU高的进程,但如果是高手入侵,可能会替换掉你系统的一些重要命令。所以建议装系统后,把诸如/usr/bin目录的top、ps、kill等重要命令先备份好。一旦发现被入侵,先检查这些命令是否被篡改,如果你使用凶手的kill,当然怎么也杀不死对方了。

这里发现没异常,直接使用top命令:

Linux系统发现占用CPU达100%的进程并处理

这里是一个名为sustse进程,先别急着kill掉,把PID号(9594)记下来。用ps命令查看进程详细信息:

Linux系统发现占用CPU达100%的进程并处理

赶紧去/var/tmp/目录下看一下,有哪些文件:

Linux系统发现占用CPU达100%的进程并处理

果然有可疑的sustse文件,而且sustse3、kworkerds和kworkerds3与该文件大小一致,应该是副本,都删除掉,并杀死sustse进程:

kill -9 9594

光结束这个进程还不够,一般都会有定时任务能够重启的,这里使用crontab命令查看下:

Linux系统发现占用CPU达100%的进程并处理

果然有,使用crontab –e命令将其删除(操作与vi类似修改文件):

Linux系统发现占用CPU达100%的进程并处理

这样恶意代码暂时就无法启动了,再检查一下启动文件是否有日期异常的,防止系统重启后恶意程序又被启动。需要检查/etc/rc.d目录下的init.d和rcx.d(x从0-6)所有文件。

然后缉拿真凶,使用who命令查看一下用户信息:

Linux系统发现占用CPU达100%的进程并处理

没有异常,检查一下系统最近系统登录信息,看看是否被入侵,使用lastlog命令:

Linux系统发现占用CPU达100%的进程并处理

除了自己root登录过,其他没有异常。再使用last命令列出当前和曾经登入系统的用户信息:

Linux系统发现占用CPU达100%的进程并处理

这里除了自己登录外,还有个218.68.199.250的IP登录过,在18:15分还重启过系统,问题就是他了,入侵者可能创建一个新的存放用户名及密码文件,可以查看/etc/passwd及/etc/shadow文件:

Linux系统发现占用CPU达100%的进程并处理

asswd-是passwd文件最后一次备份,对比两个文件,可以鉴别是否被修改掉。Shadow文件与此类似。

通过查看/var/log/secure日志文件,尝试发现入侵者的信息,这里查看密码验证通过的信息:

Linux系统发现占用CPU达100%的进程并处理

为防止再次入侵,不仅要修改root密码,最好修改ssh登录端口,使用命令“vi /etc/ssh/sshd_config”将默认的22端口改为别的,比如2233。别忘在防火墙里开放这个端口,要不登录不了了,终端执行:

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 2233 -j ACCEPT
iptables-save

为保险起见,查看一下已开放的端口:

iptables -nL --line-number

然后重启ssh服务,执行命令:

systemctl restart sshd.service

这时原来连接会断开的,然后把端口改为2233再重新登录即可。另外如果确认某个IP是恶意的访问(比如上文的218.68.199.250),可以在防火墙中将其禁掉:

iptables -I INPUT -s 218.68.199.250 -j DROP

设置完后别忘了重启防火墙才能生效。

上一篇:解决64位debian下无法安装ia32库的问题
下一篇:Centos7安装JAVA环境jdk1.8(两种方式)