我最近设置了一个 Ubuntu 12.04 服务器(使用 Apache 2.2 和 PHP 5.3.10)。在测试它时,我在 Apache 访问日志中注意到一个未知 IP 地址正在尝试执行 PHP CGI 注入攻击,利用了此处描述的已知漏洞:
幸运的是,我碰巧注意到了这一点,并阻止了入侵者访问服务器,但注入攻击做过成功更改了我的部分 php.ini 设置。根据漏洞描述,唯一不受注入影响的 PHP 版本是 5.3.13 和 5.4.3+。我尝试使用这个(似乎很流行的)非官方存储库升级到 5.5:
add-apt-repository ppa:ondrej/php5
它升级了我的 PHP,但也破坏了我的 Apache 设置,并将 Apache 升级到 2.4,我无法使用。所以我不得不回滚系统。
然后我尝试使用 apt-get 升级到 PHP 5.3.13,但显然 5.3.10 是官方 Ubuntu 12.04 存储库中可用的最高版本。至少可以说,这有点令人沮丧。
所以我的问题是:如何保护 PHP 3.5.10 或在 Ubuntu 12.04 上安装“安全”版本的 PHP,以便可以防止此类攻击再次发生?我绝对不想要 Apache 2.4,我需要一个 LTS 服务器。
答案1
Canonical 将这些修复程序移植到 Ubuntu。您发现的事件已在 5.3.10-1ubuntu3.2 中修复。最新版本似乎是 5.3.10-1ubuntu3.9。您可以回去看看变更日志适用于各种版本。
我建议你保持你的发行版为最新版本。这些命令应该可以做到这一点。
sudo apt-get update
sudo apt-get upgrade
如果您够勇敢,可以将其作为 cron 运行。如果没有勇气,请经常运行它,以保持您的系统处于最新的补丁级别。