如何隐藏 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
版本信息。