安全扫描:彻底隐藏 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. 自定义错误页:完全屏蔽系统默认页面
相关推荐
白露与泡影32 分钟前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
wuhanzhanhui41 分钟前
视觉革命与主动安全:2026武汉汽车电子展会定档,看芯片如何定义驾驶
安全·汽车
神奇霸王龙1 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码2 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress
王维同学2 小时前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举
c++·windows·安全
张小姐的猫5 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
国科安芯5 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
栩栩云生5 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
huijingjituan6 小时前
新一代IM聊天软件|构建企业专属智能通讯生态
安全·实时互动·即时通讯·极光鸟·灰鲸
其实防守也摸鱼6 小时前
补天SRC新手入门指南:从0到1的漏洞挖掘之路
网络·python·学习·安全·web安全·数据挖掘·挖洞