為了避免黑客針對某些版本進行攻擊,因此我們需要隱藏或者偽裝 Tomcat 的版本信息。
針對該信息的顯示是由一個jar包控制的,該jar包存放在 Tomcat 安裝目錄下的lib目錄下,名稱為 catalina.jar
1、兩種方式,第一種是修改catalina.jar文件
進入tomcat的lib目錄找到catalina.jar文件
unzip catalina.jar之后會多出兩個文件夾
進入org/apache/catalina/util 編輯配置文件ServerInfo.properties字段來實現來更改我們tomcat的版本信息
修改為
server.info=Apache Tomcat
server.number=0.0.0.0
server.built=Apr 2 2017 07:25:00 UTC
將修改后的信息壓縮回jar包
# cd /tomcat/lib
# jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
重啟tomcat
2、修改server屬性
在Connector中添加server屬性就可以了,具體如下:
打開tomcat的conf/server.xml,在server.xml找到 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" /> 修改后如下: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" server="Microsoft-IIS/6.5"/>
3、默認Tomcat 是開啟了對war包的熱部署。為了防止被植入木馬等惡意程序,因此我們要關閉自動部署。
將unpackWARs和autoDeploy由原先true都改為false
<Host name="localhost" appBase="" unpackWARs="false" autoDeploy="false">
線上是不使用 Tomcat 默認提供的管理頁面的,因此都會在初始化的時候就把這些頁面刪掉。這些頁面是存放在 Tomcat 安裝目錄下的webapps目錄下的。
我們只需要刪除該目錄下的所有文件即可。另外conf/Catalina/localhost目錄下的2個配置文件 host-manager.xml 和 manager.xml 也需要一並刪掉。
4、為了進一步安全,建議使用專用用戶 tomcat 或者 nobody 用戶來啟動 Tomcat,為了防止 Tomcat 被植入 web shell 程序后,可以修改項目文件。因此我們要將 Tomcat 和項目的屬主做分離,這樣子,即便被搞,他也無法創建和編輯項目文件。