ubuntu

Ubuntu中Tomcat安全设置怎么做

小樊
38
2025-08-30 07:43:49
栏目: 智能运维

以下是在Ubuntu中配置Tomcat安全设置的关键步骤:

  1. 创建专用用户
    避免以root运行Tomcat,创建非root用户(如tomcat)并设置权限:

    sudo useradd -m -d /opt/tomcat -s /bin/false tomcat  
    sudo chown -R tomcat:tomcat /opt/tomcat  
    
  2. 修改默认端口
    编辑/opt/tomcat/conf/server.xml,将HTTP/AJP端口改为非默认值(如8081/8009):

    <Connector port="8081" protocol="HTTP/1.1" ... />  
    <Connector port="8009" protocol="AJP/1.3" ... />  
    
  3. 关闭自动部署
    server.xml<Host>标签中设置:

    unpackWARs="false" autoDeploy="false"  
    
  4. 隐藏版本信息
    修改server.xml<Connector>server属性,或修改catalina.jar中的ServerInfo.properties文件。

  5. 配置SSL/TLS

    • 生成自签名证书(测试用):
      keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/tomcat/keystore.jks -validity 365  
      
    • 编辑server.xml添加HTTPS连接器:
      <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"  
                 SSLEnabled="true" keystoreFile="/opt/tomcat/keystore.jks" keystorePass="yourpassword" />  
      
  6. 权限与防火墙

    • 限制应用部署目录权限(非root用户拥有):
      sudo chown -R tomcat:tomcat /opt/tomcat/webapps  
      
    • 使用ufw配置防火墙,仅允许必要端口(如8081、8443):
      sudo ufw allow 8081/tcp  
      sudo ufw allow 8443/tcp  
      sudo ufw enable  
      
  7. 用户认证与访问控制

    • tomcat-users.xml中定义角色和用户:
      <role rolename="manager-gui"/>  
      <user username="admin" password="password" roles="manager-gui"/>  
      
    • web.xml中配置安全约束(如限制/admin路径访问):
      <security-constraint>  
        <web-resource-collection>  
          <url-pattern>/admin/*</url-pattern>  
        </web-resource-collection>  
        <auth-constraint>  
          <role-name>manager-gui</role-name>  
        </auth-constraint>  
      </security-constraint>  
      
  8. 日志与监控
    定期审查/opt/tomcat/logs下的日志文件,配置入侵检测系统(IDS)监控异常流量。

注意:生产环境中建议使用由CA签发的正式证书,而非自签名证书,并定期更新Tomcat至最新版本以修复安全漏洞。

0
看了该问题的人还看了