Tomcat是一個世界上廣泛使用的支持JSP和servlets的Web服務(wù)器。它在JAVA運行時上能夠很好地運行并支持Web應(yīng)用部署。
運行Tomcat很簡單;到Tomcat網(wǎng)站下載安裝程序就可進行Tomcat的安裝。沒有人對Tomcat的危險性有透徹的了解。Tomcat Web應(yīng)用程序的主要安全風險存在于以下方面:
Tomcat的JSP或JSP內(nèi)調(diào)用的bean能夠?qū)嵤┫铝懈唢L險性任務(wù):
·運行一個Windows系統(tǒng)環(huán)境下的程序
·讀取任意文件夾內(nèi)任何文件的內(nèi)容
·刪除任意文件夾中的文件
·在任意文件夾內(nèi)創(chuàng)建新文件
安全配置建議如下:
一、 用戶權(quán)限
默認安裝時Tomcat是以系統(tǒng)服務(wù)權(quán)限運行的,因此缺省情況下幾乎所有的Web服務(wù)器的管理員都具有Administrator權(quán)限這和IIS不同,存在極大的安全隱患,所以安全設(shè)置首先從Tomcat服務(wù)降權(quán)開始。
1.1 首先創(chuàng)建一個普通用戶(最好是隸屬于guest組),為其設(shè)置密碼,將其密碼策略設(shè)置為“密碼永不過期”,比如創(chuàng)建一個用戶tomcat_leiliang。然后修改tomcat安裝文件夾的訪問權(quán)限,為tomcat_leiliang賦予tomcat文件夾的讀、寫、執(zhí)行的訪問權(quán)限,賦予tomecat_leiliang對WebApps文件夾的只讀訪問權(quán)限,如果某些Web應(yīng)用程序需要寫訪問權(quán)限,單獨為其授予對那個文件夾的寫訪問權(quán)限。
1.2 “開始→運行”,輸入services.msc打開服務(wù)管理器,找到Apache Tomcat服務(wù),雙擊打開該服務(wù),在其實屬性窗口中點擊“登錄”選項卡,在登錄身份下選中“以此帳戶”,然后在文本框中輸入tomcat_leiliang和密碼,最后“確定”并重啟服務(wù)器。這樣tomcat就以tomcat_leiliang這個普通用戶的權(quán)限運行。
1.3 有的時候,我們需要在命令行下運行tomcat,這時候可以在命令下輸入命令runas /user:tomcat_leiliang cmd.exe回車后并輸入密碼,這樣就開啟一個tomcat_leiliang權(quán)限的命令行。最后定位到tomcat的bin文件夾下,輸入命令 tomcat6.exe即以tomcat_leiliang在命令行下啟動tomcat。
二、更改端口:
2.1 tomcat的默認端口是8080,攻擊者可以據(jù)此運行掃描工具進行端口掃描,從而獲取部署了tomcat的Web服務(wù)器然后實施攻擊。因此,為了安全期間我們可以修改此默認端口。在tomcat的安裝路徑的conf目錄下找到server.xml文件,用記事本打開然后搜索8080找到對應(yīng)的字段,然后將8080自行修改為另外的數(shù)字。另外,需要說明的是connectionTimeout=”20000″是連接超時,maxThreads=”150″ 是最大線程類似這樣的參數(shù)也可以根據(jù)需要進行修改。
三、 禁止列表
3.1 如果瀏覽者可以在客戶端瀏覽Web目錄,那將會存在較大的安全隱患,因此我們要確認tomcat的設(shè)置中禁止列目錄。設(shè)置文件是web.xml,也在conf目錄下。用記事本打開該文件,搜索init-param在其附近找到類似如下字段:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
確認是false而不是true。
四、用戶管理
4.1 tomcat的后臺管理員為admin并且默認為空密碼,安全期間我們需要修改該默認的用戶名并為其設(shè)置健壯的密碼。其配置文件為tomcat- users.xml,用記事本打開該文件然后進行修改。其中role標簽表示其權(quán)限,manager說明是管理員權(quán)限;user標簽表示后臺管理用戶,可以看到用戶名為admin,我們可以將其修改為一個陌生的用戶;可以看到password后面為空密碼,我們可以為其設(shè)置一個復(fù)雜的密碼。最后修改配置完成的tomcat-users.xml文件為:
<?xml version=’1.0′ encoding=’utf-8′?>
<tomcat-users>
<role rolename=”manager”/>
<role rolename=”admin”/>
<user username=”gslw” password=”test168″ roles=”admin,manager”/>
</tomcat-users>
五、 錯誤頁面
5.1 打開web.xml文件,在最后一行的之前添加如下的語句:
<1– 無法連接到請求頁面 –>
<error-page>
<error-code>400</error-code>
<location>/400.htm</location>
</error-page>
<!– 訪問未被授權(quán)頁面 –>
<error-page>
<error-code>401</error-code>
<location>/401.htm</location>
</error-page>
<!– 訪問請求被站點拒絕 –>
<error-page>
<error-code>403</error-code>
<location>/403.htm</location>
</error-page>
<!– 未找到請求頁面 –>
<error-page>
<error-code>404</error-code>
<location>/404.htm</location>
</error-page>
<!– 服務(wù)器錯誤導(dǎo)致頁面無法訪問 –>
<error-page>
<error-code>500</error-code>
<location>/500.htm</location>
</error-page>
<!– 錯誤頁面需要放到webapps下root和manager目錄中 –>
六、隱藏后臺路徑
6.1 修改webapps目錄內(nèi)manage目錄名,如改為manager_XXX,則默認無法找到該管理目錄
6.2 修改后手動訪問的方法: http;//域名:端口號/manager名/html