Tomcat在Ubuntu上如何安全配置
导读: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=tomcat、Group=tomcat、UMask=0007,并配置JAVA_HOME、CATALINA_HOME、CATALINA_BASE等环境变量。
二 运行与访问控制
- 降权与最小权限:确保 Tomcat 以 非 root 用户运行;为安装目录设置合理权限(目录 750、文件 640),关键脚本如
bin/*.sh设为 700,敏感文件conf/tomcat-users.xml设为 600。 - 移除或禁用默认应用:删除
webapps下不需要的 docs、examples、ROOT、host-manager、manager,减少攻击面。 - 禁用自动部署:在
conf/server.xml中将 autoDeploy 与 deployOnStartup 设为 false,避免热部署引入风险。 - 管理接口保护:
- 仅保留必要角色,使用 强密码;谨慎授予高权限角色(如
manager-script、manager-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.targetsudo 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 tomcat;sudo systemctl status tomcat;tail -f /srv/tomcat/logs/catalina.out
- 检查状态:
五 持续加固与监控
- 版本与补丁:保持 Tomcat 与系统 的安全更新,及时修复已知漏洞。
- 组件最小化:如业务不使用 AJP,在
server.xml中移除 AJP Connector。 - 日志与告警:集中采集与轮转
catalina.out、localhost*.log等日志,关注异常访问与管理登录失败。 - 访问控制复核:定期审计
tomcat-users.xml与context.xml的权限与 IP 白名单,确保仅授权必要人员与网段。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Tomcat在Ubuntu上如何安全配置
本文地址: https://pptw.com/jishu/769337.html
