14 步驟 Apache 安全最佳實務清單(包含 PDF 電子書)
已發表: 2017-11-22Railwayfx / stock.adobe.com
Apache 目前仍然是全球領先的 Web 伺服器軟體,擁有 45.8% 的市場份額。 最終大約有 8000 萬個網站的 Web 伺服器由 Apache 提供支援。 相當令人印象深刻,對吧?
Apache 是一款開源 Web 伺服器軟體,自 1995 年以來一直存在,因此僅此一點就足以說明其可靠性和壽命。 然後是在 Apache 伺服器上運行的知名網站:Apple、Adobe 和 Paypal 只是將其網站委託給 Apache 的幾個主要品牌。
當然,這並不意味著 Apache 100% 安全,因為沒有任何軟體能夠 100% 免受駭客攻擊,尤其是當它是一個眾所周知且值得信賴的平台時(很像 WordPress)。 但如果您正在尋找 Apache 安全 PDF 電子書、模組、指南、教學課程、框架或 Web 伺服器安全清單,那麼您來對地方了。
如果您想強化 Apache 安全性或遇到任何 Apache 安全性問題或嘗試修補一兩個漏洞,以下清單將為您提供 14 種安全最佳實踐,可添加到您網站的安全計畫中。
終極 Apache 安全最佳實務清單
對於想要真正強化 WordPress 網站的人來說,像保護任何其他連接並為您的網站提供支援的軟體一樣保護 Apache 是至關重要的。 如果不這樣做甚至會影響您網站的速度。 因此,您將這樣做:
1.更新Apache
您知道 WordPress 以及您安裝的任何外掛和主題需要如何定期更新嗎? 您的網頁伺服器也是如此。
如果您擔心您的網站沒有在最新版本的 Apache 上運行,您可以使用 httpd -v 命令列進行檢查。 如果輸出的版本與 Apache 的當前版本不匹配,您可以使用以下命令更新它:
# yum update httpd
# apt-get install [add Apache version here]c
2.開啟日誌
如果您與託管 WordPress 託管提供者合作,他們將負責監控您的伺服器和 WordPress 是否存在漏洞和其他警告信號。 也就是說,您也應該關注您的伺服器流量。
使用 Apache,您可以透過更新 mod_log_config 模組來存取此活動日誌。 基本上,它會告訴您用戶每次接觸您的伺服器時都會做什麼。
3. 取得 SSL 憑證
由於您的 Web 伺服器處理對您網站的所有瀏覽器/伺服器請求,因此使用 SSL 憑證保護其安全性非常重要。 好消息是您現在可以免費獲得 SSL 憑證。 現在比以往任何時候都更加重要,因此,如果您沒有技術能力自行安裝,任何優質託管提供者都可以為您完成。
4. 新增防火牆
除了 SSL 加密的額外保護之外,您的 Web 伺服器還應該使用防火牆進行強化。 對於 Apache,這意味著打開 ModSecurity。
要將其安裝在您的伺服器上,您可以執行以下命令:
# yum install mod_security
# /etc/init.d/httpd restart
一旦防火牆啟用,它將阻止許多惡意活動到達您的伺服器,例如 SQL 注入、會話劫持和跨站點腳本編寫。
5.安裝mod_evasive
Mod_evasive 模組可以保護您的 Apache 伺服器免受暴力破解和 DDoS 攻擊,因此請確保也啟用此功能。 它將並發和失敗的登入嘗試列入黑名單,並監控惡意 IP。
6. 設定 HTTP 限制
如果您知道要監視哪些類型的操作,那麼阻止分散式阻斷服務 (DDoS) 攻擊就非常簡單。 由於 DDoS 往往是透過大量請求反覆攻擊您的伺服器而發生的,因此您的目標應該是設定限制以防止這種情況發生。
以下是您需要建立的一些限制:
- 保持活動=打開
- 保持連線逾時
- 限制請求體
- 限制請求字段
- 限制請求字段大小
- 限制請求行
- 限制XML請求體
- 最大客戶數
- 最大保持活動請求數
- 最大請求工作者數
- 請求讀取逾時
- 暫停
7. 刪除未使用的模組
透過在 Apache 伺服器上保留未使用、未維護或過期的模組,您的網站將透過一個甚至不需要存在的入口點向駭客開放。
您應該做的第一件事是找出哪些模組實際上是活動的。 您可以使用 LoadModule 命令來執行此操作。 一旦您篩選了清單並確定了不需要的模組,只需在要停用的每個模組之前添加“#”符號,然後重新啟動即可。
8. 更改預設使用者和群組
一般來說,任何軟體上保留的預設設定和使用者都是一種糟糕的安全做法。 原因很簡單:如果您使用 Apache 預設使用者名稱或群組名,那麼您可以打賭駭客也知道這些預設名稱是什麼。
您不應保留預設設置,而應建立一個新的非特權帳戶來執行 Apache 進程。 使用#groupadd 和#useradd 指令,您可以設定新實體。 只需記住使用您建立的新使用者名稱和群組名稱更新您的 httpd.conf 即可。
9. 阻止目錄訪問
這是需要更改的預設設定的另一個範例。 在本例中,授予目錄檔案的存取權限允許任何人隨心所欲地進行探索。
若要將總塊放置到位,請使用以下命令:
<Directory "/">
Require all denied
</Directory>
如果您想允許某些用戶訪問,您可以這樣做:
<Directory "/usr/users/*/public_html">
Require all granted
</Directory>
如果您想啟用對目錄中某些資料夾的訪問,可以這樣做:
<Directory "/usr/local/httpd">
Require all granted
</Directory>
您可能還想仔細閱讀 Apache 模組儲存庫以進一步調整使用者存取權限。
10. 不要發布目錄
您是否知道,如果您的伺服器沒有索引文件,用戶將能夠看到您儲存在根目錄中的所有內容? 這顯然不好,因此您需要使用以下命令禁用此預設設定:
<Directory /var/www/html>
Options -Indexes
</Directory>
11.隱藏伺服器詳細信息
由於 Apache 是開源軟體,因此如果伺服器端未停用這些設置,則可以輕鬆獲得有關所用版本的詳細資訊。 由於駭客可以使用這些敏感資訊來找出如何闖入您的伺服器,因此您需要封鎖這些資訊。
您需要停用兩件事:
- ServerSignature – 這是 Apache 的版本
- ServerTokens – 包括作業系統版本以及其他敏感伺服器詳細信息
其他用戶只需查看您網站上的錯誤頁面即可找到此信息,因此阻止顯示此信息非常重要。 為此,請使用以下內容更新 httpd.conf:
ServerSignature Off
ServerTokens Prod
12.隱藏ETag
不幸的是,Apache 中的 ETag 標頭包含許多有關您的伺服器的敏感詳細資訊。 顯然,任何與外界共享此類資訊的內容都應該被隱藏。 此外,如果您正在經營電子商務網站,則需要隱藏此網站以符合 PCI 要求。
為此,請將以下指令加入您的 httpd.conf 中:
FileETag None
13.禁用.htaccess覆蓋
.htaccess 對於任何 WordPress 網站來說都是一個重要文件。 這就是為什麼您需要鎖定它並確保其他人無法覆蓋您的配置設定。
若要停用此功能,請將以下內容新增至根目錄下的 httpd.conf 中:
<Directory />
Options -Indexes
AllowOverride None
</Directory>
14.禁用SSI和CGI
如果不加以檢查,啟用伺服器端包含 (SSI) 的檔案可能會為您的網站帶來許多安全問題。 CGI 腳本也是如此。 為了防止駭客使您的伺服器過載或將惡意腳本注入您的程式碼中,請記住透過選項指令關閉它們或限制它們的操作。
以下是您可以使用的一些選項值:
- 選項 全部
- 選項包括NOEXEC
- 選項 - 包括
- 選項-ExecCGI
- 選項-包括-ExecCGI
- 選項 多視圖
照顧您的 Apache 伺服器
為了加強網站的安全性,請特別注意您的 Apache 伺服器。 伺服器配置錯誤和保留預設設定等問題可能會讓您的網站面臨風險,就像未更新的核心或不安全的 PHP 編碼實踐一樣。
想提供回饋或加入對話嗎?在 Twitter 上新增您的評論。