「服務安全」Tomat安全設置和版本屏蔽,ASF及旗下項目簡介

「服務安全」Tomat安全設置和版本屏蔽,ASF及旗下項目簡介

來自專欄 蟲蟲搜奇

Apache Tomcat,我們一般簡稱Tomcat,是著名非盈利開源軟體Apache軟體基金會(Apache Software Foundation)的一個免費開源的Java應用伺服器,實現了Java Servlet,JavaServer Pages,Java語言表達和Java WebSocket技術。所有規範基於JCP(Java Community Process)標準,在各大小公司都有廣泛地應用,比如BAT。

Tomcat的開發基於Apache License version 2協議的開放參與式環境,有眾多的參與者和優秀的開發者。目前維護版本為Tomcat 7、Tomcat 8和Tomcat 9系列版本。筆者寫這篇稿子的時候,最新正式版本分別為Tomcat 7.0.85、Tomcat 8.0.50和Tomcat 9.0.5。

筆者所在公司線上平台也是主要Java開發,有大量的Tomcat 伺服器需要維護做安全設置,並且對其做版本屏蔽。今天就以Tomcat伺服器安全設置和版本屏蔽為主題介紹下。

Tomcat安全配置

1、 刪除多餘的工程項目

去掉Tomcat默認附帶的示例文件、幫助文件、禁止Web後台管理界面(有些自動化部署項目可能需要,這時候根據實際進行配置)。

主要刪除webapp目錄下,所有非工程目錄(ROOT DOCS example manage web-manage)等

2、 停止Tomcat shutdown埠

這個埠用於本地放送命令給Tomcat 停止Tomcat的應用伺服器,我們可以通過配置禁止才埠啟動。方法如下:

配置conf/server.xml文件,修改SHUTDOWN埠為-1

<Server port="-1" shutdown="SHUTDOWN">

3、 禁止列目錄

配置conf/web.xml文件,防止直接訪問目錄時由於找不到默認主頁而列出目錄下所有文件,注意本項默認是不列出的。

4、 禁止使用AJP

配置conf/server.xml文件,注釋或刪除如下部分:

<Connector port=」*」 maxThreads=」*」enableLookups=」false」 redirectPort=」*」 protocol=」AJP/**」 />

修改為:

<!–<Connector port=」*」 maxThreads=」*」enableLookups=」false」 redirectPort=」*」 protocol=」AJP/**」 />–>

5、 tomcat 降權啟動

注意一定不要以root特權用戶啟動tomcat,這樣很危險!很危險!很危險!,重要的話說三遍。如果已經用root啟動了,請執行以下步驟加固:

kill -9 pid

(先停掉tomcat),注意不要影響業務

useradd tomcat

修改 tomcat 目錄宿主(目錄按照實際工程目錄替換)

chown tomcat.tomcat /tomcat目錄/apache_tomcat-Rsu tomcatbin/startup.sh

Tomcat版本信息屏蔽

為了屏蔽Tomcat版本信息我們要做做兩個地方的版本信息,假定我們要把Tomcat版本信息修改為FC CDN Server,冒充一個CDN的伺服器,來用唬人(不要廣泛流傳哦)。

1、 ServerInfo.properties自定義服務版本信息

主要表現在網頁錯誤頁等信息中的版本信息。

修改 org/apache/catalina/util/ServerInfo.properties信息,如果沒有的話,先創建該文件。

server.info=FC CDN Server

2、 server.xml自定義服務版本信息

主要表現在Http響應頭中的的版本信息。

修改conf/ server.xml 文件

找到這段內容:

<Connection port=」8080″ protocol=」HTTP/1.1″connectionTimeout=」20000″redirectPort=」8443″/>

修改為:

<Connection port=」8080″ protocol=」HTTP/1.1″connectionTimeout=」20000″redirectPort=」8443″server=」 FC CDN Server 「/>

好了今天的主題就說完了,最後做個小知識科普,筆者發現好多人傻傻分不清楚。

小知識科普

Apache、Tomcat

Apache Httpd,Apache,Apache Tomcat,Tomcat這幾個詞(可能還有很多帶Apache的軟體),可能好多人就知道個Apache,實際上是指Apache HTTP 伺服器Apache Httpd,簡稱Apache。

Apache Tomcat就是今天我們說的主角,Java應用伺服器和容器,簡稱Tomcat。他們因為都是Apache軟體基金會(ASF)旗下的自由軟體項目所以都以Apache起頭。

這麼多Apache的項目為啥只有Apache Httpd可以簡稱為Apache呢?

因為這個基金會就是起源於httpd的的嘛,後來在他的基礎上,發展出來了如Mod_Perl(在apache中運行perl的項目)、Java Apache等項目。

Jakarta項目

Jakarta就是Java Apache項目開始是為了做Java容器的項目,後來在Sun的建議下改名為Jakarta,後來隨著Java不斷流行,Apache也水漲船高,JSF中容納了大量的Java項目(大概200多個,是數量最大的)。很多項目於由於使用人數很大又從Jakarta中分離出來成了頂級項目,目前Jakarta也是已經完成使命退役,不復存在了。

以下就是目前SFC中的項目列表,其家族強盛可見一斑。

推薦閱讀:

TAG:ApacheTomcat | 信息安全 | Web伺服器 |