重點如下:
- 降低使用權限
- tomcat 的權限若不特別調整會是系統服務的權限的身份執行。
- 在系統內新增一個使用者帳號,這個新增的帳號可以不歸屬於任何的群組,於服務管理器啟動 Tomcat 管理介面。選擇「登錄」選項,將啟動的身份改成這個新增的使用者帳號。(如附圖)
- 此新增的帳號可以將網路存取使用權限改成拒絕存取、遠端控制取消啟用、用戶端裝置的預設勾選項目全數取消。
- Tomcat相關的執行檔案的目錄,別忘了要新增這個使用者的帳號權限;有些目錄的權限要開放寫入(如附圖)
- JRE目錄也需要新增這個使用者的帳號權限。(如附圖)
- 基本上以上的做法與Apache 的建議相似,也可直接參考此文件(中文翻譯)。
- 在Apache的實作:後來發現只要在 logs , sessions 與其它需要寫入權限的目錄 (e.g phpids ......),加入這個受限制的使用者的權限後,再到系統 =>服務 =>Apache2(如下圖),將登入的身份改成這個受限制的使用者,重新啟動後即可。
- 預設 port 號修改
- 例如將 port 8080修改為其它 port 號。
- 未設定 index.htm的目錄會將所有目錄內的檔案全數呈現
- 修改web.xml檔案,<param-name>listings</param-name>,確認它是 false 的狀態。這個部份在 Tomcat 6.x 版的預設值是 false 。
- 後台管理的帳密修改
- 基本上因為它的管理介面,這沒有使用到,所以我這是將全部將關於此功能的目錄全部刪除。
- 錯誤頁面會主動回報使用版本等參考資訊
- 修改web.xml files,自訂 404.html ......等頁面。於 web.xml內的 </welcome-file-list>標籤後加入自訂的 404.html(如下)
- <error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page> - 不知幾版開始後,它的 header 就沒有傳遞版本的資訊了,所以自訂 404 等錯誤頁面後, 可以降低此困擾。The server attribute controls the value of the Server HTTP header. The default value of this header for Tomcat 4.1.x, 5.0.x, 5.5.x, 6.0.x and 7.0.x is Apache-Coyote/1.1. This header can provide limited information to both legitimate clients and attackers