Ubuntu Tomcat訪問控制策略配置
Tomcat通過tomcat-users.xml
文件實現用戶認證與角色授權,是訪問控制的基礎。需編輯/opt/tomcat/conf/tomcat-users.xml
(Ubuntu默認路徑),添加用戶并分配對應角色(如管理界面訪問、應用資源操作等)。示例配置:
<tomcat-users>
<role rolename="manager-gui"/> <!-- 管理界面訪問角色 -->
<role rolename="admin-gui"/> <!-- 管理員角色 -->
<user username="admin" password="strong_password" roles="manager-gui,admin-gui"/> <!-- 用戶及角色關聯 -->
</tomcat-users>
說明:角色需與web.xml
中的auth-constraint
匹配,確保權限一致性。
Tomcat的管理界面(如/manager
、/host-manager
)易成為攻擊目標,需通過RemoteAddrValve
限制訪問IP。編輯對應應用的context.xml
文件(如/opt/tomcat/webapps/manager/META-INF/context.xml
),添加以下配置:
<Context>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|192\.168\.1\.\d+" /> <!-- 僅允許本地及指定IP段訪問 -->
</Context>
說明:allow
屬性支持正則表達式,可根據需求調整(如僅允許可信IP訪問)。
通過web.xml
文件為特定URL路徑設置訪問權限,限制未授權用戶訪問敏感資源(如/admin/*
)。在應用的WEB-INF/web.xml
中添加:
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Admin Area</web-resource-name>
<url-pattern>/admin/*</url-pattern> <!-- 受保護的路徑 -->
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name> <!-- 需具備的角色 -->
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method> <!-- 認證方式(BASIC/FORM/DIGEST) -->
<realm-name>Application Realm</realm-name> <!-- 認證域名稱 -->
</login-config>
<security-role>
<role-name>admin</role-name> <!-- 角色聲明 -->
</security-role>
說明:auth-method
可選擇BASIC
(簡單用戶名密碼)、FORM
(表單認證)或DIGEST
(加密認證),根據安全需求選擇。
自動部署功能可能被惡意利用,通過修改server.xml
關閉。編輯/opt/tomcat/conf/server.xml
,找到<Host>
標簽,設置:
<Host name="localhost" appBase="/opt/tomcat/webapps" unpackWARs="false" autoDeploy="false">
說明:autoDeploy="false"
禁用自動部署,unpackWARs="false"
禁止自動解壓WAR文件,需手動部署應用以增強安全性。
版本信息泄露會增加攻擊面,通過修改server.xml
中的Connector
節點隱藏版本。編輯/opt/tomcat/conf/server.xml
,添加server
屬性:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
server="Custom Server Name" /> <!-- 替換為自定義名稱 -->
說明:server
屬性值可設置為任意字符串(如MySecureTomcat
),避免暴露Tomcat版本。