温馨提示×

Debian Tomcat配置安全策略

小樊
42
2025-11-22 06:09:26
栏目: 智能运维

Debian 上 Tomcat 的安全策略清单

以下清单面向 Debian 上的 Tomcat 9,覆盖从系统账户、服务配置、网络访问控制到应用层防护的关键要点,可直接对照实施并纳入日常运维。

一 系统与运行账户安全

  • 保持系统与软件包为最新:执行 sudo apt update && sudo apt upgrade,及时修补漏洞。
  • 创建专用的 tomcat 系统用户(禁止登录 shell),并将 Tomcat 目录属主设为该用户,避免使用 root 启动:
    sudo groupadd tomcat
    sudo useradd -s /bin/false -g tomcat -d /var/lib/tomcat9 tomcat
    sudo chown -R tomcat:tomcat /var/lib/tomcat9 /etc/tomcat9 /var/log/tomcat9
  • 使用系统服务管理 Tomcat(如 systemd),确保以 tomcat 用户运行,并限制服务权限与能力。
  • 定期查看与审计日志:/var/log/tomcat9/catalina.out、localhost*.log 等,建议配合 logwatch 或集中化日志平台。

二 最小化服务与默认内容

  • 删除或禁用默认与示例应用,减少攻击面:
    sudo rm -rf /var/lib/tomcat9/webapps/{docs,examples,ROOT}
  • 管理控制台(manager、host-manager)建议:
    • 生产环境直接删除:sudo rm -rf /var/lib/tomcat9/webapps/{manager,host-manager};或
    • 保留但重命名并限制来源 IP(见第四节)。
  • 禁止目录浏览:编辑 /etc/tomcat9/web.xml,将 listings 设为 false
  • 关闭热部署与生产环境不使用的特性:
    • /etc/tomcat9/server.xml 中设置 autoDeploy=“false”
    • 禁用 AJP 连接器(如业务不使用):将 <Connector port=“8009” … /> 移除或注释;
    • 禁用远程关闭端口:将 的端口改为 -1 或设置复杂 shutdown 命令。

三 网络与传输安全

  • 修改默认端口,降低自动化扫描命中率:在 /etc/tomcat9/server.xml 的 HTTP Connector 将 port 改为非 8080 的值(如 1234),并确保 redirectPort=“8443”
  • 配置 SSL/TLS:在 server.xml 添加 HTTPS Connector,使用有效证书(如 Let’s Encrypt),示例:
  • 强制 HTTPS:在应用的 web.xml 增加安全约束,将所有请求提升到 CONFIDENTIAL

    Protected Context/*
    CONFIDENTIAL
  • 防火墙仅放行必要端口(示例):sudo ufw allow 1234/tcp、sudo ufw allow 8443/tcp,必要时仅允许内网网段访问管理口。

四 身份鉴别与访问控制

  • 强化 tomcat-users.xml:删除默认弱口令账户,仅保留必要角色;为管理账户设置高强度随机密码并妥善保管;如保留管理应用,仅在内网开放访问。
  • 启用 LockOutRealm 防暴力破解:


  • 会话与 Cookie 安全:在 /etc/tomcat9/context.xml 设置 useHttpOnly=“true”;在应用的 web.xml 中设置 truetrue
  • 隐藏版本信息:在 server.xml 的 Connector 上设置 server=“CustomServer” 或清空,减少信息泄露。

五 加固与验证

  • 启动 Security Manager(可选,评估对现有应用的影响):在启动脚本或 systemd ExecStart 前加入 -security 参数,细化策略后再用于生产。
  • 自定义错误页面,避免泄露版本与堆栈:在应用的 web.xml 增加 处理 404/403/500java.lang.Exception
  • 变更后重启并验证:sudo systemctl restart tomcat9;使用 curl -I 检查响应头(如 ServerStrict-Transport-SecuritySet-CookieHttpOnly/Secure 标志),确认 HTTP→HTTPS 强制跳转生效。

0