溫馨提示×

Debian中Tomcat安全設置方法

小樊
45
2025-10-09 10:39:46
欄目: 智能運維

1. 系統與Tomcat基礎準備

  • 更新系統及安裝Tomcat:運行sudo apt update && sudo apt upgrade確保系統軟件包最新;使用sudo apt install tomcat9 tomcat9-admin安裝Tomcat及管理組件(如tomcat9-admin包含管理界面所需模塊)。
  • 創建專用Tomcat用戶:通過sudo groupadd tomcat創建tomcat組,再用sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat創建系統用戶(/bin/false禁用登錄shell,/opt/tomcat為Tomcat安裝目錄),避免以root身份運行Tomcat。
  • 設置目錄權限:將Tomcat相關目錄所有權賦予tomcat用戶及組,限制訪問范圍:
    sudo chown -R tomcat:tomcat /opt/tomcat /var/lib/tomcat9 /var/log/tomcat9 /etc/tomcat9
    sudo chmod -R 750 /opt/tomcat  # 確保目錄僅所有者可寫
    

2. 核心安全配置(server.xml)

  • 修改默認端口:編輯/etc/tomcat9/server.xml(或/opt/tomcat/conf/server.xml),將HTTP連接器端口從8080改為非標準端口(如1234),HTTPS端口從8443改為8443(或其他),降低端口掃描風險:
    <Connector port="1234" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" keystoreFile="/path/to/keystore.jks" keystorePass="yourPassword" />
    
  • 隱藏版本信息:在<Connector>標簽中添加server="Custom Server"屬性,掩蓋Tomcat版本,減少針對性攻擊:
    <Connector ... server="Custom Server" />
    
  • 禁用不必要的服務:移除server.xml中的AJP連接器(默認端口8009),避免不必要的協議暴露:
    <!-- 注釋或刪除以下內容 -->
    <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
    

3. 管理界面安全強化

  • 刪除默認管理應用:通過sudo rm -rf /var/lib/tomcat9/webapps/manager /var/lib/tomcat9/webapps/host-manager刪除manager(遠程管理)和host-manager(主機管理)應用,避免未授權訪問。
  • 配置用戶權限:編輯/etc/tomcat9/tomcat-users.xml,添加具有manager-gui(遠程管理)和admin-gui(全局管理)角色的用戶,設置強密碼(如包含大小寫字母、數字和特殊字符):
    <tomcat-users>
        <role rolename="manager-gui"/>
        <role rolename="admin-gui"/>
        <user username="secureAdmin" password="YourSecurePassword123!" roles="manager-gui,admin-gui"/>
    </tomcat-users>
    
  • 限制管理界面訪問:若需保留管理應用,可通過server.xml<Valve>標簽限制IP訪問(如僅允許公司IP):
    <Context path="/manager" privileged="true">
        <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+" />
    </Context>
    

4. SSL/TLS加密配置

  • 獲取SSL證書:使用Let’s Encrypt免費獲取證書(sudo apt install certbot python3-certbot-nginx),或通過OpenSSL生成自簽名證書(僅測試用):
    sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat9/keystore.jks -validity 365 -keysize 2048
    
  • 配置HTTPS連接器:在server.xml中添加SSL連接器,啟用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" />
    
  • 強制HTTPS訪問:在web.xml中添加安全約束,要求敏感頁面(如/manager)使用HTTPS:
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Protected Context</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    

5. 防火墻配置(UFW)

  • 安裝并啟用UFW:通過sudo apt install ufw安裝,然后啟用防火墻:sudo ufw enable。
  • 允許Tomcat端口:開放HTTP(自定義端口,如1234)和HTTPS(8443)端口:
    sudo ufw allow 1234/tcp
    sudo ufw allow 8443/tcp
    
  • 限制訪問源:僅允許特定IP訪問Tomcat端口(如公司IP192.168.1.100),提升安全性:
    sudo ufw allow from 192.168.1.100 to any port 1234/tcp
    sudo ufw allow from 192.168.1.100 to any port 8443/tcp
    
  • 啟用UFW:運行sudo ufw enable激活規則,通過sudo ufw status驗證配置。

6. 日志與監控

  • 開啟詳細日志:編輯/etc/tomcat9/logging.properties,調整日志級別為FINEFINER,記錄更多操作細節(如用戶登錄、請求響應):
    org.apache.catalina.level = FINE
    com.example.webapp.level = FINER
    
  • 定期審計日志:使用logwatch工具每日發送日志摘要(包含Tomcat日志),或通過sudo tail -f /var/log/tomcat9/catalina.out實時監控異常(如大量失敗登錄嘗試、非法URL訪問)。

7. 定期更新與維護

  • 更新Tomcat版本:定期運行sudo apt update && sudo apt upgrade tomcat9,安裝最新安全補?。ㄈ缧迯鸵阎┒矗?。
  • 清理臨時文件:定期清理/opt/tomcat/work(編譯后的JSP文件)和/tmp(臨時上傳文件),避免敏感信息泄露:
    sudo rm -rf /opt/tomcat/work/Catalina/*
    sudo rm -rf /tmp/tomcat_*
    

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女