安全扫描:彻底隐藏 Tomcat 版本号 + 服务器名(100% 过扫描)

安全扫描:彻底隐藏 Tomcat 版本号 + 服务器名(100% 过扫描)

最标准、最彻底、一次到位 的 Tomcat 安全加固方案,专门用于安全扫描/等保/漏洞扫描整改,能完全隐藏:

  • HTTP 响应头里的 Tomcat 版本
  • 错误页面(404/500)泄露的版本
  • 服务器名称(Server 头)
  • 所有能被扫描到的版本标识

目标:让扫描工具完全识别不出这是 Tomcat,也看不到任何版本号。


一、最关键:修改 3 个配置文件(必做)

1. 修改 conf/server.xml

作用:隐藏响应头 Server、去掉 X-Powered-By

找到 <Connector> 标签,添加这 2 个属性:

xml 复制代码
server="Unknown"
xpoweredBy="false"

完整示例:

xml 复制代码
<Connector port="8080"
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           server="Unknown"    <!-- 关键:隐藏服务器名 -->
           xpoweredBy="false" /> <!-- 关键:隐藏版本头 -->

2. 继续在 server.xml 隐藏错误页面版本

<Host> 里面加入:

xml 复制代码
<Valve className="org.apache.catalina.valves.ErrorReportValve"
       showReport="false"
       showServerInfo="false" />

完整示例:

xml 复制代码
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
    <!-- 隐藏错误页版本信息 -->
    <Valve className="org.apache.catalina.valves.ErrorReportValve"
           showReport="false"
           showServerInfo="false" />
</Host>

3. 修改 conf/web.xml

作用:自定义 404/500 错误页,彻底不泄露任何信息

</web-app> 上面添加:

xml 复制代码
<error-page>
    <error-code>404</error-code>
    <location>/error.html</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/error.html</location>
</error-page>
<error-page>
    <error-code>403</error-code>
    <location>/error.html</location>
</error-page>

然后在 webapps/ROOT/ 下新建一个空白 error.html

html 复制代码
访问出错

二、最高级:彻底删除 Tomcat 版本标识(安全扫描必过)

这一步必须做,否则漏洞扫描依然能识别出 Tomcat 版本!

操作步骤:

  1. 进入 Tomcat 的 lib 目录
bash 复制代码
cd TOMCAT_HOME/lib
  1. 解压 catalina.jar 里的版本配置文件
bash 复制代码
jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties
  1. 编辑这个文件
bash 复制代码
vim org/apache/catalina/util/ServerInfo.properties
  1. 全部清空或改成无意义内容
properties 复制代码
server.info=Unknown
server.number=0.0
server.built=Unknown
  1. 重新打包回 jar
bash 复制代码
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
  1. 删除临时文件夹
bash 复制代码
rm -rf org/

三、最后重启 Tomcat

bash 复制代码
shutdown.sh
startup.sh

四、验证是否成功(自己测一下,确保过扫描)

1. 测响应头

bash 复制代码
curl -I http://IP:端口

✅ 必须看不到:

  • Server: Apache Tomcat/x.x.x
  • X-Powered-By: Tomcat

2. 测 404 页面

bash 复制代码
curl http://IP:端口/xxxxxx

✅ 必须看不到任何 Tomcat 版本号、错误堆栈。


最终效果(安全扫描认可)

  • 无 Tomcat 版本号
  • 无服务器名称
  • 无错误页泄露信息
  • 漏洞扫描无法识别中间件类型
  • 可直接通过等保、渗透测试、安全扫描

总结

  1. server.xml:隐藏 HTTP 头版本
  2. ErrorReportValve:隐藏错误页版本
  3. catalina.jar:彻底删除底层版本标识(最关键)
  4. 自定义错误页:完全屏蔽系统默认页面
相关推荐
动力 continue2 小时前
Linux 基础篇 · 压缩打包与用户管理
linux·服务器·基础命令linux
画中有画3 小时前
软件架构中质量属性(性能、安全、可扩展性)的权衡设计
java·运维·安全
g3voip3 小时前
防爆电话如何接入SIP调度系统?工业通信系统架构解析
服务器·tcp/ip·系统架构·信息与通信·ip
唐山柳林3 小时前
筑牢“数字堤坝”,守住安全底线——洞庭湖堤防安全监测平台为蓄滞洪区安上“智慧大脑”
安全
hoaxxcj3 小时前
零能力 Agent 骗过评测实测:朴素 harness 被骗 75%,加固后仍漏掉「抄答案」
网络·安全·大模型·工程化·ai实战
Tokenge4 小时前
AI 前沿日报|2026.08.19:模型安全按下减速键,智能体进入“可控落地”新阶段
人工智能·安全
Zach_菠萝侠4 小时前
【DeepSeek Harness 研究】进化方向4:安全加固 思考、设计与实现
开发语言·安全·deepseek
猫咪宝妖4 小时前
【信息安全工程师】网络与信息安全理论
网络·安全·web安全
FL16238631295 小时前
室内易燃物识别易燃评估室内易燃程度识别分割数据集labelme格式1015张85类别
java·服务器·前端
恒拓高科WorkPlus6 小时前
信创即时通讯上线前要验证哪些能力?BeeWorks选型与验证指南
大数据·安全