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>

上一篇: Apache支持Ruby程式 下一篇: Apache日誌格式