Tomcat默认管理界面需严格限制访问:先在tomcat-users.xml配置manager-gui/admin-gui角色及用户,再修改manager和host-manager的context.xml中RemoteAddrValve的allow属性为指定IP白名单(如127.\d+\.\d+\.\d+|192\.168\.1\.100),重启生效;同时防火墙仅放行可信源8080端口,生产环境建议删除manager、host-manager等目录或通过Nginx反向代理隔离。

Tomcat 自带的后台管理界面(/manager 和 /host-manager)默认暴露在 8080 端口下,若未加限制,极易被扫描利用。配合防火墙做路径级访问控制虽不能替代身份认证和 HTTPS,但能显著缩小攻击面——关键在于:防火墙本身不解析 HTTP 路径,所以真正有效的做法是“用防火墙限制访问来源 + 在 Tomcat 层做路径级拦截”,两者配合才稳妥。
只允许指定 IP 访问管理路径(推荐)
这是最实用、最易落地的方式。本质是让 Tomcat 拒绝非白名单 IP 对 /manager 和 /host-manager 的所有请求,而不是靠防火墙“拦 URL”。
- 编辑
$CATALINA_HOME/conf/tomcat-users.xml,确保已配置管理员角色和用户(如manager-gui,admin-gui) - 编辑
$CATALINA_HOME/webapps/manager/META-INF/context.xml和$CATALINA_HOME/webapps/host-manager/META-INF/context.xml - 将其中的
<valve></valve>配置改为(示例只允 192.168.1.100 和本地访问):
allow="127\.\d+\.\d+\.\d+|192\.168\.1\.100" />
保存后重启 Tomcat。这样即使端口开放,非授权 IP 请求 /manager/html 也会直接返回 403。
防火墙配合:仅放行可信源的 8080 端口
在系统防火墙层面收紧入口,作为第一道防线:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- CentOS 7/8(firewalld):
firewall-cmd --reload
- 如果管理需从多个固定办公 IP 访问,可逐条添加;不建议开放整个网段
- 生产环境强烈建议关闭 8080 端口对外暴露,改用反向代理(如 Nginx)统一入口,并在代理层再做 IP 限流或 Basic Auth
禁用默认管理应用(彻底规避风险)
若实际不用 Web 管理界面,最安全的做法是直接移除:
- 重命名或删除以下目录(重启 Tomcat 后生效):
$CATALINA_HOME/webapps/host-manager/
$CATALINA_HOME/webapps/docs/
$CATALINA_HOME/webapps/examples/
这些目录含大量演示代码和调试接口,长期暴露是常见入侵入口。删掉后,即使有人扫到 8080 端口,也看不到任何管理入口。
补充:避免用 Apache httpd 做反向代理时误放行
若你用 Apache httpd 代理 Tomcat(常见于混合环境),注意 ProxyPass 不要无差别转发:
- 错误写法(会把所有请求都转给 Tomcat,包括管理路径):
ProxyPassReverse / http://localhost:8080/
- 正确做法:明确排除管理路径,或只代理业务路径
ProxyPassReverse /app/ http://localhost:8080/app/
# 其余路径(如 /manager)不代理,由 Apache 直接返回 404 或 403










