首页主机资讯Tomcat在Ubuntu上如何安全配置

Tomcat在Ubuntu上如何安全配置

时间2025-12-11 13:40:06发布访客分类主机资讯浏览481
导读:Ubuntu上Tomcat的安全配置清单 一 基础安全基线 使用受支持的 LTS JDK(推荐:JDK 11/17),先执行 java -version 验证环境可用。 创建专用系统用户运行 Tomcat(禁止 root):sudo us...

Ubuntu上Tomcat的安全配置清单

一 基础安全基线

  • 使用受支持的 LTS JDK(推荐:JDK 11/17),先执行 java -version 验证环境可用。
  • 创建专用系统用户运行 Tomcat(禁止 root):sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat,并将安装目录属主设为该用户。
  • 下载 Apache 官方二进制包,用 sha512sum 校验完整性,避免使用第三方修改版。
  • 目录规划建议:将 Tomcat 解压至 /srv/tomcat/opt/tomcat,与系统其他目录隔离。
  • 以服务方式运行:创建 Systemd 单元,设置 User=tomcatGroup=tomcatUMask=0007,并配置 JAVA_HOMECATALINA_HOMECATALINA_BASE 等环境变量。

二 运行与访问控制

  • 降权与最小权限:确保 Tomcat 以 非 root 用户运行;为安装目录设置合理权限(目录 750、文件 640),关键脚本如 bin/*.sh 设为 700,敏感文件 conf/tomcat-users.xml 设为 600
  • 移除或禁用默认应用:删除 webapps 下不需要的 docs、examples、ROOT、host-manager、manager,减少攻击面。
  • 禁用自动部署:在 conf/server.xml 中将 autoDeploydeployOnStartup 设为 false,避免热部署引入风险。
  • 管理接口保护:
    • 仅保留必要角色,使用 强密码;谨慎授予高权限角色(如 manager-scriptmanager-jmx)。
    • 通过 Valve 限制来源 IP,例如在 webapps/manager/META-INF/context.xml 添加 RemoteAddrValve 仅允许内网或跳板机访问;若无需远程管理,可直接删除 manager 应用。
  • 防火墙与端口:使用 UFW 仅开放必要端口(如 8080/8443 或反向代理的 80/443),避免暴露管理端口到公网。

三 加密与传输安全

  • 启用 HTTPS/TLS:建议将 8443 端口用于 HTTPS。使用 Let’s Encrypt 获取证书后转换为 PKCS12 并配置到 Tomcat:
    • 转换证书:openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out /srv/tomcat/conf/keystore.p12 -name tomcat -CAfile chain.pem -caname root -password pass:密钥密码
    • conf/server.xml 配置 HTTPS Connector(示例):
      <
          Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                 maxThreads="150" SSLEnabled="true" scheme="https" secure="true">
          
        <
          SSLHostConfig>
          
          <
          Certificate certificateKeystoreFile="conf/keystore.p12"
                       type="RSA" certificateKeystorePassword="密钥密码"/>
          
        <
          /SSLHostConfig>
          
      <
          /Connector>
          
      
  • 如由 Nginx/Apache 反向代理对外提供 443,Tomcat 侧可仅监听本地 8080,减少直接暴露。

四 服务管理与维护

  • Systemd 服务示例(要点):
    [Unit]
    Description=Apache Tomcat Web Application Container
    After=syslog.target network.target
    
    [Service]
    Type=forking
    Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk
    Environment=CATALINA_PID=/srv/tomcat/temp/tomcat.pid
    Environment=CATALINA_HOME=/srv/tomcat
    Environment=CATALINA_BASE=/srv/tomcat
    ExecStart=/srv/tomcat/bin/startup.sh
    ExecStop=/srv/tomcat/bin/shutdown.sh
    User=tomcat
    Group=tomcat
    UMask=0007
    RestartSec=10
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    执行:sudo systemctl daemon-reload & & sudo systemctl enable --now tomcat
  • 安全重启流程:
    • 检查状态:sudo systemctl status tomcat
    • 备份关键配置与日志:sudo cp /srv/tomcat/conf/server.xml{ ,.bak} sudo cp -r /srv/tomcat/logs logs.bak
    • 优雅停止:sudo systemctl stop tomcat 并确认进程退出
    • 启动并验证:sudo systemctl start tomcatsudo systemctl status tomcattail -f /srv/tomcat/logs/catalina.out

五 持续加固与监控

  • 版本与补丁:保持 Tomcat 与系统 的安全更新,及时修复已知漏洞。
  • 组件最小化:如业务不使用 AJP,在 server.xml 中移除 AJP Connector。
  • 日志与告警:集中采集与轮转 catalina.outlocalhost*.log 等日志,关注异常访问与管理登录失败。
  • 访问控制复核:定期审计 tomcat-users.xmlcontext.xml 的权限与 IP 白名单,确保仅授权必要人员与网段。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Tomcat在Ubuntu上如何安全配置
本文地址: https://pptw.com/jishu/769337.html
Ubuntu Tomcat如何配置优化性能 Debian Python依赖关系如何解决

游客 回复需填写必要信息