「服務安全」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伺服器 |