centos中tomcat的安全配置有哪些
导读:CentOS 下 Tomcat 安全配置清单 一 运行环境与权限 使用非 root 启动:创建专用系统用户并降权运行,禁止以 root 直接启动 Tomcat,减少提权风险。示例:useradd -M -s /sbin/nologin t...
CentOS 下 Tomcat 安全配置清单
一 运行环境与权限
- 使用非 root 启动:创建专用系统用户并降权运行,禁止以 root 直接启动 Tomcat,减少提权风险。示例:
useradd -M -s /sbin/nologin tomcat & & chown -R tomcat:tomcat $CATALINA_HOME。服务以 tomcat 用户运行,文件权限最小化。 - 文件与目录权限:仅对 $CATALINA_HOME/conf、logs、work、temp 等目录授予 tomcat 读写,webapps 只读;敏感目录禁止其他用户访问。
- 最小化安装与清理:首次安装后可移除或禁用 webapps 下的示例与后台管理应用(如 docs、examples、host-manager、manager、ROOT),降低攻击面。
- 系统加固:启用 SELinux 并配置最小权限策略;如确需放宽,应基于策略逐条放行而非直接禁用。
- 日志与审计:确保 logs/catalina.out、localhost_access_log 正常落盘并定期审计,开启必要的访问日志格式与滚动策略。
二 网络与端口
- 防火墙最小暴露:仅开放业务所需端口(如 8080/8443/80),对管理口或管理网段按需限制来源 IP。示例:
firewall-cmd --permanent --add-port=8443/tcp & & firewall-cmd --reload。 - 禁用 AJP:如无需与 Apache HTTPD 通过 AJP 集成,将 server.xml 中 AJP Connector 的端口设为 -1 或直接注释,避免未授权访问与历史漏洞风险。
- 关闭管理端口或限制来源:如保留 8005 关闭端口,务必更改默认 SHUTDOWN 指令为复杂字符串,并限制仅本地访问;更推荐直接关闭或绑定到 127.0.0.1。
- 禁用热部署与自动加载:在 Host 元素中设置 autoDeploy=“false”、unpackWARs=“false”、reloadable=“false”,减少被恶意 WAR 包植入与目录遍历风险。
三 服务端配置加固
- 隐藏版本信息:在 server.xml 的 Connector 增加属性
server="APP Srv 1.0"隐藏 HTTP 响应头版本;如需进一步消除错误页版本泄露,可修改 lib/org/apache/catalina/util/ServerInfo.properties 中的 server.info/server.number。 - 禁用目录列表:在应用的 WEB-INF/web.xml 增加安全约束,禁止目录浏览,防止敏感文件泄露。
- 限制 HTTP 方法:在 web.xml 配置 仅允许业务所需方法(如 GET/POST),禁用 PUT、DELETE、HEAD、OPTIONS、TRACE 等不必要方法。
- 启用 HttpOnly:在 context.xml 为会话 Cookie 设置 useHttpOnly=“true”,降低 XSS 窃取会话风险。
- 管理应用访问控制:如需保留 manager/admin,在对应应用的 META-INF/context.xml 使用 RemoteAddrValve 仅允许内网或跳板机网段访问,例如:
allow="127\.\d+\.\d+\.\d+|::1|192\.168\.\d+\.\d+|10\.\d+\.\d+\.\d+"。
四 加密通信与认证授权
- 启用 HTTPS/TLS:在 server.xml 配置 8443 端口与证书,优先使用有效 CA 证书;自签名证书仅用于测试。示例(NIO + 证书):
< Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> < SSLHostConfig> < Certificate certificateKeystoreFile="/etc/pki/tls/private/tomcat.key" certificateKeystorePassword="YourStrongP@ss" type="RSA"/> < /SSLHostConfig> < /Connector> - 证书与协议:使用 TLS 1.2+,禁用 SSLv3/TLS1.0/1.1;合理配置 ciphers,优先 ECDHE 等前向保密套件。
- 认证与授权:
- 内置用户库:在 conf/tomcat-users.xml 创建最小必要账号,仅授予所需角色(如 manager-gui、admin-gui),并使用强口令或外部凭据管理。
- 外部目录:对接 LDAP/AD,在 Realm 中配置 connectionURL、userBase、roleBase 等,实现统一身份管理与审计。
- 安全约束:在应用 web.xml 为管理路径配置 、、(如 BASIC 或更安全的表单登录),确保只有授权角色可访问。
五 维护与监控
- 及时更新:保持 Tomcat 与 JDK 为受支持版本,及时应用安全补丁,修复已知漏洞。
- JVM 与安全参数:在 bin/setenv.sh 设置如
-Djava.security.egd=file:/dev/./urandom、-server、合理堆大小与编码,减少熵源不足与资源耗尽风险。 - 代码与应用安全:对应用进行安全评审与检测(如使用 FindSecBugs 等工具),防范 SQL 注入、XSS、文件上传 等常见漏洞。
- 日志与告警:集中采集与轮转 catalina.out、localhost_access_log,对异常状态码、频繁失败登录、可疑 UA 等进行监控与告警。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos中tomcat的安全配置有哪些
本文地址: https://pptw.com/jishu/754628.html
