天天看點

tomcat安全設定

1.關閉伺服器端口:

server.xml預設有下面一行:

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

這樣允許任何人隻要telnet到伺服器的8005端口,輸入”SHUTDOWN”,然後回車,伺服器立即就被關掉了。

從安全的角度上考慮,我們需要把這個shutdown指令改成一個别人不容易猜測的字元串,可以同時把端口也改了。

例如修改如下:

<Server port="8005" shutdown="c1gstudio">

這樣就隻有在telnet到8005,并且輸入”c1gstudio”才能夠關閉Tomcat.

注意:這個修改不影響shutdown.bat的執行。運作shutdown.bat一樣可以關閉伺服器。

2.增加防火牆

更安全的方式是同時增加防火牆,來限制通路Tomcat的控制與連接配接器端口

你可以通過運作netstat -a來檢視網絡伺服器socket及其他現有連接配接的清單

插入規則

iptables -A INPUT -p tcp -m tcp –dport 8005 -j DROP

儲存規則

service iptables save

重載規則

service iptables restart

3.處理好Tomcat管理台的安全

Tomcat管理台的應用檔案,預設在{Tomcat安裝目錄}\server\webapps下,有admin和manager兩個應用。

其使用者密碼,在{Tomcat安裝目錄}\conf/tomcat-users.xml中定義。在{Tomcat安裝目錄}\webapps下

admin.xml和manager.xml檔案定義了可以通過通路/admin和/manager進入。

預設情況下,完全可以登入tomcat管理台,造成嚴重安全問題

檢測辦法:用IE打開連結http://[IP]:[Port]/admin,以使用者名admin,密碼為空登入,如果成功,

說明存在問題。

解決辦法:可以删除{Tomcat安裝目錄}\webapps下admin.xml和manager.xml檔案,或者去掉使用者密

碼,也可以删除應用檔案。

4.運作錯誤網頁

如果找不到網頁即出現404錯誤,會顯示伺服器版本号,伺服器配置也一目了然,

為了避免這種情況,希望自定義設定錯誤頁面。

設定如下:

用記事本打開\conf\web.xml檔案,在檔案的倒數第二行(一行之前)加入以下内容:

<error-page>

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

    <location>/404.jsp</location>

  </error-page>

  <error-page>

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

    <location>/500.jsp</location>

在根目錄下建立404.jsp和500.jsp檔案

5.多重伺服器的安全防護模式

當在同一台主機(或同一網絡檔案系統)上的 Apache httpd Web 伺服器與 Tomcat 之間共享網頁的實際目錄時,

請留意其個别安全防護模式間的互相作用。當你有“受保護的目錄”時,這會特别重要。

伺服器将具有能讀取彼此檔案的權限。

在這些狀況下,請注意 Tomcat 并不會保護如 .htaccess 的檔案,而Apache也不會保護Web應用程式的 WEB-INF 或 META-INF 目錄。

這些情形都有可能導緻重大的安全漏洞,是以,我們建議你在使用這些特别的目錄時,要格外小心。

若要讓 Apache httpd 保護 WEB-INF 及 META-INF 目錄,請在 httpd.conf 中加入下列内容

<LocationMatch "/WEB-INF/">

AllowOverride None

deny from all

</LocationMatch>

<LocationMatch "/META-INF/">

6.屏蔽目錄檔案自動列出的方法

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>

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

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

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

    </servlet>

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

這裡false為不列出,true為充許列出

7.以非root使用者運作

8.關閉8009端口

8009/tcp open ajp13

8009端口是tomcat和apache的mod_proxy_ajp,mod_jk溝通的端口,沒有用到就關了。

tomcatpath/conf/server.xml 中的這段注釋掉

<!--

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    -->

如何聯系我:【萬裡虎】www.bravetiger.cn

【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)

【部落格】http://www.cnblogs.com/kenshinobiy/