前言:
公司之前使用的confluence是部署在windows服务器上,因为windows各种问题导致confluence时不时大姨妈,因此决定迁移到linux上,此次问题就是出现在迁移后,访问方式与之前无任何变化,confluence开放了公网访问,ssh端口做了IP限制。
过程:
1.第一次出现问题,发现confluence服务正常运行,zabbix监控也显示各指标正常,但是上传备份文件失败了,然后服务器无法ssh访问,22端口也不通,初步排查是系统文件被修改删除,导致系统文件损坏无法正常进入控制台,因此也没办法找到原因。
2.迁移confluence至新的服务器,使用普通用户启动并且在上面部署filebeat,将系统日志发送到远端的es上,实时监控。
3.三天后,服务器负载很高,登陆服务器后发现有陌生进程一直在占用系统负载,对陌生进程进行溯源,查看/proc/进程下的文件信息,定位到/tmp/下的一个xx.txt文件,发现是一个伪装成txt文件的perl脚本。 虽然不懂perl但是粗略看了下文件,基本了解次perl脚本的作用是修改伪装系统命令,让管理者无法用普通手段登陆服务器后台,然后建立一个socket通道能够让黑客通过perl进入此服务器后台,因为使用普通用户此脚本无法对系统命令和文件操作,因为一直处于死循环状态导致负载变高被发现。
4.删除此脚本,开启confluence访问白名单限制,恢复正常。
总结:
问题原因:
1.使用低版本的confluence,此版本confluence有高危漏洞,可以通过匿名用户进入服务器。
2.confluence开启公网访问,黑客通过遍历找到域名入侵。
3.在linux上使用root用户启动服务,导致黑客通过应用漏洞进入有了root权限,可以对系统文件做修改。
结论:
对于一些常用并且不会持续更新的办公工具一定要做IP白名单限制,服务启动用户一定要使用普通权限。