Apache Web伺服器安全


保護Web伺服器安全非常重要,這意味著只允許其他人檢視部分資訊並保護資料並限制存取。

這些是增強Apache Web伺服器安全性的常見內容。

1. 隱藏Apache版本和作業系統資訊

Apache顯示其版本和作業系統名稱錯誤,如下面的螢幕截圖所示。

隱藏Apache版本和操作系統信息

駭客可以使用此資訊使用特定版本的伺服器或作業系統中的公開漏洞發起攻擊。為了防止Apache webserver顯示此資訊,我們可以通過修改apache組態檔案中提供了server signature選項。預設情況下,它是on(即開啟),將它設定為off(即關閉)。

vim /etc/httpd/conf/httpd.conf

修改內容為:

ServerSignature Off

ServerTokens Prod

我們還設定了「ServerTokens Prod」,它告訴Web伺服器只返回apache並禁止作業系統主要版本和次要版本。修改組態檔案後,必須重新啟動/重新載入Apache Web伺服器才能使其生效。

service httpd restart

修改並重新啟動Apache伺服器後,應該看到類似的結果 -

2. 禁用目錄列表

如果文件根目錄沒有索引檔案(如:index.html,index.php,index.html等),則預設情況下,apache Web伺服器將顯示文件根目錄的所有內容。

禁用目錄列表

可以通過Apache組態檔案中提供的options directive關閉特定目錄的此功能。

<Directory /var/www/html>
    Options -Indexes
</Directory>

3. 禁用不必要的模組

最好禁用所有未使用的不必要模組,可以在apache組態檔案中看到已啟用模組的列表 -

[root@amsterdam ~]#httpd –M

perl_module (shared)

php5_module (shared)

proxy_ajp_module (shared)

python_module (shared)

ssl_module (shared)
`

許多列出的模組可以被禁用,如mod_imapmod_includemod_infomod_userdirmod_autoindex,因為它們幾乎不被任何生產Web伺服器使用。

vi /etc/httpd/conf/httpd.conf

然後注釋掉 -

#LoadModule auth_digest_module modules/mod_auth_digest.so

注釋模組後,儲存檔案。使用以下命令重新啟動apache服務。

/etc/init.d/httpd restart

4. 限制存取Web根目錄之外的檔案

如果希望確保無法存取Web根目錄之外的檔案,則必須確保在Web伺服器組態檔案中使用「Allow」和「Deny option」限制目錄。

<Directory/>
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

限制Web根目錄之外的存取後,您將無法存取Web伺服器上任何其他檔案夾中的任何檔案,最後獲得404返回程式碼。

5. 使用mod_evasive來反駁DoS攻擊

如果希望保護Web伺服器免受Dos(即拒絕服務)的影響,則必須啟用模組mod_evasive。它是一個第三方模組,可以檢測Dos攻擊,並防止攻擊造成的損害程度遠遠超過其執行過程。

6. 使用mod_security增強apache安全性

此模組用作Apache的防火牆,用於實時監控流量。它還可以防止Web伺服器遭受暴力攻擊。mod_security模組可以與發行版的預設包管理器一起安裝。

使用mod_security增強apache安全性

7. 限制請求大小

Apache對可能導致DoS攻擊的http請求的總大小沒有任何限制。可以使用目錄標記限制Apache指令LimitRequestBody的請求大小。根據要求,該值可以設定為02GB(即2147483647位元組)。

<Directory "/var/www/html/uploads">
   LimitRequestBody 512000
</Directory>