因為Tomcat技術先進、性能穩定且免費,因而深受Java愛好者喜愛并得到了部分軟件開發商的認可,成為目前比較流行的Web應用服務器。
當前有大量企業的生產環境部署tomcat,如果設置不當,遠程攻擊者可以利用漏洞執行惡意代碼,或者利用弱口令非法登錄系統破壞生產數據,導致生產系統停止服務,甚至泄露用戶重要數據等災難性后果。
本文以Tomcat8.5.12版本運行于CentOS7為例,介紹一些安全加固的建議:
root是超級用戶,具有系統中所有的權限。以root用戶安裝運行tomcat存在安全隱患。
例如在user1用戶下進行安裝,步驟如下:下載JDK和tomcat安裝包,將JDK和tomcat解包到user1家目錄下:

更新環境變量文件:

添加如下內容:


保存文件,生效環境變量:

如果能顯示java版本則JDK安裝成功,tomcat能啟動說明安裝成功。
修改方法是$CATALINA_BASE/conf/server.xml文件中修改8080為實際端口:


保存文件后,重啟tomcat生效。
編輯$CATALINA_BASE/conf/tomcat-users.xml文件。修改admin用戶的密碼為 adm@2017PWDjiagu,刪 除所有弱口令。

如果不需要管理頁面也可以直接禁用,防止密碼被破解或者泄露。
禁用管理頁面的具體方法是刪除Webapps目錄下Tomcat原有的所有內容,刪 除$CATALINA_BASE/conf/Catalina/localhost/下的host-manager.xml和manager.xml這兩個文件。重新啟動Tomcat生效。
如果有一個WAR文件,想部署它,默認只需要把該文件簡單的拷貝到CATALINA_BASE/webapps目錄下即可。一旦Tomcat監聽到這個文件,它將解開該文件包。關閉自動部署功能可防止被植入木馬等惡意程序。
具體方法:

在默認配置下,當應用出現異常時,客戶端會顯示Tomcat的版本信息。攻擊者可以根據Tomcat版本信息選擇漏洞庫攻擊,所以需要將Tomcat的版本信息隱藏。
具體方法:
新建目錄$CATALINA_HOME/lib/org/apache/catalina/util, 新 建ServerInfo.properties文件。編輯文件內容如下:
server.info=version1.0 #這里填寫自定義的版本信息。
檢查目前所使用的Tomcat版本是否存在安全漏洞,如果存在安全漏洞,則需要升級到新的安全版本。在選擇Tomcat的版本時,我們一般要選擇最新的穩定版本。
這樣可在安全性和穩定性間取得一個很好的平衡。如果要從低版本升級到高版本,建議先在測試環境中測試通過后再進行升級,以避免由于兼容性帶來的問題。
關于Tomcat的安全漏洞可以關注官方發布的安全公告,也可以關注一些漏洞發布平臺的最新Tomcat漏洞信息。
此外,當Tomcat對公網用戶提供服務的時候,防火墻策略也一定要根據實際業務需求進行細化,降低被攻擊的風險。