好的阿杰,我给你整理一份 Linux 服务器中检测与修复恶意软件的完整流程,从发现、分析到清理和加固,便于实战操作。


1️⃣ 常见恶意软件行为

服务器可能出现以下异常:

  • CPU、内存、磁盘使用异常,进程占用高
  • 异常网络连接(频繁访问未知 IP、端口暴露)
  • 网站或服务被篡改,文件被植入后门
  • 异常定时任务(crontab)
  • 系统日志异常或报错

2️⃣ 检测恶意软件的方法

方法一:使用系统自带工具

  1. 查看进程异常
top
ps aux --sort=-%cpu | head -n 20

  • 查找 CPU、内存异常的进程
  • 可结合 lsof -p <PID> 查看进程打开的文件
  1. 检查网络连接
netstat -tunp | grep ESTABLISHED
ss -tunp

  • 查找可疑外部连接
  • 注意未知 IP 或大量同一 IP 的连接
  1. 检查启动项和计划任务
crontab -l
ls -la /etc/cron.*
systemctl list-unit-files | grep enabled


方法二:使用安全扫描工具

  1. ClamAV(开源杀毒)
sudo apt install clamav clamav-daemon   # Ubuntu/Debian
sudo freshclam                           # 更新病毒库
sudo clamscan -r /                      # 扫描全盘

  • 输出中包含 FOUND 的即为疑似恶意文件
  1. rkhunter(Rootkit Hunter)
sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --check

  • 检测 rootkit、后门、可疑文件
  1. chkrootkit
sudo apt install chkrootkit
sudo chkrootkit

  • 快速检测常见 rootkit

方法三:网站/应用文件检测

  1. 对比文件完整性
  • 使用 md5sum 或 sha256sum 对比网站文件与备份:
md5sum /var/www/html/index.php

  1. 扫描可疑 PHP/WebShell
  • 检查修改时间:
find /var/www/html -type f -mtime -7

  • 查找可疑关键字:
grep -R "eval(" /var/www/html
grep -R "base64_decode(" /var/www/html


3️⃣ 修复和清理方法

  1. 隔离受感染文件
mv /var/www/html/suspicious.php /tmp/

  1. 删除恶意进程
kill -9 &lt;PID>

  1. 清理计划任务
crontab -r   # 删除用户 crontab

  1. 恢复文件
  • 使用备份替换被篡改文件
  • 避免直接编辑感染文件
  1. 更新系统和软件
sudo apt update &amp;&amp; sudo apt upgrade -y
sudo yum update -y


4️⃣ 加固服务器建议

  • 更换密码,避免弱口令
  • 限制 SSH 登录
    • 禁用 root 远程登录:PermitRootLogin no
    • 使用密钥认证:PasswordAuthentication no
  • 防火墙:仅开放必要端口
  • 定期备份:文件、数据库
  • 文件完整性监控
    • 使用 AIDE 或 Tripwire
  • Web 防护
    • WAF、防火墙、防御暴力攻击
  • 日志监控
    • 定期检查 /var/log/auth.log/var/log/secure、Web 访问日志

5️⃣ 常用命令汇总

功能命令
查看异常进程top / ps aux --sort=-%cpu
查看异常连接netstat -tunp / ss -tunp
检查 crontabcrontab -l / ls -la /etc/cron.*
ClamAV 扫描clamscan -r /
rkhunter 检查rkhunter --check
chkrootkit 检查chkrootkit
查找可疑文件find /var/www/html -type f -mtime -7
查找 WebShellgrep -R "eval(" /var/www/html