
我安裝了一個乾淨的、庫存的 CentOS 7,現在(安全掃描後)想要更新軟體包以修復已知的安全問題(它們都有 CVE 編號,有些已經有一段時間了)。
不知何故,CentOS 7並不真正關心這些安全問題(一個大問題也是PHP,它卡在5.4,沒有任何好的升級方法)。
除了簡單的處理之外,我該如何處理 CentOS 上的安全性問題yum update
?
答案1
你這樣說:
我安裝了一個乾淨的、庫存的 CentOS 7,現在(安全掃描後)想要更新軟體包以修復已知的安全問題(它們都有 CVE 編號,有些已經有一段時間了)。
請勿恐慌!你的 CentOS 7 安裝沒問題。
事實上,CentOS 7 非常好,許多您認為「未打補丁」的項目實際上是向後移植。這意味著,雖然您可能擁有PHP 等較舊的主要版本,但CentOS 團隊確實向後移植了必要的補丁,以使CentOS 7 中的軟體包在各個級別上與新版本的打包軟體一樣穩定和安全。
身為網頁開發人員,我絕對不要希望處於 PHP 新版本的「前沿」。我喜歡在已知的、受支援的版本上保持穩定。 PHP 5.4 完全沒問題。出於同樣的原因,許多網站仍然使用 PHP 5.3(向後移植)。升級到 PHP 的主要版本會破壞更多的東西,而不是「保護」你的安裝。
網站安全掃描的「不確定」性質。
但您也提到了「安全掃描」。 「安全掃描」是什麼意思?一些基於網路的安全掃描工具只是列出它可以找到的所有缺陷,並發出令人恐慌的通用警報。其中許多只是令人恐慌的警報僅基於顯示的 PHP 5.4 等主要版本,僅此而已。
這些網站掃描之所以會做出這樣的反應是為了創建FUD(恐懼不確定性和懷疑)例如,此類服務的贊助商可以向驚慌失措的用戶出售一些線上服務或諮詢相關產品。其中許多掃描在一定程度上都有用,但您應該謹慎對待它們強鹽粒並且應該總是研究如果您有任何疑問,請進一步提出索賠。
如果你問我的話,更大的問題是你的伺服器在某種程度上暴露確切的 PHP 版本致全世界。這不是 CentOS 的問題。這是一個伺服器加固問題。這意味著受到良好保護的伺服器永遠不會透露所使用的核心軟體的確切版本,以防止任何人認為有任何缺陷。
我的建議?如果您已完成 ayum update
並且它顯示您已全部更新,則您已全部更新。但正如我所說,伺服器強化是一個 100% 不同的問題,罐裝安全掃描似乎永遠無法解決。但這就是處理 PHP 特定問題的方法。而且這個過程非常簡單。
透過禁用expose_php
.
首先,找到你的 PHP 設定檔 ( php.ini
) 並像這樣打開它;此範例使用nano
Ubuntu 上的檔案路徑,但概念是相同的:
sudo nano /etc/php5/apache2/php.ini
現在在該文件中搜尋配置 的行expose_php
。看著PHP 官方文檔,expose_php
描述如下:
向世界公開 PHP 已安裝在伺服器上,其中包括 HTTP 標頭中的 PHP 版本(例如,X-Powered-By:PHP/5.3.7)。
所以知道我打賭安全掃描只是看到了X-Powered-By
標題並做出了反應。但任何真正進行安全管理的人都可以告訴您問題不是版本號碼本身,而是以下事實:標頭完全暴露。因此只需按如下方式更改該expose_php
值:
expose_php = Off
然後重新啟動 Apache 並再次嘗試安全掃描。哎呀,您甚至可以使用curl
以下命令從命令列檢查伺服器的標頭:
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 並再次檢查標頭或對伺服器進行安全掃描。你現在的狀態應該會更好了。
The basic concept of these simple hardening ideas is a website that is setup with a default config that exposes internals to the world sends a message to malware bots that one, the server is in a default state and two, the server is running “older”軟體.因此,像這樣的未強化的伺服器將成為攻擊的好目標。透過混淆返回標頭中的詳細信息,您的伺服器將成為不太理想的目標,因為腳本無法告訴您可能容易受到哪些攻擊。
答案2
是什麼讓你認為 CentOS 不關心這些安全問題? Redhat(以及 CentOS)向後移植發生了變化,因此他們完全有可能針對您的問題向後移植了已知的安全問題。
就 PHP 而言,您可以添加網路策略倉庫獲取 PHP5.6。