如何配置Ubuntu Tomcat安全
导读:Ubuntu 上 Tomcat 的安全加固清单 一 基础与运行环境 使用 JDK 11/17(LTS),通过包管理器或官方二进制包安装,避免未知来源。下载后执行校验(如 sha512sum)确保完整性。 创建专用系统用户(禁止 root...
Ubuntu 上 Tomcat 的安全加固清单
一 基础与运行环境
- 使用 JDK 11/17(LTS),通过包管理器或官方二进制包安装,避免未知来源。下载后执行校验(如 sha512sum)确保完整性。
- 创建专用系统用户(禁止 root 运行):例如 useradd -m -U -d /opt/tomcat -s /bin/false tomcat,后续以该用户启动服务。
- 目录与权限:将安装目录属主设为 tomcat(如 chown -R tomcat:tomcat /opt/tomcat),脚本可执行(chmod +x /opt/tomcat/bin/*.sh)。
- 以 systemd 托管:创建 /etc/systemd/system/tomcat.service,设置 User=tomcat、Group=tomcat、UMask=0007,并配置 JAVA_HOME/CATALINA_HOME 等环境变量,启用开机自启。
- 防火墙:仅开放必要端口(如 8080/8443),UFW 示例:ufw allow 8080/tcp;如需公网访问管理端,仅在内网或跳板机放行。
二 最小化攻击面
- 删除或禁用默认应用与示例:移除 webapps 下的 docs、examples、ROOT、host-manager、manager,或重命名禁用,避免信息泄露与滥用。
- 移除或禁用 AJP 连接器(若不使用 Apache httpd 的 mod_jk),减少暴露面与潜在漏洞入口。
- 关闭自动部署:在 server.xml 中将 autoDeploy 与 deployOnStartup 设为 false,仅通过受控流程发布。
- 隐藏版本信息:在 server.xml 的 Connector 上设置 server=“MySecureTomcat”,降低指纹识别成功率。
- 管理接口最小化:仅在需要时启用 manager/host-manager;优先通过 IP 白名单限制访问,必要时直接删除管理应用。
三 身份与访问控制
- 强口令与最小权限:编辑 conf/tomcat-users.xml,仅为必要账户分配最小角色;避免使用高权限角色(如 manager-script、manager-jmx)给日常发布账户。
- 管理端 IP 白名单:在 webapps/manager/META-INF/context.xml 与 host-manager/META-INF/context.xml 中添加 RemoteAddrValve,例如仅允许 127.0.0.1,192.168.1.100。
- 禁用或重命名管理应用:如无远程管理需求,直接删除 manager 与 host-manager 目录,彻底消除风险。
四 传输加密与端口管理
- 启用 HTTPS/TLS:推荐将 8443 端口用于 HTTPS。使用 Let’s Encrypt 获取证书后转换为 PKCS12(示例命令见下),在 server.xml 配置 SSLHostConfig/Certificate。
- 证书转换与配置示例:
- 转换:openssl pkcs12 -export -in /etc/letsencrypt/live/example.com/fullchain.pem -inkey /etc/letsencrypt/live/example.com/privkey.pem -out /srv/tomcat/conf/keystore.p12 -name tomcat -CAfile /etc/letsencrypt/live/example.com/chain.pem -caname root -password pass:密钥密码
- 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>
- 端口策略:对外仅暴露 443(或 8443) 与必要管理端口;如由 Nginx/Apache 反向代理,Tomcat 侧可仅监听本地端口,降低直接暴露风险。
五 文件权限 日志与运维
- 文件权限最小化:目录 750、文件 640,关键脚本 700,如:
- find /srv/tomcat -type d -exec chmod 750 { } ;
- find /srv/tomcat -type f -exec chmod 640 { } ;
- chmod 700 /srv/tomcat/bin/*.sh
- 运行用户与目录属主:确保 Tomcat 用户对 logs、work、temp、webapps 具备所需读写权限,避免因权限不足导致启动或日志写入失败。
- 日志与审计:定期审计 catalina.out、localhost.*.log 等;如遇到权限问题,核对运行用户与目录属主/权限设置。
- 安全更新与监控:保持 Tomcat 与系统 安全补丁及时更新;启用进程监控与日志告警,关注异常访问与部署行为。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何配置Ubuntu Tomcat安全
本文地址: https://pptw.com/jishu/770485.html
