因為Tomcat技術(shù)先進(jìn)、性能穩(wěn)定且免費(fèi),因而深受Java愛好者喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。
當(dāng)前有大量企業(yè)的生產(chǎn)環(huán)境部署tomcat,如果設(shè)置不當(dāng),遠(yuǎn)程攻擊者可以利用漏洞執(zhí)行惡意代碼,或者利用弱口令非法登錄系統(tǒng)破壞生產(chǎn)數(shù)據(jù),導(dǎo)致生產(chǎn)系統(tǒng)停止服務(wù),甚至泄露用戶重要數(shù)據(jù)等災(zāi)難性后果。
本文以Tomcat8.5.12版本運(yùn)行于CentOS7為例,介紹一些安全加固的建議:
root是超級用戶,具有系統(tǒng)中所有的權(quán)限。以root用戶安裝運(yùn)行tomcat存在安全隱患。
例如在user1用戶下進(jìn)行安裝,步驟如下:下載JDK和tomcat安裝包,將JDK和tomcat解包到user1家目錄下:
更新環(huán)境變量文件:
添加如下內(nèi)容:
保存文件,生效環(huán)境變量:
如果能顯示java版本則JDK安裝成功,tomcat能啟動說明安裝成功。
修改方法是$CATALINA_BASE/conf/server.xml文件中修改8080為實際端口:
保存文件后,重啟tomcat生效。
編輯$CATALINA_BASE/conf/tomcat-users.xml文件。修改admin用戶的密碼為 adm@2017PWDjiagu,刪 除所有弱口令。
如果不需要管理頁面也可以直接禁用,防止密碼被破解或者泄露。
禁用管理頁面的具體方法是刪除Webapps目錄下Tomcat原有的所有內(nèi)容,刪 除$CATALINA_BASE/conf/Catalina/localhost/下的host-manager.xml和manager.xml這兩個文件。重新啟動Tomcat生效。
如果有一個WAR文件,想部署它,默認(rèn)只需要把該文件簡單的拷貝到CATALINA_BASE/webapps目錄下即可。一旦Tomcat監(jiān)聽到這個文件,它將解開該文件包。關(guān)閉自動部署功能可防止被植入木馬等惡意程序。
具體方法:
在默認(rèn)配置下,當(dāng)應(yīng)用出現(xiàn)異常時,客戶端會顯示Tomcat的版本信息。攻擊者可以根據(jù)Tomcat版本信息選擇漏洞庫攻擊,所以需要將Tomcat的版本信息隱藏。
具體方法:
新建目錄$CATALINA_HOME/lib/org/apache/catalina/util, 新 建ServerInfo.properties文件。編輯文件內(nèi)容如下:
server.info=version1.0 #這里填寫自定義的版本信息。
檢查目前所使用的Tomcat版本是否存在安全漏洞,如果存在安全漏洞,則需要升級到新的安全版本。在選擇Tomcat的版本時,我們一般要選擇最新的穩(wěn)定版本。
這樣可在安全性和穩(wěn)定性間取得一個很好的平衡。如果要從低版本升級到高版本,建議先在測試環(huán)境中測試通過后再進(jìn)行升級,以避免由于兼容性帶來的問題。
關(guān)于Tomcat的安全漏洞可以關(guān)注官方發(fā)布的安全公告,也可以關(guān)注一些漏洞發(fā)布平臺的最新Tomcat漏洞信息。
此外,當(dāng)Tomcat對公網(wǎng)用戶提供服務(wù)的時候,防火墻策略也一定要根據(jù)實際業(yè)務(wù)需求進(jìn)行細(xì)化,降低被攻擊的風(fēng)險。