Linux系統安全(九):Tomcat 安全

Tomcat是Java Servlet、JSP、Java表達式語言和Java WebSocket技術的開源實現,被廣泛使用在Java語言開發的大型網站系統中。我們可以從以下幾個方面來保障Tomcat的安全。

保持版本更新

建議在部署時採用最新穩定版的Tomcat,並在運維過程中追蹤官方版本發佈的情況,選擇升級到最新穩定版。

刪除默認應用

從官網下載了Tomcat安裝文件後,在其webapps目錄下默認有如下的應用:docs、examples、host-manager、manager、ROOT。刪除這些默認應用,可以減少安全風險。

服務降權

在實踐中,Tomcat服務器一般部署在負載均衡設備或者Nginx之後,服務的監聽端口應設置爲1024以上(例如常見的8080)。在這種情況下,筆者建議爲Tomcat設置專用的啓動用戶,而並不是使用root這一超級權限用戶,以限制在發生Tomcat入侵後黑客可以獲得的權限避免更大的危害。而這也是最小權限原則的實踐。例如,通過以下命令建立普通用戶tomcat:

# groupadd -g 2000 tomcat
# useradd -g 2000 -u 2000 tomcat  

管理端口保護

Tomcat提供了通過Socket連接8005端口來執行關閉服務的能力,這在生產環境中是極爲危險的。通過修改server.xml配置文件來禁用該管理端口:

<Server port="8005" shutdown="SHUTDOWN"> 

修改爲

<Server port="-1" shutdown="SHUTDOWN">

AJP連接端口保護

Tomcat服務器通過Connector連接器組件與客戶程序建立連接,Connector組件負責接收客戶的請求以及把Tomcat服務器的響應結果發送給客戶。默認情況下,Tomcat在server.xml中配置了兩種連接器,一種使用AJP,要和apache結合使用,一種使用http。當使用http 時,建議禁止AJP端口訪問。禁用的方式是在server.xml中註釋以下行:

<!--<Connector port="8329" protocol="AJP/1.3" redirectPort="8443" />-->

關閉WAR包自動部署

默認Tomcat開啓了對WAR包的熱部署的。筆者建議關閉自動部署,以防止WAR被惡意替換後導致的網站掛馬。關閉WAR包自動部署的方式在修改server.xml中的

   <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

改成

<Host name="localhost"  appBase="webapps" unpackWARs="false" autoDeploy="false">

自定義錯誤頁面

通過自定義錯誤頁面,可以防止在發生未處理的異常時導致的信息泄露。自定義錯誤頁面的方式是,編輯web.xml,在標籤上添加以下內容:

<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.html</location>
</error-page>

本文內容來自作者圖書作品《Linux 系統安全:縱深防禦、安全掃描與入侵檢測》,點擊購買

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章