Linux下Tomcat如何配置安全
导读:Linux下Tomcat安全配置清单 一 运行账户与最小权限 创建专用系统用户(禁止 root 运行):例如创建用户 tomcat_user,家目录 /srv/tomcat,并禁止登录 shell。 目录与文件权限:Tomcat 安装目录...
Linux下Tomcat安全配置清单
一 运行账户与最小权限
- 创建专用系统用户(禁止 root 运行):例如创建用户 tomcat_user,家目录 /srv/tomcat,并禁止登录 shell。
- 目录与文件权限:Tomcat 安装目录建议权限为目录 750、文件 640;启动脚本如 bin/*.sh 设为 700;部署目录与运行用户分离,避免应用目录可被 Tomcat 用户写入(除非业务必须)。
- 以最小权限运行:通过 systemd 服务设置 User=tomcat_user、Group=tomcat_group、UMask=0007,并开启自动重启。
- 示例(创建用户与权限):
- useradd -m -d /srv/tomcat -s /usr/sbin/nologin tomcat_user
- chown -R tomcat_user:tomcat_group /srv/tomcat
- find /srv/tomcat -type d -exec chmod 750 { } ; & & find /srv/tomcat -type f -exec chmod 640 { } ;
- chmod 700 /srv/tomcat/bin/*.sh
以上做法可降低权限提升与篡改风险,并与系统服务隔离。
二 管理接口与访问控制
- 精简或移除默认应用:如无远程管理需求,可删除 webapps/manager 与 webapps/host-manager;或保留但严格限制访问。
- 强口令与最小角色:在 conf/tomcat-users.xml 仅保留必要角色(如 manager-gui、manager-script、admin-gui、admin-script、manager-status),并为账户设置强口令;删除默认或测试账号。
- 来源 IP 白名单:在 webapps/manager/META-INF/context.xml 与 webapps/host-manager/META-INF/context.xml 中加入 RemoteAddrValve,仅允许内网或跳板机网段访问管理界面。
- 示例(IP 白名单):
- 防火墙配合:仅开放必要端口(如 8080/8443/443),对管理端口限制来源 IP。
通过强认证、最小角色与来源限制,显著降低管理面被滥用风险。
三 加密传输与端口管理
- 启用 HTTPS:在 conf/server.xml 配置 Connector port=“8443”(或 443)并启用 SSLEnabled=“true”,使用 Http11NioProtocol 与 SSLHostConfig/Certificate 指定证书;证书可用 JKS 或 PKCS12。
- 证书准备:
- 自签名测试:keytool -genkey -alias tomcat -keyalg RSA -keystore keystore.jks -validity 365
- 生产证书:将 PFX/PEM+KEY 转为 PKCS12 后使用(keytool -importkeystore … -srcstoretype PKCS12 …)。
- 强制跳转 HTTPS:在 conf/web.xml 末尾加入 security-constraint,设置 transport-guarantee CONFIDENTIAL,使 HTTP 自动跳转 HTTPS。
- 端口与协议:避免使用默认端口 8080/8443 对外暴露;如对外服务,优先 443;不需要 AJP 时直接注释 8009/AJP 连接器。
以上确保数据在传输层加密,并减少攻击面。
四 应用与默认配置安全
- 关闭自动部署与解包:在 conf/server.xml 的 Host 中将 autoDeploy=“false”、unpackWARs=“false”,避免热部署带来的代码注入与篡改风险。
- 禁止目录浏览:在 conf/web.xml 的 DefaultServlet 将 listings 设为 false,防止目录泄露。
- 限制 HTTP 方法:在 DefaultServlet 将 readonly 设为 true,默认禁止 PUT/DELETE 等危险方法。
- 自定义错误页面:在 conf/web.xml 配置 error-page(如 404、500 与 java.lang.Exception),避免堆栈与敏感信息泄露。
- 会话与 Cookie:在 conf/context.xml 设置 useHttpOnly=“true”;在应用的 web.xml session-config 中设置 cookie-config secure=“true”,仅 HTTPS 传输会话 Cookie。
- 隐藏版本信息:修改 lib/catalina.jar 中 ServerInfo.properties(如 server.info、server.number),减少指纹暴露。
这些设置可显著降低信息泄露与攻击成功率。
五 审计日志与运行维护
- 访问日志:在 conf/server.xml 的 Host 中启用 AccessLogValve,记录 客户端 IP、请求方法、状态码、字节数、URL 等,便于审计与溯源。
- 日志轮转与保护:确保 logs/ 目录权限最小化,定期归档与清理,避免日志注入与磁盘被占满。
- 安全重启流程:变更前备份 server.xml/web.xml 与关键目录;使用 systemctl status tomcat 确认状态;先 stop 再 start 并复核进程与日志;必要时回滚配置。
- 基线核查:定期核查用户与角色、开放端口、证书有效期、目录权限与自动部署开关。
完善的日志与变更管理是持续安全运营的关键。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下Tomcat如何配置安全
本文地址: https://pptw.com/jishu/776421.html
