温馨提示×

Tomcat在Ubuntu上的安全设置有哪些

小樊
45
2026-01-09 11:58:37
栏目: 智能运维

Ubuntu 上 Tomcat 的安全设置清单

一 运行身份与系统最小化

  • 使用专用的非 root 系统用户运行 Tomcat(如 tomcat_user:tomcat_group),禁止以 root 直接启动;创建用户示例:useradd -m -U -d /opt/tomcat -s /bin/false tomcat。服务以该用户启动,降低提权风险。
  • 目录与文件权限最小化:Tomcat 安装目录建议 750,文件 640;启动脚本如 bin/*.sh 700;敏感配置如 conf/tomcat-users.xml 600;确保日志、工作目录归属 tomcat 用户。
  • 以 systemd 托管进程,设置 User/Group、合理的 UMask(如 0007)、失败重启策略,避免人工运维带来的权限与稳定性问题。
  • 版本与运行时:优先选择 JDK 11/17(LTS) 与对应 Tomcat 主线版本,避免使用修改版或来源不明的二进制包。

二 网络与端口加固

  • 更改默认端口:将 8080 改为非默认端口(如 8081),减少自动化扫描命中率;在 conf/server.xml 中修改 port 属性。
  • 边界与云安全组:仅放通必要端口(如 8080/8443/80/443),对管理接口可仅内网或跳板机放行;如使用云服务器,同步配置安全组白名单。
  • 防火墙:Ubuntu 使用 UFW 放行对应端口(如 ufw allow 8080/tcp),变更后及时生效与复核。
  • 禁用或删除不需要的默认应用(如 docs、examples、ROOT 的非必要内容),减少攻击面。

三 管理接口与访问控制

  • 强口令与最小权限:在 conf/tomcat-users.xml 中为管理角色(如 manager-gui、admin-gui)配置强密码,仅授予必要角色,避免使用默认或弱口令。
  • 来源 IP 白名单:在 webapps/manager/META-INF/context.xmlhost-manager/META-INF/context.xml 中加入 RemoteAddrValve,仅允许内网或跳板机网段访问,例如 allow=“127.0.0.1,192.168.1.0/24”。
  • 如非必须,直接禁用管理应用(删除或移出 webapps),通过 CI/CD 或受控脚本完成发布。

四 加密传输与证书管理

  • 启用 HTTPS:在 conf/server.xml 配置 8443 端口的 SSL/TLS Connector,使用 PKCS12JKS 证书;证书可从 Let’s Encrypt 获取并转换为 PKCS12 后配置到 Tomcat。
  • HTTP 到 HTTPS 跳转:在 内使用 HttpRedirectValve 或在反向代理层统一做 80→443 跳转,确保明文访问被阻断。
  • 证书更新:证书到期前在证书颁发机构续期,更新 keystore 后热重载或滚动重启 Tomcat,确保不中断业务。

五 监控日志与运行维护

  • 日志轮转:为 catalina.out 等日志配置 logrotate(如 daily、rotate 7、compress、size 50M),避免磁盘被撑满导致服务异常。
  • JMX 安全:如需监控,避免在公网开放 JMX(如 9090),生产环境应启用认证与加密,或仅在本地/跳板机通过 SSH 隧道访问。
  • 安全变更流程:变更前备份 server.xml、web.xml、tomcat-users.xml 等关键配置与日志;变更中按序停止、校验、启动;变更后复核监听端口、进程属主与访问策略。
  • 运行期自检:使用 systemctl 检查服务状态,确认端口、进程与日志输出正常;必要时滚动重启以减少影响。

0