我是一家小型 ISP 的数据中心管理员,我们遇到了一个问题,神秘脚本会在我们的服务器上发送垃圾邮件。这些 PHP 脚本会神秘地出现在 /tmp 中,有时也会出现在网站文件夹中。我们安装了软件“Gallery”,它需要危险的提升权限并允许注入这些脚本。从那时起,我通过 .htaccess 将该网站限制在我们的办公室,现在垃圾邮件已不再出现在网站文件夹中,但仍会出现在 /tmp 以及其他网站文件夹中。我们的服务器在 Debian 2.6.26-29 上运行带有 Directadmin 的 exim。
为了找到垃圾邮件脚本,我运行:
server:/# grep cwd /var/log/exim/mainlog | grep -v /var/spool | awk -F"cwd=" '{print $2}' | awk '{print $1}' | sort | uniq -c | sort -n
1 /home/xxx/domains/XXX/public_html/cgi-bin/formmail
2 /
2 /home/xxx/domains/xxx.com/public_html/wp
2 /home/xxx/domains/xxx.com/public_html
2 /home/xxx/domains/xxx.com/public_html
4 /usr/local/directadmin
11 /home/admin
303 /home/admin/domains/xxx/public_html/components
2947 /tmp
有人知道如何找出这些脚本的来源吗?Apache 是 SPAM 脚本的所有者。提前谢谢您。
答案1
您的任何客户站点都可能包含易受攻击的代码,黑客可以利用这些代码将这些脚本注入您的服务器。
我希望您的新服务器设置已正确设置,以便客户 PHP 脚本无法访问系统范围的/tmp
。我个人更喜欢在 chroot 中安装 PHP-FPM,尽管这不是一件容易的事。
如果这些是 中的标准 shell 脚本/tmp
,则可以通过为 创建单独的分区/tmp
并/tmp
使用noexec
mount 选项将其安装到 来阻止它们的执行。
但是,Apache 进程可写入的任何其他目录仍然容易受到相同问题的攻击。黑客需要一些时间才能找到新的可写目录,但他们最终会找到这些目录。
唯一正确的解决方案是安装一个安全的网络服务器,并将数据迁移到那里。