以下是Ubuntu Tomcat的安全策略配置要點,涵蓋用戶權限、訪問控制、加密傳輸等核心安全措施:
最小權限原則
sudo useradd -m -d /opt/tomcat -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
sudo -u tomcat /opt/tomcat/bin/startup.sh
刪除默認組件
webapps目錄下默認應用(如docs、examples、ROOT等),減少攻擊面:rm -rf /opt/tomcat/webapps/*
關閉自動部署
conf/server.xml中設置autoDeploy="false"和unpackWARs="false",防止惡意代碼自動加載:<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">
管理用戶權限
conf/tomcat-users.xml中定義角色和用戶,僅授權必要權限(如manager-gui僅用于管理界面):<role rolename="manager-gui"/>
<user username="admin" password="強密碼" roles="manager-gui"/>
manager-script),避免遠程命令執行風險。限制管理界面訪問
sudo ufw deny 8080/tcp
sudo ufw allow from 192.168.1.100 to any port 8080
sudo ufw enable
server.xml中通過RemoteAddrValve限制IP:<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+"/>
keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/ssl/tomcat.jks -validity 365
conf/server.xml中配置SSL連接器:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/etc/ssl/tomcat.jks" keystorePass="證書密碼"
sslProtocol="TLS" ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"/>
web.xml中添加安全約束,重定向HTTP到HTTPS。隱藏版本信息
conf/server.xml中Connector的server屬性,避免泄露Tomcat版本:<Connector ... server="Custom Server"/>
catalina.jar中的ServerInfo.properties文件徹底隱藏版本。配置安全頭與Cookie
conf/context.xml中啟用HTTPOnly和Secure屬性,防止Cookie劫持:<Context>
<CookieProcessor sameSiteCookies="strict" httpOnly="true" secure="true"/>
</Context>
日志與監控
conf/logging.properties記錄詳細訪問日志,定期分析異常請求。fail2ban)監控暴力破解嘗試,自動封禁IP。server.xml中注釋或刪除AJP連接器,減少攻擊面。apt定期升級Tomcat至最新版本,修復已知漏洞:sudo apt update && sudo apt upgrade tomcat9
生效步驟:完成配置后,重啟Tomcat使設置生效:
sudo systemctl restart tomcat9
以上配置參考自,可根據實際環境調整,生產環境建議結合專業安全工具(如WAF、IDS)進一步提升防護能力。