跳转至

如何隐藏 Tomcat 容器版本信息?


2017-07-18 by dongnan

目标

某个出于安全考虑,需要主动的隐藏(混淆) tomcat 容器版本信息,减少因 404 等状态而暴露 tomcat 版本信息。

思路

编辑 ServerInfo.properties 文件,编写无效的版本信息,重新封装 catalina.jar 文件,并附加 tomcat 镜像。

图片中是修改后的 tomcat 容器,即使故意输入不存在的 url 资源,返回的错误信息不包含 tomcat 版本信息。

步骤

  • 拷贝容器中的 jar文件,docker cp test:/usr/local/tomcat/lib/catalina.jar
  • 解包,unzip catalina.jar
  • 编辑配置文件,vim org/apache/catalina/util/ServerInfo.properties
  • 修改信息, server.info=Apache Tomcat
  • 修改信息,server.number= 0.0.0.0
  • 更新 jar包, jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties

验证

# 拷贝 jar包
docker cp catalina.jar test:/usr/local/tomcat/lib/

# 重启容器
docker restart test

# 修改后的版本信息
docker exec -ti test version.sh

Server version: Apache Tomcat
Server built:   Jun 21 2017 09:44:18 UTC
Server number:  0.0.0.0
# ...省略

扩展

验证没有问题后,就可以编辑 Dockerfile 文件,将封装好的 catalina.jar文件,附加到你项目中的 tomcat镜像。

使用自定义镜像创建的 tomcat 容器,默认隐藏 tomcat 版本信息。

参考

如何自定义Docker镜像?

回到页面顶部