保護Web伺服器安全非常重要,這意味著只允許其他人檢視部分資訊並保護資料並限制存取。
這些是增強Apache Web伺服器安全性的常見內容。
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伺服器後,應該看到類似的結果 -
如果文件根目錄沒有索引檔案(如:index.html
,index.php
,index.html
等),則預設情況下,apache Web伺服器將顯示文件根目錄的所有內容。
可以通過Apache組態檔案中提供的options directive
關閉特定目錄的此功能。
<Directory /var/www/html>
Options -Indexes
</Directory>
最好禁用所有未使用的不必要模組,可以在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
如果希望確保無法存取Web根目錄之外的檔案,則必須確保在Web伺服器組態檔案中使用「Allow」和「Deny option」限制目錄。
<Directory/>
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
限制Web根目錄之外的存取後,您將無法存取Web伺服器上任何其他檔案夾中的任何檔案,最後獲得404返回程式碼。
如果希望保護Web伺服器免受Dos(即拒絕服務)的影響,則必須啟用模組mod_evasive
。它是一個第三方模組,可以檢測Dos攻擊,並防止攻擊造成的損害程度遠遠超過其執行過程。
此模組用作Apache的防火牆,用於實時監控流量。它還可以防止Web伺服器遭受暴力攻擊。mod_security
模組可以與發行版的預設包管理器一起安裝。
Apache對可能導致DoS攻擊的http請求的總大小沒有任何限制。可以使用目錄標記限制Apache指令LimitRequestBody
的請求大小。根據要求,該值可以設定為0
到2GB
(即2147483647
位元組)。
<Directory "/var/www/html/uploads">
LimitRequestBody 512000
</Directory>