CentOS 6.8服务器遭恶意入侵,如何阻止对外随机IP请求?
解决CentOS服务器对外发起随机IP请求的方案
看你的描述,已经清理了恶意PHP文件、禁用了可疑cron,但仍有对外随机IP请求,这在服务器被入侵后很常见——恶意代码往往会藏在多个隐蔽位置,不会一次性被清理干净。结合你的环境(CentOS 6.8、Drupal 7.51、PHP 5.3.3),下面是一步步的排查和修复步骤:
1. 定位发起请求的进程
首先得搞清楚到底是哪个进程在对外发请求:
- 用
netstat -tulpn或者ss -tulpn查看当前活跃的网络连接,重点找ESTABLISHED状态的外部连接:
找到可疑的PID后,用netstat -tulpn | grep ESTABLISHED | grep -v "你的合法IP段"ls -l /proc/<PID>/exe查看进程对应的实际文件路径,判断是合法的Apache/PHP进程,还是恶意程序。 - 用
ps auxf查看完整的进程树,留意陌生的、以nobody或apache用户运行的进程,这类进程很可能是恶意代码触发的。
2. 扫描Drupal核心与自定义代码的篡改痕迹
Drupal是恶意代码的重灾区,尤其是老版本:
- 下载官方Drupal 7.51的源码包,对比服务器上的文件哈希值,找出被篡改的核心文件:
把所有被篡改的核心文件替换成官方干净版本。wget https://ftp.drupal.org/files/projects/drupal-7.51.tar.gz tar xf drupal-7.51.tar.gz cd drupal-7.51 # 对比服务器上的Drupal目录,替换成你的实际路径 md5sum -c md5sums.txt | grep -v "OK" | awk '{print $2}' | xargs -I {} diff {} /var/www/html/{} - 检查所有自定义主题和模块,重点看
template.php、.module文件,找有没有curl_exec、fsockopen、file_get_contents这类发起网络请求的可疑代码——很多后门会藏在这些非核心的自定义代码里。
3. 排查PHP的隐蔽后门
PHP 5.3.3有不少已知漏洞,很容易被植入后门:
- 打开
php.ini文件(通常在/etc/php.ini),检查是否被添加了auto_prepend_file或auto_append_file配置,这两个参数会让PHP自动加载指定的恶意文件,路径往往很隐蔽(比如/tmp/.hidden.php)。 - 批量扫描所有PHP文件,找出可疑的网络请求代码:
重点关注那些指向随机IP或陌生域名的请求。grep -r "curl_exec\|fsockopen\|file_get_contents\|stream_socket_client" /var/www/html --include="*.php" | grep -v "drupal.org\|google.com" # 排除合法域名
4. 检查Apache配置与日志
- 查看Apache的访问日志和错误日志(默认在
/var/log/httpd/),找异常请求:比如访问陌生的PHP文件、带奇怪参数的请求,这些可能触发了隐藏的后门。 - 检查Apache的虚拟主机配置和
.htaccess文件,看有没有被添加可疑的RewriteRule——恶意代码常通过重写规则触发后门,把正常请求转向恶意脚本。
5. 系统层面的深度清理
恶意代码还会藏在系统的边角料里:
- 检查
/tmp、/var/tmp临时目录,用ls -la查看所有隐藏文件,删除可疑的非系统生成文件(比如名字乱码、修改时间异常的文件)。 - 彻底清理定时任务:除了之前禁用的cron,还要检查
/etc/cron.d/、/etc/cron.hourly/、/etc/cron.daily/等目录,删除所有可疑的定时任务文件;同时检查用户的~/.bashrc、~/.bash_profile,看有没有被添加恶意启动命令。 - 用
chkconfig --list查看开机启动项,禁用陌生的服务。
6. 升级与加固服务器(重中之重)
你的服务器软件版本都过于老旧,这是被入侵的主要原因:
- 尽快把Drupal升级到最新的7.x维护版本(Drupal 7虽然停止了新功能开发,但还有安全更新),长远来看建议迁移到Drupal 9/10。
- CentOS 6.8早已停止官方维护,PHP 5.3.3更是漏洞百出,建议迁移到CentOS 7/8或者Rocky Linux这类支持更新的系统,同时升级PHP到7.4及以上版本。
- 配置
iptables防火墙,限制出站请求:只允许必要的端口(比如80、443、22)对外连接,即使有残留恶意代码,也无法发起随机IP请求。
最后建议
如果以上步骤做完还是有问题,大概率服务器已经被植入了内核级rootkit,这种情况下彻底清理难度极大,最稳妥的方式是备份干净的网站数据和数据库,重新部署到一个全新的服务器环境。
内容的提问来源于stack exchange,提问作者sagarpdesai
相关产品推荐
相关产品推荐

