安全扫描:彻底隐藏 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. 自定义错误页:完全屏蔽系统默认页面
相关推荐
Aphasia3111 天前
VPN 与内网穿透
安全
Mr_愚人派3 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
小宇宙Zz3 天前
Maven依赖冲突
java·服务器·maven
DaLi Yao3 天前
【无标题】
人工智能·安全
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院3 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
treesforest3 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
古城小栈3 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
零零信安3 天前
零零信安荣登数世咨询《新质·数字安全专精百强(2026)》暗网情报领域,彰显专业实力与创新引领
安全·网络安全·数据泄露·暗网·零零信安