前一段时间突然收到一条服务器CPU告警,大致看了下是一台测试机,刚刚开始以为是在做压力测试,但是再认真看下服务器的CPU是在极高的负载下发的告警,就去咨询了下发现此时并没有在压力测试,平时如果测试服务没有做压测的时候CPU是几乎负载都极地的,此时服务器突然CPU高负载是极为不正常,所以就连上服务器用glances看了下发现有一个“wnTKYg”的进程使用大量的cpu,在跟踪pid发现有一个二进制文件运行在/tmp目录下的,看了下且上网查询得知是挖矿程序,因为是在测试服务器上服务器的防火墙写的就不是很严格,好吧直接kill掉,再跟踪一段发现二进制文件又被启动,刚刚开始以为是是服务器被shell反弹,在/root/.ssh/known_hosts中也未发现未知ip的授权,于是就跟踪了下系统端口监听,结果过滤排查了一遍发现并没有异常,于是再用glances跟踪了下发现还有一个守护进程于是kill掉,同时根据pid跟踪得发现有一脚本不断重定向系统的cron任务文件中,打开crontab后发现是有一条每隔一分钟启动一次的定时任务,于是直接也删除任务,此时再用find查找整个文件系统发现仅有在/tmp目录下有相关的文件,直接删除此时再跟踪一段发现服务器负载正常,上网查阅了下资料发现wnTKYg一般都是通过端口扫描出通用端口上传上来的文件,自己结合系统日志发现系统中的测试redis是使用默认端口且没有密码防火墙上也是对所以公网开放,最后在iptables上修改添加相应的限制,最后在给redis添加授权,此外其他一些默认服务端口也做相应排查,修改iptables策略,不得不说现在网络上的扫描太多了,在有公网ip的不是生产环境的服务器上就不使用添加相应的防火墙策略和弱密码,这样会带来很大的隐患,且在平时需要根据实环境实时调整相应的服务器监控策略
本文出自 “Jim的技术随笔” 博客,转载请与作者联系!