Tomcat安全加固

1.   Tomcat運行在非root用戶下html

        爲Tomcat建立的專用用戶,並擁有必須的最小權限。前端

    useradd tomcat -M -d / -s /usr/sbin/nologin


2.   刪除默認的應用web

       webapps目錄下的應用刪除或禁止訪問。apache


3.   關閉Shutdown端口或複雜化中止密碼tomcat

       Shutdown端口設置爲-1 或爲Shutdown提供複雜密碼。app

       <Server port="-1" shutdown="1q2w3e4r">負載均衡


4.   禁用TRACE請求webapp

      <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" allowTrace="fasle"/>ide


5.  關閉xpoweredBy響應頭性能

     <Connector port="8080" protocol="HTTP/1.1"    connectionTimeout="20000" xpoweredBy="fasle"/>


6.  禁用SSL v3協議

      <Connector protocol="HTTP/1.1" SSLEnabled="true" 

        port="8443" sslProtocols = "TLS" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"/>


7.   禁用deployXML功能

       <Host name="localhost"  unpackWARs="false" deployXML="false">


8.  關閉自動部署

        防止被植入惡意程序,關閉自動部署。部署應用時重啓生效。

       <Host name="localhost" appBase=""  unpackWARs="false" autoDeploy="false">


9.   隱藏Tomcat的版本信息

       修改catalina.jar!org\apache\catalina\util\ServerInfo.properties文件中的版本信息爲

       server.info=Apache Tomcat

       server.number=

       server.built=

      <Connector port="8080" protocol="HTTP/1.1"    connectionTimeout="20000" server="AS 1.0"/>


10.  自定義錯誤頁面

   Tomcat內部生成的錯誤頁面包含Tomcat相關信息。

   編輯conf/web.xml,在</web-app>標籤前添加如下內容

  <error-page>
  <error-code>404</error-code>
   <location>/404.html</location>
  </error-page> 
  <error-page>
    <error-code>500</error-code>
   <location>/500.html</location>
  </error-page>


11.  限定訪問的IP地址

     通常存在前端負載均衡,請求地址比較固定。

     <Host name="localhost"  appBase="/data/www/apps"   unpackWARs="true" autoDeploy="false">

     <Valve className="org.apache.catalina.valves.RemoteAddrValve"    allow="192.168.1.10,192.168.1.11,192.168.2.*" deny=""/>  

     <Valve className="org.apache.catalina.valves.RemoteHostValve"  allow="www.test.com,*.test.com" deny=""/></Host>


12. 開啓訪問日誌記錄

    記錄流量訪問,會帶來部分性能開銷

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

     prefix="localhost_access_log"  suffix=".txt" 

     pattern="%h %l %u %t &quot;%r&quot; %s %b %{Referer}i %{User-Agent}i %D"

     resolveHosts="false" />


13.  禁用訪問目錄列表

        編輯conf/web.xml文件

      <servlet>

        <servlet-name>default</servlet-name>

        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <init-param>

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

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

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>


14. 禁用資源的修改權限

     <servlet>

        <servlet-name>default</servlet-name>

        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <init-param>

            <param-name>readonly</param-name>

            <param-value>true</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

15.  Tomcat與項目文件屬主分離

即使攻破了Tomcat,也不能對項目文件進行更改。

相關文章
相關標籤/搜索