如何預防後臺被攻擊?Tomcat 的安全配置來啦!

安全是系統架構中最重要的關注點之一,通常情況下,所說的安全涵蓋網絡安全、數據安全、操作系統安全、服務器安全以及應用系統安全等諸多方面。Tomcat 是一個免費的開放源代碼 的Web應用服務器,技術先進、性能穩定。由於它優秀的穩定性以及豐富的文檔資料,廣泛的使用人羣,從而在開源領域受到廣泛的青睞,因此,Tomcat安全也越來越受到重視。

Tomcat作爲一款應用服務器,默認情況下可以滿足多數場景的安全需求,但是在安全要求較高的情況下,仍需要從多個方面進行配置,已防止Tomcat管理後臺被攻擊等風險。Tomcat安全主要從以下2個方面介紹。

配置安全

默認情況下其存在一定的安全隱患,可被惡意攻擊,所以在生產環境中需要對Tomcat進行安全配置,下面將介紹影響Tomcat配置安全的4個選項。

1. 移除不使用的內置應用

Tomcat環境部署完畢後,要刪除根目錄下的一些默認文件夾:CATALINA_HOME/webapps文件夾下的內置應用,這些應用可能會導致安全風險,因此移除不使用的應用。對於docs(Tomcat本地說明文檔)、examples(Tomcat相關的demo示例)、ROOT(Tomcat默認頁),可以將其直接移除。host-manager和manager用於管理及監控tomcat容器,如果已經使用第三方工具來管理tomcat,不需要manager管理登錄,這兩個應用也可以直接移除,如圖2所示。

圖 2.Tomcat內置應用

2. 降權啓動tomcat

tomcat 啓動用戶權限必須爲非root,避免一旦tomcat服務被入侵,獲取root權限,因爲在Linux操作系統中,root用戶的權限是最高的,可以執行普通用戶無法執行的操作。應單獨爲Tomcat服務器創建一個用戶,並且授予運行應用服務器所需的最小系統權限。

3. 刪除不使用的組件

Tomcat是開源軟件,那麼server.xml中的默認配置對所有人都是可見的,它的運行機制也是衆所周知的,因此使用默認配置也會增加服務器受攻擊的風險。所以在部署生產環境前,移除不必要的組件,默認情況下,server.xml配置了一個HTTP連接器(8080)和一個AJP連接器(8009),實際上絕大多數情況下,只需要一個連接器。如果Tomcat不存在前置的web服務器,此時可以保留HTTP而刪除AJP連接器。

4. 禁用自動部署

在默認情況下,Tomcat是自動部署的,只要是在webapps目錄下的war包均會在Tomcat啓動時自動部署,包括被植入的惡意web應用。要避免惡意的web應用自動啓動,可以考慮從兩個方面解決:一是修改web應用部署目錄爲其他路徑,這樣攻擊者很難找到正確的部署目錄並部署web應用;二是禁用自動部署,將server.xml配置文件中Host元素的autoDeploy和deployOnStartup屬性設置爲false,此時只有通過context標籤部署web應用,配置方法如圖3所示。

圖 3.禁用自動部署

管理平臺安全

1. 管理平臺是什麼?

Tomcat提供了基於Web方式的管理平臺,管理平臺即是內置的兩個獨立的web應用,位於webapps目錄下的host-manager和manager。host-manager管理控制檯可以動態地添加一個虛擬主機。此外還可以啓動、停止、刪除虛擬主機,在實際生產中很少使用host-manager管理平臺。manager管理平臺可以很方便的管理運行在tomcat服務器上的Web應用,如發佈、啓動、停止或刪除Web應用,還可以實時管理HTTP會話以及查看服務器狀態信息等。

2. 管理平臺如何使用

在tomcat啓動成功後,通過http://ip:port/manager/html訪問manager 管理平臺 ,因爲默認添加了訪問權限控制,第一次訪問需要在 conf/ tomcat-users.xml 文件 中爲當前用戶添加角色,manager管理平臺共有4種角色,分別爲:

manager-gui:允許訪問html頁面接口(即URL路徑爲/manager/html/*);

manager-script:允許訪問純文本接口(即URL路徑爲/manager/text/*);

manager-jmx:允許訪問JMX代理接口(即URL路徑爲/manager/jmxproxy/*);

manager-status:允許訪問Tomcat只讀狀態頁面(即URL路徑爲/manager/status/*)。

其中manager-gui、manager-script、manager-jmx三個角色均具備manager-status角色的權限,即這三種角色權限無需再額外添加manager-status權限。實際使用中只需配置manager-gui角色通過html頁面的形式訪問管理平臺。

manager管理平臺有4種角色,host-manager管理平臺有2種角色,配置方式如圖4所示。

圖 4. 管理平臺角色配置

Web版管理控制檯可以發佈、停止、重新加載指定的web應用,如圖5所示。

圖 5. Web版管理控制檯

通過http://ip:port/manager/status ,查看Server-status服務器狀態頁面,如圖6所示。

圖 6. 服務器狀態頁面

Server-status包含以下幾部分信息:

host-manager管理控制檯可以動態地添加一個虛擬主機。此外還可以啓動、停止、刪除虛擬主機,如圖7所示。

通過http:// ip:port /host-manager/html 訪問host-manager管理平臺,因爲默認添加了訪問權限控制,第一次訪問需要在conf/tomcat-users.xml文件中爲當前用戶添加角色,host-manager管理平臺共有2種角色,分別爲admin-gui和admin-script,配置方式如圖3所示。

admin-gui:允許訪問html頁面接口(即URL路徑爲/manager/html/*)。

admin-script:允許訪問純文本接口(即URL路徑爲/manager/text/*)。

圖 7. host-manager管理平臺頁面

3. 管理平臺安全加固

管理平臺有發佈管理應用的權限,默認情況下host-manager和manager應用存在安全風險,可能會產生嚴重的危害,所以針對Tomcat管理平臺需通過以下幾個方面進行安全加固。

如使用內置host-manager和manager管理應用,需要增加IP訪問限制,在應

用下META-INF/context.xml文件中配置。修改allow屬性的正則表達式。8.5版本前需要手動開啓,而8.5版本之後,則默認開啓只有本機可以訪問。比如只允許ip地址10.232.150.78和10.232.150.80訪問manager管理應用,將allow屬性值修改爲10.232.150.78|10.232.150.80即可,如圖8所示。

圖8. IP訪問限制配置方式

如需訪問host-manager和manager應用需要分配相關的角色權限。我們還應

設置足夠健壯的密碼,建議加強口令強度,設置口令複雜度爲8位以上,大小寫字母、數字、特殊符號的組合,並定期更換密碼,避免使用弱口令。

管理平臺添加用戶鎖定功能,在server.xml中配置了org.apache.catalina.real

m.LockOutRealm,LockOutRealm 是一個Tomcat的Realm實現,它擴展了CombinedRealm,假如在某一段時間內出現很多驗證失敗,則它能夠提供鎖定用戶的功能,已避免攻擊者進行密碼暴力破解。LockOutRealm 配置方式, server.xml文件Engine元素內添加,如圖9所示

圖9. LockOutRealm 配置

 

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