以下是在Ubuntu中配置Tomcat安全設置的關鍵步驟:
創建專用用戶
避免以root運行Tomcat,創建非root用戶(如tomcat
)并設置權限:
sudo useradd -m -d /opt/tomcat -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
修改默認端口
編輯/opt/tomcat/conf/server.xml
,將HTTP/AJP端口改為非默認值(如8081/8009):
<Connector port="8081" protocol="HTTP/1.1" ... />
<Connector port="8009" protocol="AJP/1.3" ... />
關閉自動部署
在server.xml
的<Host>
標簽中設置:
unpackWARs="false" autoDeploy="false"
隱藏版本信息
修改server.xml
中<Connector>
的server
屬性,或修改catalina.jar
中的ServerInfo.properties
文件。
配置SSL/TLS
keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/tomcat/keystore.jks -validity 365
server.xml
添加HTTPS連接器:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" keystoreFile="/opt/tomcat/keystore.jks" keystorePass="yourpassword" />
權限與防火墻
sudo chown -R tomcat:tomcat /opt/tomcat/webapps
ufw
配置防火墻,僅允許必要端口(如8081、8443):sudo ufw allow 8081/tcp
sudo ufw allow 8443/tcp
sudo ufw enable
用戶認證與訪問控制
tomcat-users.xml
中定義角色和用戶:<role rolename="manager-gui"/>
<user username="admin" password="password" roles="manager-gui"/>
web.xml
中配置安全約束(如限制/admin路徑訪問):<security-constraint>
<web-resource-collection>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-gui</role-name>
</auth-constraint>
</security-constraint>
日志與監控
定期審查/opt/tomcat/logs
下的日志文件,配置入侵檢測系統(IDS)監控異常流量。
注意:生產環境中建議使用由CA簽發的正式證書,而非自簽名證書,并定期更新Tomcat至最新版本以修復安全漏洞。