我安装了干净的、原装的 CentOS 7,现在(经过安全扫描后)想要更新软件包以修复已知的安全问题(它们都有 CVE 编号,有些已经存在一段时间了)。
不知为何,CentOS 7 并不真正关心这些安全问题(PHP 也是一个大问题,它停留在 5.4,没有任何好的升级方法)。
除了简单的之外,我还应该如何处理 CentOS 上的安全问题yum update
?
答案1
您这样陈述:
我安装了干净的、原装的 CentOS 7,现在(经过安全扫描后)想要更新软件包以修复已知的安全问题(它们都有 CVE 编号,有些已经存在一段时间了)。
不要惊慌!您的 CentOS 7 安装正常。
实际情况是 CentOS 7 完全没问题,很多你认为“未打补丁”的项目实际上反向移植。这意味着,尽管您可能拥有 PHP 等项目的较旧主要版本,但 CentOS 团队会反向移植必要的补丁,以使 CentOS 7 中的软件包在各个层面上都与较新版本的软件包一样稳定和安全。
作为一名 Web 开发人员,我肯定不要想要使用新版本的 PHP。我喜欢在已知、受支持的版本上保持稳定性。PHP 5.4 完全没问题。出于同样的原因,许多网站仍在使用 PHP 5.3(反向移植)。升级到 PHP 的主要版本会破坏更多东西,而不是“保护”您的安装。
网站安全扫描的“不确定”性质。
但您也提到了“安全扫描”。您所说的“安全扫描”是什么意思?一些基于 Web 的安全扫描工具只会列出它能找到的所有缺陷,并会发出令人恐慌的通用警报。其中许多只是基于主要版本(如 PHP 5.4)的恐慌警报,仅此而已。
而这些网站扫描之所以做出这样的反应,是为了创造FUD(恐惧、不确定性和怀疑)在使用它们的人中,这样这种服务的赞助商就可以向恐慌的用户推销一些在线服务或咨询相关产品。许多扫描在一定程度上是有用的,但你应该带着怀疑的态度对待它们强烈反对并且应该总是研究如果您担心的话,可以进一步提出索赔。
如果你问我,更大的问题是你的服务器暴露确切的 PHP 版本对世界来说。这不是 CentOS 的问题。这是服务器强化问题。这意味着受到良好保护的服务器永远不会泄露正在使用的核心软件的确切版本,以防止任何人认为存在任何缺陷。
我的建议是?如果你已经完成了,yum update
并且它说你已经更新了,那么你就已经更新了。但就像我说的,服务器强化是一个完全不同的问题,常规的安全扫描似乎永远无法解决。但这就是你处理这个特定于 PHP 的问题的方法。而且这个过程非常简单。
通过禁用来强化 PHP expose_php
。
首先,找到您的 PHP 配置文件 ( php.ini
) 并像这样打开它;此示例使用nano
Ubuntu 上的文件路径,但概念是相同的:
sudo nano /etc/php5/apache2/php.ini
现在,在该文件中搜索 configures 的行expose_php
。查看PHP 官方文档,expose_php
描述如下:
向全世界公开服务器上安装的 PHP,其中包括 HTTP 标头内的 PHP 版本(例如,X-Powered-By:PHP/5.3.7)。
所以我敢打赌安全扫描只是看到了X-Powered-By
标题并做出了反应。但任何真正从事安全管理的人都可以告诉你,问题不在于版本号本身,而在于标题完全暴露。因此只需expose_php
按如下方式更改该值:
expose_php = Off
curl
然后重新启动 Apache 并再次尝试安全扫描。你甚至可以使用以下命令从命令行检查服务器的标头:
curl -I example.com
返回的标头现在应该不是包含任何 PHP 版本号信息。
在进行此操作时,请强化 Apache。
只要担心安全问题,我建议你同时强化 Apache。只需打开这个 Apache 配置文件;同样基于 Ubuntu,但在 CentOS 中找到等效文件:
sudo nano /etc/apache2/conf.d/security
然后找到ServerTokens
并设置为“生产”,如下所示:
ServerTokens Prod
之后,找到ServerSignature
并禁用它:
ServerSignature Off
最后,找到TraceEnable
并禁用它:
TraceEnable Off
重新启动 Apache 并再次检查标头(或对服务器进行安全扫描)。现在您的状况应该会好一些。
这些简单的强化理念的基本概念是,一个使用默认配置设置的网站会向恶意软件机器人发送一条消息,该消息表明,一,服务器处于默认状态;二,服务器正在运行“较旧”的软件。因此,像这样的未强化服务器将成为攻击的理想目标。通过在返回的标头中混淆详细信息,您可以使您的服务器成为不太理想的目标,因为脚本无法告诉您可能受到哪些攻击。
答案2
是什么让你认为 CentOS 不关心这些安全问题?Redhat(以及 CentOS)反向移植了更改,因此他们完全有可能已将已知的安全问题反向移植到你的问题中。
对于 PHP,您可以添加Webtactic 存储库获得 PHP5.6。