背景
晚上,手机收到某服务器cpu异常报警提醒,以为是jenkins日常打包会使内存升高,没有在意,后面再看了一下这回是cpu报警,于是登陆服务器查看异常
CPU使用率异常
使用top命令,查看CPU使用率超高,如下
一看这个进程显然就不是正常的进程,这台linux服务器只跑jenkins容器,不会有其他进程,果断杀死进程,并且根据进程号查看详细可执行文件路径
显然这个路径也是不正常的。
查看定时任务是否异常
定时任务也没异常的脚本,但是不光要看这个,还要看/etc/cron*目录底下是否有异常
最快速的办法就是检查这些目录底下有没有新文件,按文件生成日期查看是否有最新的
检查开机启动项是否异常
查看也没有异常脚本
检查当前登陆用户
目前就我自己在登陆
检查免密登陆授权文件是否有异常
查看登陆日志
从18:10分时就开始有异常IP和不存在的用户登陆的信息,这个IP查一下是德国地址
再往前查,发现,其实前面就已经存在异常信息了
查看运行异常程序的用户
显然进程号24721的进程又是异常进程
再根据进程号过滤出具体的运行程序
底下这个就是该死的木.马脚本
补救措施
1、除了马上杀死占用CPU高的进程外,将进程的可执行文件删除
2、将过滤出使用jenkins用户运行的进程号杀死,并且找出可执行文件删除
3、/etc/hosts.allow添加只允许安全的IP和内网网段使用sshd协议,/etc/hosts.deny添加拒绝所有地址使用sshd
4、修改root密码,使用随机复杂密码
5、免密登陆文件控制权限
chmod 400 /root/.ssh/authorized_keys
chattr +i /root/.ssh/authorized_keys
总结
我想此次中木.马应该是将服务器ssh端口暴露给云主机访问并且密码太简单被人家破.解了吧。以后没事还是尽量不要将内网服务器暴露出去,非要暴露也得做好安全措施,还好这只是一台不是很重要的服务器。