Tomcat 服务安全与权限沙箱环境隔离配置

大婷同学_8103

大婷同学_8103

2026-07-19

534人浏览

原创

Tomcat安全加固需构建操作系统、JVM、应用三层隔离沙箱:系统层通过systemd限制权限与网络;JVM层启用SecurityManager并配置细粒度策略;应用层精简组件、强制认证、隐藏版本、禁用远程关闭端口,并实施用户分离与多实例隔离。

tomcat 服务安全与权限沙箱环境隔离配置

Tomcat 服务的安全加固,不是简单关掉几个端口或删掉示例应用,而是构建一套分层隔离的权限沙箱环境——从操作系统级进程沙箱,到 JVM 级 SecurityManager 控制,再到应用层访问约束,三者协同才能真正堵住常见攻击路径。

系统级:用 systemd 实现最小权限启动

即使 Tomcat 进程以 root 启动,也不意味着它该拥有全部系统权限。通过 systemd 单元配置可强制其“视而不见”关键路径:

  • ProtectSystem=strict:让 /usr、/boot、/etc 只读,防止恶意覆盖二进制或配置文件
  • PrivateTmp=yes:为 Tomcat 分配独立 /tmp 和 /var/tmp,避免临时文件被其他进程窥探或污染
  • NoNewPrivileges=yes:禁止 execve() 提权(如运行 setuid 程序),切断本地提权链
  • PrivateNetwork=yes:启用独立网络命名空间,仅保留 lo 接口,真实网卡和主机端口对其不可见
  • RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6:显式放行所需协议族,禁用 AF_NETLINK 等高危类型
  • CapabilityBoundingSet=CAP_NET_BIND_SERVICE:若需监听 80/443,只授此能力,不给 CAP_SYS_ADMIN

JVM 级:启用 SecurityManager 限制代码行为

当部署不可信 Web 应用(如允许用户上传 JSP 或 Servlet)时,SecurityManager 是最后一道防线:

MaxAEO
MaxAEO

MaxAEO是一款AI工具,AI 搜索可见度监测与优化工具。

下载
  • 在 catalina.sh 中添加:JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy==/path/to/catalina.policy"
  • 策略文件中按需授权,例如:permission java.net.SocketPermission "example.com:80", "connect";
  • 禁止危险操作:permission java.lang.RuntimePermission "exitVM"; 阻止 System.exit(1) 类攻击
  • 限制文件访问:permission java.io.FilePermission "/opt/tomcat/webapps/-", "read";,禁止写入或遍历上级目录

应用级:精简默认组件 + 强制认证 + 隐藏信息

生产环境必须剥离所有非必要暴露面,并确保剩余接口受控:

  • 清空 webapps/ 下的 docs、examples、manager、host-manager 目录(或重命名后移出 webapps)
  • 修改 conf/tomcat-users.xml,仅保留最小必需角色与强密码用户,禁用默认 admin/admin
  • 在 conf/web.xml 中配置安全约束,例如限制 /manager/* 必须有 manager-gui 角色
  • 隐藏版本号:修改 conf/server.xml 的 Server 标签,设 server=" " protocol=" " ;并修改 lib/catalina.jar 中的 ServerInfo.properties
  • 关闭远程关闭端口:<server port="-1" shutdown="SHUTDOWN"></server>(port 设为 -1 即禁用)

运行时隔离:用户分离与多实例隔离

避免单点失陷导致全局沦陷,关键在于资源归属与边界清晰:

  • 创建专用低权限用户(如 tomcat:tomcat),不赋予 shell 登录权限,所有 Tomcat 文件属主设为此用户
  • 项目 war 包解压后的 webapps/ 目录属主应与 Tomcat 运行用户不同(如 app:app),防止 webshell 修改自身代码
  • 多应用部署推荐多实例模式:每个实例独占 conf、logs、work、temp 目录,server.xml 中修改 Server port、Connector port、AJP port,避免端口冲突与配置混用

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

tomcat

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3172

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1036

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

929

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

494

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2896

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5432

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

847

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Tomcat核心原理解析
Tomcat核心原理解析

共57课时 | 8.9万人学习