sudo apt update && sudo apt install default-jdk,確保系統包及Java環境(Tomcat依賴JDK)為最新版本。tomcat9),便于后續通過apt自動更新:sudo apt install tomcat9 tomcat9-admin(包含管理組件)。root身份運行Tomcat,創建tomcat用戶組及用戶,并設置目錄權限:sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat # 若使用官方包,路徑為/var/lib/tomcat9
sudo chown -R tomcat:tomcat /var/lib/tomcat9/ # 官方包路徑
sudo chmod -R 750 /var/lib/tomcat9/
/etc/tomcat9/server.xml(官方包路徑),調整HTTP(默認8080)和HTTPS(默認8443)端口,降低被掃描工具發現的風險:<Connector port="1234" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" />
/var/lib/tomcat9/webapps/下的docs、examples文件夾(避免泄露服務器信息),若不需要管理界面,可重命名manager、host-manager目錄:sudo rm -rf /var/lib/tomcat9/webapps/docs /var/lib/tomcat9/webapps/examples
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
server.xml的Connector標簽中添加server屬性,掩蓋Tomcat版本:<Connector port="1234" protocol="HTTP/1.1" ... server="CustomSecureServer" />
/etc/tomcat9/tomcat-users.xml,僅添加必要的管理角色(如manager-gui用于Web管理界面、admin-gui用于管理員操作),并設置強密碼(包含大小寫字母、數字、特殊字符):<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="secureAdmin" password="YourStrongPassword123!" roles="manager-gui,admin-gui"/>
</tomcat-users>
RemoteAddrValve閥門限制僅允許內部IP訪問管理界面(如192.168.1.0/24),編輯/var/lib/tomcat9/webapps/manager/META-INF/context.xml(官方包路徑):<Context>
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+|127\.\d+\.\d+\.\d+" />
</Context>
keytool生成自簽名證書(生產環境建議使用Let’s Encrypt等CA簽發的證書):sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat9/keystore.jks -validity 365 -keysize 2048
依次輸入密鑰庫密碼、姓名、組織等信息(注意:Common Name需填寫服務器域名或IP)。server.xml中添加HTTPS連接器,引用生成的證書:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/etc/tomcat9/keystore.jks"
keystorePass="yourKeystorePassword"
clientAuth="false" sslProtocol="TLS" />
sudo ufw allow 1234/tcp # 自定義HTTP端口
sudo ufw allow 8443/tcp # HTTPS端口
sudo ufw allow 22/tcp # SSH端口(用于遠程管理)
sudo ufw enable # 啟用防火墻
apt自動更新Tomcat及相關組件,修復已知漏洞:sudo apt update && sudo apt upgrade tomcat9
server.xml的Host標簽中添加AccessLogValve),并使用logwatch工具定期分析日志:sudo apt install logwatch
sudo logwatch --service tomcat --output mail # 通過郵件發送日志報告
示例AccessLogValve配置:<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log."
suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
server.xml中注釋或刪除AJP連接器(默認端口8009),減少攻擊面。webapps、work、temp目錄僅允許tomcat用戶讀寫:sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps/
sudo chmod -R 750 /var/lib/tomcat9/webapps/
通過以上步驟,可顯著提升Debian系統上Tomcat的安全性,防范常見的掃描、未授權訪問及數據泄露風險。需定期復查配置(如每季度),并根據業務需求調整權限與訪問規則。