我的服务器现在足够安全吗?


Is my server secure enough now?

好的,所以我的服务器上周被黑客入侵了。黑客攻击了一个过时的第三方编辑器(php),并在PHP中植入了一个后门脚本,并对我的网站造成了严重的破坏。我花了整个周末清理后门脚本和他留在我服务器上的任何恶意代码。为了避免再次被黑客入侵,我对我的服务器做了以下操作:

  1. 在 PHP 中关闭file_upload。由于被黑客入侵者通过 PHP 上传了后门,所以我在 php.ini 中禁用了该功能。所以现在我只能通过ftp上传。

  2. 在 PHP 中禁用create_function。我的软件都没有使用此功能。黑客使用这个函数的方式与 eval() 相同,以字符串的形式执行命令。

  3. 在php.ini中禁用popen,exec,system,passthru,proc_open,shell_exec,show_source,phpinfo。这些功能主要由后门脚本用于修改我的文件和目录。

  4. 安装苏霍辛。查找在 eval() 中调用的合法函数,将它们放入 suhosin.executor.eval.whitelist 中。黑客将恶意代码放入我的程序中,并用base64_encode将其阻止,然后在 eval() 中执行它们。所以我只允许在 eval() 中调用几个法律函数。

  5. 打开suhosin.executor.disable_emodifier。黑客在我的程序中放了另一个被遮挡的代码,并使用 preg_replace() e 修饰符来执行他放在浏览器上的任何 php 命令。因此,他可以通过浏览器上传或修改服务器上的任何文件。(由于我关闭了file_upload,他无法再上传,但他仍然可以根据需要修改和删除文件)。

通过禁用create_function,preg_replace() e 修饰符并限制 eval(),即使我的服务器上有未清理的恶意代码,黑客也无能为力。这是 PHP 中最危险的 3 个函数。

  1. 将 .htaccess 添加到除根目录之外的每个文件夹,并禁止直接从浏览器执行 PHP:

订单拒绝,允许否认所有人

我在 php 之后放了另一个 * 因为我发现了一个名为 missing.php.DISABLED 的后门文件,如果我不在 php 之后加上 *,它仍然可以执行

  1. 将根目录(唯一允许执行.php的位置)设置为只读。将该文件夹中的所有文件设置为只读。因此,黑客无法将任何新的后门脚本上传到可以执行 php 的唯一目录。他也无法修改该目录中的文件。

  2. 对于wordpress登录,我添加了

订单拒绝,允许否认所有人

允许从 xxx.xxx.xxx.xxx

到根目录中的 .htaccess,其中 xxx.xxx.xxx.xxx 是我的 IP。

  1. 将所有 .htaccess 设置为只读。

好吧,这就是我可以做的来加强服务器的安全性。我错过了什么吗?

谢谢你的建议。

除非您从已知干净的安装介质重新映像计算机,否则您无法知道没有挥之不去的 rootkit。