Apache的一些安全性設定
- 設定限制目錄瀏覽的方法
有幾種方式可以達成此目的:
1.在不想公開給外面看到的每個目錄下,都放一個內容空白的index.html,讀取該目錄就會出現空白或是你寫在該檔案裡的設定轉址頁面,但這僅適合用在免費網頁空間,一般不建議這樣使用。
2.使用.htaccess檔案,藉由規則來限定存取範圍,但設定上還是頗麻煩。
3.修改apache的設定檔httpd.conf
[root@testuse ~]# vim /etc/httpd/conf/httpd.conf
# line 144
Options Indexes FollowSymLinks
# 移除Indexes
Options FollowSymLinks # 可加選項MultiViews
# 重啟apache
[root@testuse ~]# systemctl restart httpd
# line 144
Options Indexes FollowSymLinks
# 移除Indexes
Options FollowSymLinks # 可加選項MultiViews
# 重啟apache
[root@testuse ~]# systemctl restart httpd
之所以去掉Indexes這個功能,是讓Apache不自動產生目錄的索引,就不會出現網站某一個文件目錄列出目錄頁面的情形。如果將Indexes拿掉,點選連結目錄就不會秀出目錄來,會改成顯示403 forbidden的訊息頁面,而這403 forbidden的訊息頁面內容是可自訂的,可以參考本站的自訂Apache錯誤訊息頁面。
1.MultiViews,這是可以讓Apache送出多國語言支援的頁面。
2.FollowSymLinks,是讓Apache能夠連到其它的目錄去執行,如果是Windows系統的使用者,建議將這個功能拿掉。
- 關閉相關模組版本
[root@testuse ~]# vim /etc/httpd/conf/httpd.conf
# 在置底處新增
ServerTokens Prod # 告知Apache在回傳標頭資訊時,只要標示產品名稱"Apache"即可
ServerSignature Off # 告知Apache在產生錯誤頁面或其他訊息時,不顯示Apache版本
TraceEnable Off # 用途為除錯,預設開啟,建議關閉
# 重啟apache
[root@testuse ~]# systemctl restart httpd
# 在置底處新增
ServerTokens Prod # 告知Apache在回傳標頭資訊時,只要標示產品名稱"Apache"即可
ServerSignature Off # 告知Apache在產生錯誤頁面或其他訊息時,不顯示Apache版本
TraceEnable Off # 用途為除錯,預設開啟,建議關閉
# 重啟apache
[root@testuse ~]# systemctl restart httpd
ServerTokens:
參數有 Min[imal]、OS、Prod[uctOnly]、Full。
ServerTokens Full
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b PHP/4.1.2
ServerTokens OS
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
ServerTokens Min
Server: Apache/1.3.27
ServerTokens Prod
Server: Apache
ServerSignature:
用來選擇,當 Apache/2 遇到如錯誤訊息等情形而產生一份告知使用者目前情形的網頁時,是否要附加上一些提示使用者的資訊。參數有On、Off、Email。
如果設定為 "Off":就是除了內定告知使用者的資訊以外,不再附加其他資訊。
如果設定為 "On":則表示在該網頁加上 ServerName 指令所指定的伺服器名稱。
如果設定為 "Email":則在該告知網頁上,附加 ServerAdmin 後面所指定的電子郵件位址。
TraceEnable:
HTTP TRACE 是一個 HTTP request method,主要是用來做 debug,此方法會回傳 client 的 HTTP request 內容,並放置於 TRACE response 中的 entity body。因此,惡意攻擊者可利用此方法取得敏感的伺服器資訊,例如 cookies 或表頭中的認證資料。此方法預設為打開,但為了安全方面的考量,最好將此方法給關閉。用此方法必須開啟 mod_rewrite 的功能。
- 關閉PHP版本
[root@testuse ~]# vim /etc/php.ini
# line 375
expose_php = On
# 將On改成Off
expose_php = Off # 告知Apache不顯示PHP相關訊息
# line 375
expose_php = On
# 將On改成Off
expose_php = Off # 告知Apache不顯示PHP相關訊息
留言
張貼留言