保護Web伺服器安全非常重要,這意味著只允許其他人查看部分資訊並保護數據並限制訪問。
這些是增強Apache Web伺服器安全性的常見內容。
1. 隱藏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_imap
,mod_include
,mod_info
,mod_userdir
,mod_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
模組可以與發行版的默認包管理器一起安裝。
7. 限制請求大小
Apache對可能導致DoS攻擊的http請求的總大小沒有任何限制。可以使用目錄標記限制Apache指令LimitRequestBody
的請求大小。根據要求,該值可以設置為0
到2GB
(即2147483647
位元組)。
<Directory "/var/www/html/uploads">
LimitRequestBody 512000
</Directory>