linux中毒了怎么办?

1、如何判断是否中毒

一般服务器中毒都是给别人挖矿,其最明显的表现就是cpu消耗很高,或者服务器整体的负载很高。而且是持续性的,不会随着时间的流失而产生波动。甚至是在凌晨业务低谷期时,cpu的占用率还是100%。如果出现了这种情况,大概率是中毒了。

你还可以使用htop命令查看消耗cpu最高的进程是什么。如果不是你的业务进程(例如java、go、python),而是一些你没听过的进程名称。比如systemd-bash等奇怪进程在占用了你大部分的cpu使用率,那么你也要考虑自己是否已经中毒了。

#安装htop
yum install -y htop

2、如何查杀病毒

对于电脑病毒的查杀无外乎3点,只要抓住了这3点,再厉害的病毒也能被清除。

  • kill掉病毒的进程,让病毒停止运行
  • 发现病毒本体的位置,删掉
  • 找到启动病毒的触发点,防止他再次启动

2.1、杀死病毒进程

这一步操作起来比较简单,使用htop,找到cpu最高的进程,然后使用kill命令,就可以把病毒杀死。但是一般来说,杀死病毒之后病毒还是会自启动。因此我们还是得先找到病毒是如何启动的。

2.2、找到病毒的自启位置

大部分病毒都把自己的启动放到了定时任务之中。你可以执行

1
crontab -l

查看具体的定时任务,如果看到任何不熟悉的定时任务,不要由于,干掉他。下面就是一个病毒的定时任务的例子:

1
60 * * * * /root/-bash >/dev/null 2>&1

进入到定时任务列表vi /etc/crontab,将定时任务删除。

另外还需要注意下面这几个目录:

  • etc/cron.hourly
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monthly

这几个目录分别代表每小时、每天、每周、每月执行一次,我之前就经历过有病毒藏在这些目录下。建议拿相同没中中毒的服务器对比一下这些文件夹下面的具体文件。如果发现有不同的文件存在,那么这些不同的文件极有可能就是病毒触发点。

最后/etc/cron.d目录下面也是可以保存定时任务的,把你觉得可以的文件都排查一下。

2.3、找到病毒本体

厉害一点的病毒在运行之后会删除自身,但是我们还是可以找到病毒的位置。虽然他被删除了。

1
lsof -p 病毒进程号

上面的命令可以列出当前进程打开的所有文件。

lsof查病毒

3、如何防止服务器感染病毒

在互联网中,每时每刻都有无数的漏洞扫描工具在寻找着可以侵入的机器。通常这些扫描工具都会扫描常见的应用的端口好,然后试探是否存在弱口令、和已经曝光可以利用的高危漏洞。因此为了防止服务器沦为肉鸡,我们要做好以下几点:

  • 只向外网开放必要端口
  • 不要使用应用的默认端口(比如mysql就不要使用3306端口)
  • 禁止使用弱口令,特别是暴露在公网上的服务

最常见的被入侵的原因是redis没设置密码,暴露在公网、而且还是用的默认端口。