1. 安裝Tomcat及基礎準備
在Debian系統上,優先通過官方軟件源安裝Tomcat(如tomcat9),確保后續更新便捷:
sudo apt update && sudo apt install tomcat9 tomcat9-admin -y
安裝完成后,Tomcat服務會自動啟動,可通過systemctl status tomcat9驗證狀態。
2. 創建專用Tomcat用戶并設置權限
為避免以root身份運行Tomcat(高風險),需創建專用系統用戶:
sudo adduser --system --group --shell /bin/false tomcat # 創建無登錄權限的系統用戶
修改Tomcat關鍵目錄(安裝目錄、日志、配置、webapps)的所有權至tomcat用戶/組:
sudo chown -R tomcat:tomcat /var/lib/tomcat9 /var/log/tomcat9 /etc/tomcat9 /opt/tomcat/webapps/
編輯Tomcat服務文件(/etc/systemd/system/tomcat9.service),指定運行用戶/組:
[Service]
User=tomcat
Group=tomcat
UMask=0007 # 限制組外用戶訪問
Restart=always
重新加載systemd并重啟Tomcat使配置生效:
sudo systemctl daemon-reload && sudo systemctl restart tomcat9
驗證Tomcat進程是否以tomcat用戶運行:
ps -ef | grep tomcat
應顯示tomcat用戶對應的進程。
3. 基礎安全配置(修改默認端口/隱藏版本/禁用默認應用)
/etc/tomcat9/server.xml,調整HTTP(默認8080)和HTTPS(默認8443)端口,降低被掃描工具發現的概率:<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" />
<Connector port="8444" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" />
server.xml的<Connector>標簽中添加server屬性,掩蓋服務器版本:<Connector ... server="CustomTomcatServer" />
webapps目錄下的默認示例應用(docs、examples),避免暴露敏感信息:sudo rm -rf /var/lib/tomcat9/webapps/docs /var/lib/tomcat9/webapps/examples
manager/host-manager,可重命名對應目錄:sudo mv /var/lib/tomcat9/webapps/manager /var/lib/tomcat9/webapps/manager_disabled
sudo mv /var/lib/tomcat9/webapps/host-manager /var/lib/tomcat9/webapps/host-manager_disabled
4. 配置SSL/TLS加密通信
為避免數據傳輸被竊聽,需啟用HTTPS。首先生成自簽名證書(生產環境建議使用Let’s Encrypt免費證書):
sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat9/keystore.jks -validity 365 -storepass changeit -keypass changeit
編輯server.xml,添加SSL連接器:
<Connector port="8444" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/etc/tomcat9/keystore.jks"
keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
重啟Tomcat后,通過https://服務器IP:8444訪問即可看到加密連接。
5. 配置防火墻限制訪問
使用ufw(Ubuntu防火墻)限制僅允許必要端口訪問:
sudo apt install ufw -y
sudo ufw allow 8081/tcp # HTTP端口
sudo ufw allow 8444/tcp # HTTPS端口
sudo ufw allow 22/tcp # SSH端口(用于遠程管理)
sudo ufw enable # 啟用防火墻
驗證規則:
sudo ufw status
應顯示上述端口為ALLOW狀態。
6. 強化用戶認證與權限
編輯/etc/tomcat9/tomcat-users.xml,配置管理用戶角色及權限(避免使用弱密碼):
<tomcat-users>
<role rolename="manager-gui"/> <!-- 允許訪問管理界面 -->
<role rolename="admin-gui"/> <!-- 允許訪問管理員界面 -->
<user username="secureAdmin" password="ComplexPassword123!" roles="manager-gui,admin-gui"/>
</tomcat-users>
重啟Tomcat使用戶配置生效:
sudo systemctl restart tomcat9
注意:生產環境中應使用更復雜的密碼,并定期更換。
7. 定期更新與監控
sudo apt update && sudo apt upgrade tomcat9 -y
journalctl查看Tomcat日志,或使用logwatch工具發送每日日志摘要:sudo apt install logwatch -y
sudo logwatch --service tomcat --output mail # 發送郵件報告(需配置郵件服務)
server.xml、tomcat-users.xml等關鍵配置文件,防止配置丟失。