隱藏Tomcat中間件名稱及版本號

目的

防止黑客利用Tomcat中間件及版本號有針對性發起攻擊。

處理方法

輸入命令方式

# 進入tomcat/lib目錄
cd Tomcat目錄/lib
# 解決catalina.jar,備份ServerInfo.properties
unzip catalina.jar
cp org/apache/catalina/util/ServerInfo.properties ServerInfo.properties.bak
# 替換中間件名稱、版本號爲Unknown
sed -i "s/server.info=.*/server.info=Unknown/g" org/apache/catalina/util/ServerInfo.properties
sed -i "s/server.number=.*/server.number=Unknown/g" org/apache/catalina/util/ServerInfo.properties
# 查看替換是否成功,輸出server.info與server.number均爲Unknown即正常
grep server org/apache/catalina/util/ServerInfo.properties
# 修改的配置文件替換jar內文件
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
# 刪除解壓的臨時文件
rm org META-INF -rf

腳本方式

#!/bin/bash
[ ! -d "lib" ] && echo "lib目錄不存在,請檢查腳本是否正確放到tomcat目錄下" && exit;
cd ./lib
[ -d "org" ] && rm -rf org;
[ -d "META-INF" ] && rm -rf META-INF;
unzip -q catalina.jar
[ $? != 0 ] && echo "unzip命令不存在,請安裝後重試" && exit;
sed -i "s/server.info=.*/server.info=Unknown/g" org/apache/catalina/util/ServerInfo.properties
sed -i "s/server.number=.*/server.number=Unknown/g" org/apache/catalina/util/ServerInfo.properties
jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
[ $? != 0 ] && echo "jar命令不存在,可能在PATH中找不到,請正確配置後重試" && exit;
rm org META-INF -rf
echo "操作完成。"

將腳本命名爲 tomcat-no-version.sh,放入tomcat目錄下執行 sh tomcat-no-version.sh

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章