tomcat 安全配置文檔

1.配置文檔中使用$CATALINA_HOME變量聲明爲tomcat的安裝目錄並明確寫出了tomcat的配置文件路徑,此路徑爲測試環境的路徑,線上系統對應配置文件的路徑可能不同,在進行相關配置時,應以線上配置文件的實際路徑爲準。html

2.本文檔僅包括了用於提高安全的配置方法。前端

3.在聽從本文檔的方法進行配置前,請作好相關配置文件的備份,以便在配置失敗時能夠回退到變動前狀態。java

1.新安裝,選用安全穩定版本

編號:linux

Tomcat_Sec_001nginx

適用:web

新安裝或者升級tomcat服務器算法

配置要求:shell

1.新安裝或者升級tomcat服務器時建議選用最新穩定版本,源碼安裝包文件要求從官方網站下載(http://tomcat.apache.org/)並要求對下載後的源碼包文件進行完整性驗證。apache

2.若是是跨大版本升級,則要求在測試環境測試不存在兼容性問題後纔可在生產環境進行部署。vim

 

源碼包文件進行完整性驗證方法請參照「備註」處的方法。

安全加強說明:

1.新版本每每修復了大量在舊版本中發現的安全漏洞,選用新版本能夠防範或者減小已知漏洞的影響。選用穩定版則使得功能加固穩定;

2.從官方網站下載安裝包,以及對安裝包進行指紋驗證能夠最大程序確保安裝文件未被篡改;

備註:

對tomcat源碼包文件進行指紋驗證方法:

方法1,驗證sha1指紋:

(1)下載源碼包文件和該文件的sha1指紋文件在同一目錄:

 

(2)執行# sha1sum -c 源碼包文件

例如:

apache-tomcat-7.0.70.tar.gz: 肯定            ---說明校驗成功,文件沒有被篡改。

若是顯示以下,則說明文件已經被篡改。

apache-tomcat-7.0.70.tar.gz: 失敗

sha1sum: 警告:1/1 生成的校驗和不匹配

方法2,能夠參考nginx安全配置文檔中關於pgp檢驗方法進行pgp指紋的校驗。

2.使用普通帳號運行tomcat服務 

編號:

Tomcat_Sec_002

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

要求tomcat服務器進程只能使用普通帳號運行,不能使用root帳號,具體方法參考「備註」處的配置方法。

安全加強說明:

防範或下降攻擊者經過上傳webshell來獲取到的執行權限

備註:

建立普通帳號運行tomcat服務的方法:

(1)建立tomcat用戶組

# sudo groupadd -g 1000 tomcat         

(2)建立tomcat用戶,並限制登陸

#sudo useradd -s /bin/bash -g tomcat -u 1000 tomcat

說明:GID和UID定義爲1000,避免與nis系統上的帳號的ID衝突。

# sudo usermod -L tomcat

備註:

-L  鎖定用戶密碼,使密碼無效。

-U 解除鎖定

(3)修改tomcat項目目錄全部者和用戶組

#sudo chown -R tomcat:tomcat $CATALINA_HOME

備註: $CATALINA_HOME爲tomcat的家目錄,若是web應用項目的目錄定義在家目錄之外的目錄,則也可使用該方法來設置對應目錄的全部者和用戶組。

(4) 使用普通帳號運行tomcat服務

#sudo -u tomcat -c "/usr/local/tomcat7/bin/startup.sh"

說明:-c 後跟tomcat的啓動腳本,實際部署中該路徑可能不同.

 

(5)查看tomcat服務端口已成功啓動

 

(6)查看tomcat進程帳號爲tomcat

 

 

3.移除樣例目錄和幫助文檔應用

編號:

Tomcat_Sec_003

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

tomcat的樣例目錄(examples)和幫助文檔(docs)應用僅用於演示和學習的目錄,線上部署的tomcat服務器要求移除這兩個應用, 具體方法參考「備註」處的方法。

安全加強說明:

應該從安全敏感性安裝中移除examples應用。雖然 examples 應用並不包含任何已知的漏洞,但現已證實,它所包含的一些功能能夠被攻擊者利用,特別是一些顯示全部接收內容,而且能設置新 cookie cookie 範例。攻擊者將這些公關和部署在 Tomcat 實例中的另外一個應用中的漏洞相結合,就能獲取本來根本不可能獲得的信息。

備註:

「移除樣例目錄應用」方法:

1.樣例目錄應用(examples)位於$CATALINA_HOME/webapps/ examples,($CATALINA_HOME是tomcat安裝目錄

(1)訪問樣例應用時,在web頁面的顯示以下:

 

 (2)直接將$CATALINA_HOME/webapps/目錄下的整個examples目錄刪除便可。

 

「移除幫助文檔應用」方法

2. 幫助文檔(docs)應用位於$CATALINA_HOME/webapps/ docs目錄,($CATALINA_HOME是tomcat安裝目錄

(1) 訪問幫助文檔應用時,在web頁面的顯示以下:

 

(2)直接將$CATALINA_HOME/webapps/目錄下的整個docs目錄刪除便可。

 

4.移除或者限制管理控制檯(Manager)的訪問

編號:

Tomcat_Sec_004

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

Tomcat有3個控制檯, Server status控制檯:經過web頁面顯示、監控服務狀態信息;Manager APP控制檯:用於經過web界面部署、監控Web應用;Host Manager控制檯:用於經過web界面建立並管理虛擬主機。

我公司不使用Manager控制檯來進行部署、管理應用,要求將該應用移除,具體方法參考「備註」處的方法。

安全加強說明:

因爲Manager控制檯應用容許遠程部署Web應用,因此常常被攻擊者利用。

備註:

1.移除管理控制檯(Manager)應用方法:

控制檯( Manager)文件目錄位於$CATALINA_HOME/webapps/ manager和$CATALINA_HOME/webapps/host-manager

(1)在web頁面訪問控制檯登陸頁面,以下:

 

備註:在tomcat新版本中默認是不能訪問的控制檯,由於沒有配置可以執行這種訪問的用戶。

(2)直接將$CATALINA_HOME/webapps/目錄下的整個manager目錄和host-manager刪除便可。

 

2.若是確實須要到控制檯(Manager)來管理tomcat,則要遵循保證管理型應用的安全性原則來進行配置:

  • 保證任何被容許訪問管理應用的用戶的密碼是強密碼。
  • 不要放棄使用 LockOutRealm,它能防止暴力破解者攻擊用戶密碼。
  • 將 /META-INF/context.xml 中的限制訪問 localhost 的RemoteAddrValve 取消註釋。若是須要遠程訪問,使用該值可限制到特定的 IP 地址。

 (1)控制檯帳號增長帳號密碼方法:

控制檯的用戶名和密碼是經過Tomcat的JAAS(Java驗證和受權API)控制的,在Tomcat的文件結構中webapps是web應用的存放位置,因此Manager控制檯所對應的web應用也是放置在這個文件夾下。而後進入如下路徑webapps\manager\WEB-INF\,找到web.xml文件並打開。在該文件的最後部分能夠看到以下配置:

 

<auth-method>屬性表示使用的是彈出式窗口登錄,<role-name>屬性表示只有manager-gui角色纔可以登錄該應用。

爲了能夠登錄Manager控制檯,就必須增長屬於manager-gui角色的用戶。Tomcat默認採用文件安全域,即文件存放用戶名和密碼,而這個文件就是%Tomcat_Home%\conf下的tomcat-users.xml來控制。打開該文件,其有如下內容:

  1. <?xml version='1.0' encoding='utf-8'?>  
  2. <tomcat-users>  
  3. </tomcat-users> 

以上的配置文件中顯示Tomcat默認沒有配置任何用戶,因此說不管咱們在以上的登錄對話框中輸入何種內容,系統都不會讓咱們登錄。爲了可以正常登錄,則必須修改這個tomcat-users.xml文件來增長用戶,並讓該用戶屬於manager-gui角色。方法爲在<tomcat-users>元素中增長<user>元素來增長用戶,修改後內容以下:

  1. <?xml version='1.0' encoding='utf-8'?>  
  2. <tomcat-users>  
  3. <role rolename="manager-gui"/>  
  4. <user username="tomcat" password="tomcat" roles="manager-gui"/>  
  5. </tomcat-users>  

以上的代碼增長了一個用戶,用戶名爲tomcat,密碼爲tomcat,角色爲manager與web.xml中定義的一致。

5.移除默認ROOT 應用

編號:

Tomcat_Sec_005

適用:

LINUX下新安裝部署

配置要求:

新安裝部署tomcat時,建議默認的ROOT應用移除,移除方法參考「備註處」的方法。 

安全加強說明:

ROOT 應用帶來安全風險的可能性很是小,但它確實含有正在使用的 Tomcat的版本號。應該從可公開訪問的 Tomcat 實例中清除 ROOT 應用。

備註:

移除默認ROOT應用方法:

1.直接刪除$CATALINA_HOME/webapps/ROOT目錄便可。

說明:$CATALINA_HOME爲Tomcat的安裝目錄。

 

 

 

 

6.隱藏tomcat版本號

編號:

Tomcat_Sec_006

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

要求隱藏tomcat版本號,默認狀況下,在錯誤頁面會顯示tomcat版本號,具體方法參考「備註」處的方法。

 

注意:

這也會改變一些管理工具所報告的版本號,可能難於肯定實際安裝的版本號,經過執行CATALINA_HOME/bin/version.sh 腳本依然可以報告版本號。

安全加強說明:

絕大多數漏洞掃描工具經過獲取目標web服務器的版本號來判斷該web服務器是否存在安全漏洞,隱藏版本號後能夠最大減小惡意攻擊者經過漏掃工具來收集漏洞信息。

備註:

隱藏tomcat的版本號方法:

1.默認在tomcat的錯誤請求頁面會顯示tomcat的版本號,以下:

 

2.tomcat的版本號能夠隱藏或者修改,tomcat的版本號配置位於$CATALINA_HOME /lib/org/apache/catalina/util/ServerInfo.properties 文件中,具體配置方法:

方法1

在指定路徑建立ServerInfo.properties文件,以下

(1)#cd $CATALINA_HOME/lib

說明:$CATALINA_HOME爲tomcat的安裝目錄

(2)#mkdir -p org/apache/catalina/util

(3)#cd org/apache/catalina/util

(4)#vim ServerInfo.properties

(5)在此文件中寫入如下2個參數

server.info=Apache Tomcat/X

server.number=X

(6)保存退出後,修改文件的全部者和用戶組,在$CATALINA_HOME/lib目錄下執行chown -R tomcat:tomcat org

(7)重啓tomcat服務.便可

方法2:

(1)#cd $CATALINA_HOME/lib

(2)找到catalina.jar包文件

(3)使用命令解壓該文件,執行: jar xf catalina.jar

(4)解壓後獲得META-INF和org目錄

(5)執行vim org/apache/catalina/util/ServerInfo.properties

(6)將默認的

 

改爲

 

(7)重啓tomcat服務

3.測試,修改完成後在錯誤頁面已經看不到版本號:

 

 

7.禁止目錄列表

編號:

Nginx_Sec_007

適用:

LINUX下新安裝部署或已上線nginx服務器

配置要求:

要求禁止tomcat服務器的目錄列表功能,tomcat默認是禁止目錄列表的,但可能存在人爲開啓的可能,須要確認線上系統沒有開啓目錄列表功能,具體方法參考「備註」處的方法。

安全加強說明:

1.當目標web服務器容許目錄時,只要訪問目標web服務器的目錄,若是該目錄下沒有設置默認訪問的文件,則會同時將該目錄的全部文件列出來,以下:

 

2.禁止目錄列表功能能夠避免因暴露目標網站的目錄結構和敏感文件,最終形成敏感信息丟失。

備註:

檢查tomcat是否開啓了目錄列表功能的方法:

(1) 編輯$CATALINA_HOME/conf/web.xml,找到以下配置:

<init-param>

            <param-name>listings</param-name>

            <param-value>false</param-value>

        </init-param>

說明:$CATALINA_HOME爲tomcat的安裝目錄。

若是listings的值爲false,則說明已禁止目錄列表,若是值爲true,則容許目錄列表。

 

禁用目錄列表後,請求沒有設置默認文件的目錄時,tomcat服務器會返回404錯誤,以下「」

 

 

8.開啓日誌記錄

編號:

Nginx_Sec_008

適用:

LINUX下新安裝部署或已上線nginx服務器

配置要求:

要求tomcat服務器開啓access日誌, 默認狀況下已開啓訪問日誌,具體開啓方法參考「備註」處的方法。

安全加強說明:

可用於攻擊行爲分析和故障診斷。

備註:

配置開啓tomcat訪問日誌方法:

編輯$CATALINA_HOME/conf/server.xml,找到以下:     

<Host name="localhost" ...>

  ...

<!--

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

               prefix="localhost_access_log." suffix=".txt"

               pattern="%h %l %u %t "%r" %s %b" />  ...

       -->

</Host>

若是上面的<Valve ...          />的配置使用註釋符號<!--          ...         -->註釋後,須要將註釋符號去掉。

 

 

Pattern默認有2個:ommon和combined

Common的值:"%h %l %u %t "%r" %s %b"

效果:

192.168.12.11 - - [24/Aug/2016:11:35:43 +0800] "GET /docs/tribes/transport.html HTTP/1.1" 200 5645

combined的值:%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i 

效果:

192.168.12.11 - - [24/Aug/2016:12:02:01 +0800] "GET /docs/images/tomcat.gif HTTP/1.1" 200 2066 http://192.168.12.93:8080/docs/config/host.html Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36

參數說明:

%a – 遠程主機的IP (Remote IP address) 
%A – 本機IP (Local IP address) 
%b – 發送字節數,不包含HTTP頭,0字節則顯示 ‘-’ (Bytes sent, excluding HTTP headers, or ‘-’ if no bytes 
were sent) 
%B – 發送字節數,不包含HTTP頭 (Bytes sent, excluding HTTP headers) 
%h – 遠程主機名 (Remote host name) 
%H – 請求的具體協議,HTTP/1.0 或 HTTP/1.1 (Request protocol) 
%l – 遠程用戶名,始終爲 ‘-’ (Remote logical username from identd (always returns ‘-’)) 
%m – 請求方式,GET, POST, PUT (Request method) 
%p – 本機端口 (Local port) 
%q – 查詢串 (Query string (prepended with a ‘?’ if it exists, otherwise 
an empty string) 
%r – HTTP請求中的第一行 (First line of the request)  
%s – HTTP狀態碼 (HTTP status code of the response) 
%S – 用戶會話ID (User session ID) 
%t – 訪問日期和時間 (Date and time, in Common Log Format format) 
%u – 已經驗證的遠程用戶 (Remote user that was authenticated 
%U – 請求的URL路徑 (Requested URL path) 
%v – 本地服務器名 (Local server name) 
%D – 處理請求所耗費的毫秒數 (Time taken to process the request, in millis) 
%T – 處理請求所耗費的秒數 (Time taken to process the request, in seconds) 

 

9.修改SHUTDOWN字符串

編號:

Tomcat_Sec_009

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

要求修改用於關閉tomcat服務的shutdow屬性值,具體方法參考「備註」處的方法。

安全加強說明:

主要用於防止未受權用戶關閉tomcat服務器。

備註:

修改SHUTDOWN字符串方法:

1.在Tomcat配置文件$CATALINA_HOME/conf/server.xml,有以下的配置,

< Server port ="8005" shutdown ="SHUTDOWN" debug ="0" >

該配置的做用是啓動tomcat Server後在端口8005處等待關閉命令 若是接受到"SHUTDOWN"字符串則關閉服務器,利用方法,以下

(1)登陸tomcat服務器,

(2)在本地執行 telnet 127.0.0.1 8005

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

輸入:SHUTDOWN

Connection closed by foreign host.              ---此時tomcat服務器被成功關閉。

2.出於防範未受權用戶使用該方式來關閉tomcat服務,要求修改shutdown 屬性值,以下:

將shutdown 屬性值改爲SHUTDOWNT,即<Server port="8005" shutdown="SHUTDOWNT">,也能夠改爲其餘字符串。

 

說明:

Tomcat的tcp 8005端口,只容許在本地鏈接,以下:

# netstat -tlpun |grep 8005

tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      9636/java   

 

10.拒絕TRACE請求方法

編號:

Tomcat_Sec_010

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

要求配置tomcat服務器拒絕TRACE請求方法,默認配置不接受該請求方法,配置TOMCAT服務器拒絕TRACE請求方法參考「備註」處的方法。

安全加強說明:

TRACE方法是HTTP(超文本傳輸)協議定義的一種協議調試方法,該方法使得服務器原樣返回任何客戶端請求的內容(可能會附加路由中間的代理服務器的信息),因爲該方法原樣返回客戶端提交的任意數據,所以,可用來進行跨站腳本(XSS)攻擊,這種攻擊方式又稱爲跨站跟蹤攻擊(XST)。

啓用TRACE方法存在以下風險:
1、惡意攻擊者能夠經過TRACE方法返回的信息瞭解到網站前端的某些信息,若是緩存服務器等,從而爲進一步的攻擊提供便利;
2、惡意攻擊者能夠經過TRACE方法進行XSS攻擊,盜取會話cookie、獲取帳戶、模擬其餘用戶身份,甚至能夠修改網頁呈現給其餘用戶的內容,從而給用戶帶來損失;
3、即便網站對關鍵頁面啓用了HttpOnly頭標記,禁止腳本讀取cookie信息時,經過使用Trace方法,惡意攻擊者能夠繞過這個限制,讀取cookie信息。

備註:

配置TOMCAT服務器拒絕TRACE請求方法:

在Tomcat配置文件$CATALINA_HOME/conf/server.xml中,能夠給 Connector(鏈接器)配置allowTrace屬性,該屬於用於設置是否啓用指定鏈接器的Trace方法,以下:

默認,沒有啓用Trace配置以下:

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

若是當進行以下配置時,則容許接受TRACE請求

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443"

               allowTrace="true"/>

注:allowTrace="true"配置容許接受TRACE請求。

 

在遠程Linux主機驗證目標主機是否方法:

#curl -X TRACE 192.168.12.93:8080

響應

TRACE / HTTP/1.1

user-agent: curl/7.19.7 (i686-pc-linux-gnu) libcurl/7.19.7 NSS/3.12.6.2 zlib/1.2.3 libidn/1.18 libssh2/1.2.2

host: 192.168.12.93:8080

accept: */*

 

# curl -X TRACE -H "Cookie: name=value" 192.168.12.93:8080

響應

TRACE / HTTP/1.1

user-agent: curl/7.19.7 (i686-pc-linux-gnu) libcurl/7.19.7 NSS/3.12.6.2 zlib/1.2.3 libidn/1.18 libssh2/1.2.2

host: 192.168.12.93:8080

accept: */*

cookie: name=value

關閉後

curl -X TRACE 192.168.12.93:8080

執行後沒有任何響應信息

 

 -X/--request <command>指定什麼命令

 -H/--header <line>自定義頭信息傳遞給服務器

 

11.靜態資源僅容許只讀訪問(read-only)

編號:

Tomcat_Sec_011

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

配置只容許經過只讀方法訪問靜態資源,默認只容許靜態方法,具體配置方法參考 「備註」處的方法。

安全加強說明:

能有效地防止防止惡意客戶端刪除/修改服務器上的靜態文件和更新新的資源。

備註:

Tomcat默認的servlet(DefaultServlet)是既服務於靜態資源又服務於目錄列表(若是容許目錄列表的話)的servlet,全部的請求進入tomcat,都會流經servlet,若是沒有匹配到任何應用指定的servlet,那麼就會流到默認的servlet,默認的servlet是配置在$catalina/conf/web.xml文件中。

 

在配置文件$CATALINA_HOME/conf/web.xml,能夠配置 DefaultServlet 的readonly屬性,該屬性默認值爲true,,代表靜態資源僅容許只讀方式訪問。

DefaultServlet的默認配置以下:

 

DefaultServlet的readonly屬性設置爲true時,將拒絕客戶端使用PUT、DELETE等刪除或修改服務器上的靜態資源。

(1)DELETE請求被拒絕,以下

 

 (2)PUT請求被拒絕,以下

 

 

12.不發送「X-Powered-ByHTTP響應頭

編號:

Tomcat_Sec_012

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

要求配置tomcat不發送X-Powered-By」HTTP響應頭,默認不發送該響應頭,具體方法參考「備註」處的方法。

安全加強說明:

X-Powered-By字段值包含 Servlet 和 JSP 規範版本號、完整的 Tomcat 版本號(好比 Apache Tomcat/8.0)、JVM Vendor 名稱,以及 JVM 版本號等信息,禁止發送Tomcat服務器發送X-Powered-By」HTTP響應頭,能夠防止惡意攻擊者從中獲取目標服務器信息。

備註:

配置tomcat不發送X-Powered-By」HTTP響應頭方法:

在Tomcat配置文件$CATALINA_HOME/conf/server.xml中,能夠給 Connector(鏈接器)配置xpoweredBy屬性,該屬於在於設置指定鏈接器在響應頭部是否發送X-Powered-By, 默認,不發送X-Powered-By。若是配置成xpoweredBy="true",好比:

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443"

               xpoweredBy="true"/>

響應頭會增長X-Powered-By字段:該字段會顯示Servlet and JSP specification versions and the full Tomcat version among others.

測試:

1.響應頭不發送X-Powered-By

 

2.響應頭髮送X-Powered-By

 

 

13.自定義錯誤頁面

編號:

Tomcat_Sec_013

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

建議自定義403,,404,500等錯誤頁面,具體方法參考「備註」處的方法。

安全加強說明:

減小在錯誤頁面中暴露敏感信息的風險。

備註:

自定義錯誤頁面方法:

當出現錯誤時,默認的 ErrorReportValve 能向客戶端顯示堆棧跟蹤信息以及/或者 JSP 源代碼。爲了不這一點,能夠在每一個 Web 應用內配置自定義錯誤處理器,具體方法以下:

編輯配置文件:sudo vim $CATALINA_HOME/conf/web.xml            --說明:$CATALINA_HOME爲tomcat的家目錄。

在該文件底部</web-app>的前面添加

<error-page>

    <error-code>404</error-code>

    <location>/error/404.html</location>

</error-page>

 

說明: 404.html爲自定義的錯誤頁面,存放在tomcat應用目錄/error/目錄下

例如:

在應用目錄下建立error目錄,執行mkdir error

sudo  cd error

sudo vim 404_error.html

寫入:

<head>
<title>Sorry - no such page</title>
</head>
<body>
<h1>Oops - I don't have that page</h1>
This is our "error 404" page.
</body>

配置後重啓tomcat服務

測試,404錯誤頁面顯示了自定義的頁面:

 

其餘的錯誤頁面的自定義方法同樣:

<error-page>

    <error-code>403</error-code>

    <location>/error/403.html</location>

</error-page>

 

<error-page>

    <error-code>500</error-code>

    <location>/error/500.html</location>

</error-page>

 

14.限制鏈接器的可用性

編號:

Tomcat_Sec_014

適用:

LINUX下新安裝部署或已上線Tomcat服務器

配置要求:

Tomcat的鏈接器的address 屬性用來控制鏈接器在哪一個 IP 地址上偵聽鏈接。默認,鏈接器會在全部配置好的IP 地址上進行偵聽。建議在指定鏈接器上配置address屬性,只監聽指定IP的指定端口,具體方法參考「備註」處的方法。

安全加強說明:

僅在指定IP上監聽服務端口,進一步提高安全性。

備註:

配置監聽器只在指定IP地址上監聽指定端口方法:

例如只在127.0.0.1地址上監聽tcp 8080端口,配置以下:

 

<Connector address="127.0.0.1"  port="8080"  protocol="HTTP/1.1"

   connectionTimeout="20000"

   redirectPort="8443" />

查看8080端口,看到只在127.0.0.1監聽8080

# netstat -tlpnu |grep 8080

tcp        0      0 ::ffff:127.0.0.1:8080       :::*                        LISTEN      13793/java

15.禁用SSL/TSL不安全協議和弱加密算法

編號:

Tomcat_Sec_015

適用:

使用提供HTTPS方式訪問的Tomcat服務器

配置要求:

tomcat使用到https訪問時,要求禁止SSLV1.0SSLV2.0SSLV3.0不安全協議,要求禁止使用如下不安全加密算法:

 

具備配置方法參考「備註」處的方法。

安全加強說明:

下降因爲使用不安全協議和弱加密緻使敏感信息泄露的風險。

備註:

Tomcat配置加密協議和加密套件方法:

(1)編輯配置文件$CATALINA_HOME/conf/server.xml 

(2)找到指定的鏈接器進行配置,例如:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

            …

               />

(3)在鏈接器內配置下面的加密協議:

sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"

(4)在鏈接器內配置下面加密套件:

ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA"

(5)保存配置文件,重啓Tomcat服務便可。

以上配置支持的加密協議和加密套件以下:

 

加密協議

優先使用順序TLSv1.2,TLSv1.1,TLS1.0。其中TLS1.0也被認爲是不安全協議,也建議不使用。

加密套件:

Kx:密鑰交換算法,優先使用順序:ECDHE(支持正向安全,2048位,防止中間人攻擊),DHE,RSA(沒法防止中間人攻擊),不要使用1024位的DH。

Au:認證算法,優先使用RSA, ECDSA

Enc:對稱加密算法,優先使用AES_256_GCM,AES_128_GCM,AES_256_CBC,AES_128_CBC,3DES_EDE_CBC

Mac:散列算法,優先使用順序SHA_256,SHA1

 

注意:JDK1.6版本不支持TLSv1.2和TLv1.1版本。

相關文章
相關標籤/搜索