一次服务器异常事件记录 Ubuntu ntpd进程cpu利用率过高

笔者ubuntu小小小白,p都不懂。现在问题虽然解决了,但是仍然不知道是怎么造成的,应该怎么加密端口,是不是被弄成矿机了。。。只能常备份文件多观察系统状态了。


操作系统: Ubuntu 16.04

问题:一个叫ntpd的进程占用cpu利用率过高

top截图
htop截图

pid 4313显示ntpd,用了400%的cpu。

Network Time Protocol daemon(ntpd) 常驻进程,应该是用来对时的。我尝试kill 4313进程,过不了几秒钟,这个进程换了一个pid,又出来了。重启系统该进程自动启动。当时第一反应是进程可能自己死循环了。。

上网学习了一下ubuntu的ntpd相关,找到了有人有macOS的类似问题,有可能是对时的进程链到旧的server上了[1][2]。所以我打开settings -> date & time ->  Automatic Date & Time, Automatic Time Zone, 没有效果。Cpu利用率还是居高不下。失败!

后来看stackoverflow上有人说ntpd有很多种,Ubuntu默认用的不是ntp/ntpd,而应该是叫ntpdate(当然到现在我也不知道这是不是真的),并且建议用命令设置ntpd[3]。这时候我发现我没有ntp/ntpd/ntpq的命令:

man ntpd # No manual entry for ntpd

which ntpd  #显示为空,我根本没安装ntpd

我本以为这种对时的东西是系统里自带的,在找安装包的时候发现也没有:

dpkg -l | grep ntp  #只有这个显示有Network Time Protocol Daemon,ntpd没有

我以为ntp,ntpd这些东西是相互调用的,因为我没装ntpd所以出问题了,于是我就

sudo apt-get install ntpd

安装上了这个包,重启了服务器。结果cpu还是400%居高不下。失败!于是又删了。


再深入调查的时候发现有点不对头了。。没有安装东西在运行,怎么可能呢?

终于在中文网站找到了有人和我一样的问题,root下的ntpd利用率过高[4].  他最后的结论是被攻击了。于是我按照他的步骤一步一步做(有些当时没截图已经找不到了,就笔录了):

ps -ef | grep ntpd  #输出有一个root下的进程

但是没有/usr/sbin/ntpd这东西。

pstree -p  #显示开了8个进程(kill了以后又自动生成了14503的ntpd进程,仍然占400%cpu)


pstree -p截图

跟上面网站里的人遭遇很相似。

在进程目录下找执行的程序:

cd /proc/14503

sudo ls -l exe

输出:

定位到执行文件

strace的输出,看不懂。。但是应该不是什么好东西。。因为和那哥们儿的输出结果类似:

sudo strace -p

sudo strace -cp

找到 /cpu/,只有/bin一个文件夹,里面是些实行文件和奇奇怪怪的东西,“?”文件是啥。。有的打开了也看不了。。

这里面也有cron.d文件。虽然看不懂,但是估计伪装进程的程序都在这儿了。

把bin文件夹全TM删了,杀掉进程:

sudo rm -rv bin

sudo kill 14503

cpu利用率回复了,并且进程没有再复活。


目前没有重启,不知道删没删干净,会不会重启后再次出现。htop的界面一直开着观察。



ref: 

1, https://discussions.apple.com/thread/7390949

2, https://apple.stackexchange.com/questions/275453/macos-ntpd-uses-more-than-100-of-cpu

3, https://askubuntu.com/questions/254826/how-to-force-a-clock-update-using-ntp

4, https://lax.v2ex.com/t/471499

你可能感兴趣的:(一次服务器异常事件记录 Ubuntu ntpd进程cpu利用率过高)