CentOS JSP安全配置怎么做
小樊
34
2025-12-27 11:53:32
CentOS 上部署 JSP 的安全配置清单
一 运行环境安全基线
- 以最小权限运行:创建专用系统用户(如 tomcat),禁止以 root 启动;为 Tomcat 目录设置合理属主与权限,仅授权必要读写。示例:将 webapps/、logs/、work/ 归 tomcat:tomcat,权限 750/640 分级控制。
- 系统与中间件及时更新:保持 CentOS 与 JDK/Tomcat 的安全补丁同步,及时修复已知漏洞。
- 网络访问控制:仅开放必要端口(如 8080/8443/80/443),使用 firewalld 精准放行;云上实例同步配置安全组策略。
- 资源与进程隔离:通过 systemd 管理 Tomcat,设置内存与 GC 参数,限制异常增长;必要时使用 cgroups 做进一步隔离。
- 日志与审计:开启并轮转 catalina.out、localhost.log*,集中采集与告警异常访问与错误。
以上做法覆盖最小权限、文件权限、更新、防火墙、资源管理、日志审计等核心基线要求。
二 Tomcat 与 JSP 配置加固
- 删除或禁用示例与管理应用:清理 webapps 下的 docs、examples、host-manager、manager、ROOT 等默认应用;如必须使用管理应用,务必限制来源 IP、强口令与多因素。
- 禁止目录浏览:在 conf/web.xml 将 listings 设为 false,避免敏感目录结构泄露。
- 隐藏服务标识:修改 Server 响应头,避免泄露 Tomcat/版本 信息(如处理 catalina.jar 中的 ServerInfo.properties)。
- 连接器与协议:仅启用必要连接器;生产建议使用 HTTPS/TLS,必要时在前端 Nginx 终止 TLS 并反向代理到 Tomcat 8080。
- 会话与 Cookie:启用 HttpOnly、Secure 标志,设置合理 会话超时;防范会话固定与劫持。
- 错误与信息泄露:配置自定义错误页面,生产环境不暴露堆栈与路径信息。
- 示例(server.xml 片段,启用 HTTPS 连接器):
以上措施覆盖目录清理、目录浏览、服务隐藏、会话与错误处理、以及 Tomcat 侧 HTTPS 配置要点。
三 传输层与应用层安全
- 全站 HTTPS:优先使用 Nginx/Apache 终止 TLS,对外仅暴露 443,将 80→443 重定向;证书采用 Let’s Encrypt 或受信任 CA。
- 强化浏览器安全头:统一添加 Strict-Transport-Security、X-Frame-Options、X-Content-Type-Options、Content-Security-Policy;CSP 建议先用 Report-Only 观测再切换强制模式。
- 快速示例(Nginx):
add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;
add_header X-Frame-Options “SAMEORIGIN” always;
add_header X-Content-Type-Options “nosniff” always;
add_header Content-Security-Policy “default-src ‘self’; script-src ‘self’; object-src ‘none’;” always;
- WAF 缓解:短期可接入云 WAF 或部署 ModSecurity+OWASP CRS,拦截 SQLi/XSS 等常见攻击;长期仍需代码级修复。
- 输入校验与输出编码:对所有用户输入进行严格校验与过滤,输出到页面/响应时进行适当编码,降低 XSS/SQLi 风险。
以上做法覆盖 HTTPS 强制、HSTS、浏览器安全头、CSP、WAF 与输入校验等应用层关键控制。
四 快速检查清单与验证步骤
- 基线:运行用户非 root;目录权限最小化;系统与应用为最新安全补丁;仅开放 80/443/8080/8443 等必要端口。
- Tomcat:示例应用已移除;web.xml listings=false;Server 头已隐藏;管理应用受限或禁用;连接器按需启用并配置 TLS。
- 传输与应用:HTTPS 全站生效;HSTS/安全头 已下发;WAF 规则已启用并观察误拦;关键操作有输入校验与日志审计。
- 验证:
- 访问不存在目录返回 403 而非目录列表;
- 响应头包含 Strict-Transport-Security、X-Frame-Options、X-Content-Type-Options、Content-Security-Policy;
- 管理后台仅内网可达或需强认证;
- 日志中无敏感信息泄露与异常堆栈。
该清单便于上线前自检与周期性复检,确保加固措施持续有效。