1. 用戶與權限管理
useradd -r -m -d /opt/tomcat -s /bin/false tomcat
創建無登錄權限的專用用戶,避免以root運行Tomcat;并通過chown -R tomcat:tomcat /opt/tomcat
設置目錄所有權,限制權限范圍。tomcat-users.xml
,移除不必要的用戶角色(如manager-gui
),僅為必要人員創建強密碼賬戶(包含大小寫字母、數字、特殊符號,長度≥8位);可通過<role>
和<user>
標簽限制訪問范圍。2. 端口與服務加固
server.xml
中的<Connector>
標簽,將HTTP默認端口8080改為非標準端口(如8081),AJP端口8009也同步修改,減少端口掃描攻擊風險。server.xml
的<Host>
標簽中設置autoDeploy="false"
、unpackWARs="false"
,防止惡意WAR文件自動解壓部署,避免未授權代碼執行。server.xml
中的AJP連接器(<Connector port="8009" protocol="AJP/1.3">
),減少攻擊面。3. 版本與信息隱藏
server.xml
中的<Connector>
標簽,添加server="Custom Server Name"
屬性;或修改lib/catalina.jar
中的ServerInfo.properties
文件(需解壓修改后重新打包),避免泄露版本信息,降低針對性攻擊概率。4. SSL/TLS加密配置
server.xml
添加如下配置,加密客戶端與服務器間的通信,防止中間人攻擊:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/path/to/keystore.jks" keystorePass="your_password"
clientAuth="false" sslProtocol="TLS"/>
```。
5. 防火墻與訪問控制
firewalld
或iptables
限制Tomcat端口訪問,例如:sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent # 允許修改后的HTTP端口
sudo firewall-cmd --zone=public --add-port=8443/tcp --permanent # 允許HTTPS端口
sudo firewall-cmd --reload
或通過iptables
添加規則:iptables -A INPUT -p tcp --dport 8081 -j ACCEPT
,并默認拒絕其他端口。tomcat-users.xml
中通過<Valve>
標簽限制管理控制臺訪問IP,例如僅允許公司IP訪問:<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.1\.\d+" />
```。
6. 應用與目錄安全
webapps
目錄下的docs
、examples
、manager
、ROOT
、host-manager
等默認應用,避免暴露敏感信息或不必要的功能。web.xml
(全局或應用級),設置listings="false"
,防止目錄結構泄露:<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
```。
context.xml
,添加useHttpOnly="true"
屬性,防止XSS攻擊竊取會話Cookie;設置sessionCookieSecure="true"
,強制HTTPS傳輸Cookie。7. 日志與監控
logging.properties
文件,設置關鍵組件的日志級別為FINE
或ALL
(如org.apache.catalina.core.ContainerBase
),記錄訪問和操作詳情,便于安全審計。grep
、awk
等工具分析logs/catalina.out
、logs/localhost_access_log.*.txt
等日志,監控異常訪問(如頻繁的404錯誤、大量POST請求),及時響應潛在攻擊。8. 定期更新與補丁管理