tomcat安全加固和規范


tomcat是一個開源Web服務器,基於TomcatWeb運行效率高,可以在一般的硬件平台上流暢運行,因此,頗受Web站長的青睞。不過,在默認配置下其存在一定的安全隱患,可被惡意攻擊。以下是一些安全加固的方法:

版本安全

 升級到最新穩定版,出於穩定性考慮,不建議進行跨版本升級。

服務降權

不要使用root用戶啟動tomcat,使用用普通用戶啟動Tomcat,集群內用戶名統一UID

端口保護

1 更改tomcat管理端口8005 ,此端口有權限關閉tomcat服務,但要求端口配置在8000~8999之間,並更改shutdown執行的命令 2 若 Tomcat 都是放在內網的,則針對 Tomcat 服務的監聽地址都是內網地址 3 修改默認的ajp 8009端口為不易沖突(大於1024),但要求端口配置在8000~8999之間

禁用管理端

1 刪除默認$CATALINA_HOME/conf/tomcat-users.xml文件,重啟tomcat將會自動生成新的文件 2 刪除$CATALINA_HOME/webapps下載默認的所有目錄和文件 3 將tomcat應用根目錄配置為tomcat安裝目錄以外的目錄

隱藏Tomcat的版本信息

針對該信息的顯示是由一個jar包控制的,該jar包存放在$CATALINA_HOME/lib目錄下,名稱為 catalina.jar,
通過 jar xf 命令解壓這個 jar 包會得到兩個目錄 META-INF 和 org ,
修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段來實現來更改我們tomcat的版本信息

關閉war自動部署

默認 Tomcat 是開啟了對war包的熱部署的。為了防止被植入木馬等惡意程序,因此我們要關閉自動部署。

修改實例:

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

自定義錯誤頁面

編輯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>

屏蔽目錄文件自動列出

編輯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>
 
<param-value>false</param-value> 這里false為不列出,true為充許列出

多虛擬主機

強烈建議不要使用 Tomcat 的虛擬主機,推薦每個站點使用一個實例。即,可以啟動多個 Tomcat,而不是啟動一個 Tomcat 里面包含多個虛擬主機。
因為 Tomcat是多線程,共享內存,任何一個虛擬主機中的應用崩潰,都會影響到所有應用程序。雖然采用多實例的方式會產生過多的開銷,但至少保障了應用程序的隔離和安全。

腳本權限回收

控制CATALINAHOME/bin目錄下的start.sh、catalina.sh、shutdown.sh的可執行權限 chmod−R744 CATALINA_HOME/bin/*

分離 Tomcat 和項目的用戶

為了防止 Tomcat 被植入 web shell 程序后,可以修改項目文件。因此我們要將 Tomcat 和項目的屬主做分離,這樣子,即便被搞,他也無法創建和編輯項目文件。

server head重寫

在HTTP Connector配置中加入server的配置 server="server_name",默認是Apache-Copyote/1.1

通過配置,限定訪問的IP來源

<Host name="localhost"  appBase="/data/www/tomcat_webapps"   unpackWARs="true" autoDeploy="false">
   <Valve className="org.apache.catalina.valves.RemoteAddrValve"  allow="192.168.1.10,192.168.1.30,192.168.2.*" deny=""/>  
   <Valve className="org.apache.catalina.valves.RemoteHostValve"  allow="www.test.com,*.test.com" deny=""/>
</Host>

訪問日志格式規范

開啟tomcat默認訪問日志中Referer和User-Agent記錄

標准配置:

<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" />

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM