以下是Ubuntu上Tomcat的安全配置步驟,涵蓋關鍵安全措施:
創建專用用戶
避免以root運行Tomcat,創建非特權用戶(如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" ... />
禁用自動部署與刪除默認目錄
關閉自動部署并刪除webapps
下默認應用,防止惡意代碼注入:
<Host name="localhost" appBase="/opt/tomcat/webapps" unpackWARs="false" autoDeploy="false" />
rm -rf /opt/tomcat/webapps/*
隱藏版本信息
修改server.xml
中Connector
的server
屬性,或通過修改catalina.jar
隱藏版本:
<Connector ... server="Custom Server" />
配置SSL/TLS加密
keytool -genkeypair -alias tomcat -keyalg RSA -keystore /opt/tomcat/conf/keystore.jks -validity 365
server.xml
添加HTTPS連接器:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" keystoreFile="/opt/tomcat/conf/keystore.jks" keystorePass="yourpassword" />
權限與訪問控制
manager-gui
):/opt/tomcat/conf/tomcat-users.xml
,刪除冗余用戶或限制IP訪問。web.xml
啟用HTTP Basic認證或表單認證,保護敏感路徑。防火墻與端口管理
使用ufw
限制僅允許必要端口(如8081、8443)訪問:
sudo ufw allow 8081/tcp
sudo ufw allow 8443/tcp
sudo ufw enable
日志與監控
定期審查/opt/tomcat/logs
下的catalina.out
等日志,監控異常訪問。
其他安全優化
server.xml
中AJP相關配置。HttpOnly
屬性,增強會話安全:/opt/tomcat/conf/context.xml
,添加<CookieProcessor sameSiteCookies="strict" />
。驗證配置:重啟Tomcat后,通過瀏覽器訪問HTTPS端口(如https://localhost:8443
),確認安全連接生效。
以上步驟參考自,可根據實際環境調整。