安全降级核心是让Tomcat以专用低权限系统用户(如Linux的tomcat用户)运行,而非依赖“用户组”;需创建-r -s /sbin/nologin用户,严格限制目录权限、关闭默认应用与高风险功能,并强化日志审计。

Tomcat用户组本身不是系统级用户组,真正需要降级的是运行Tomcat进程的**操作系统用户**(如 Linux 下的 tomcat 用户),而非“Tomcat用户组”这一概念。安全降级的核心目标是:让 Tomcat 进程以最低必要权限运行,即使被漏洞利用(如内存马、反序列化、路径遍历等),也无法读写系统关键文件、执行提权操作或横向渗透。
创建专用低权限运行用户
不复用 root、admin 或其他高权限账户。应在系统层面新建一个专用用户,例如:
- Linux:执行
useradd -r -s /sbin/nologin -d /opt/tomcat tomcat(-r创建系统用户,-s /sbin/nologin禁止登录) - 确保该用户不属于
root、sudo、wheel等特权组 - 启动 Tomcat 时明确指定该用户,如通过 systemd service 文件中设置
User=tomcat和Group=tomcat
严格限制文件系统权限
安装目录与应用目录需按最小权限原则分配所有权和访问控制:
-
CATALINA_HOME(如/opt/tomcat)整体归属root:tomcat,权限设为750(所有者可读写执行,组可读执行,其他无权限) -
conf/目录仅root可写,tomcat用户仅可读(防止配置被篡改) -
webapps/、logs/、temp/、work/归属tomcat:tomcat,权限设为750或700(依实际需求) - 禁用 world 可读写权限,避免敏感配置(如
server.xml、tomcat-users.xml)被非授权访问
关闭高风险功能与默认组件
减少攻击面,从源头降低被挟持后的影响范围:
- 删除
$CATALINA_HOME/webapps/下全部默认应用:ROOT、docs、examples、manager、host-manager、webdav - 确需使用 Manager 时,仅保留
manager/text(非 GUI),并通过 IP 白名单 + 反向代理限制访问来源 - 禁用自动部署(
autoDeploy="false")和后台解包(unpackWARs="false"),防止恶意 WAR 包落地执行 - 在
server.xml中关闭目录浏览:listings="false"
加固运行时行为与日志审计
增强对异常行为的感知与响应能力:
- 启用访问日志与错误日志,记录客户端 IP、请求时间、HTTP 方法、状态码、User-Agent
- 配置
AccessLogValve并将日志输出到独立目录(如/var/log/tomcat-access/),权限设为640,归属root:tomcat - 禁止 Tomcat 用户远程登录(检查
/etc/shadow中该用户 shell 是否为/sbin/nologin) - 定期检查该用户是否被加入特权组(
groups tomcat)、是否有异常 SSH 密钥(/home/tomcat/.ssh/不存在或为空)

















