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/