打造安全的Tomcat服務器_Web服務器教程

      編輯Tag賺U幣
      教程Tag:Tomcat添加

      tomcat是一個開源Web服務器,基于Tomcat的Web運行效率高,可以在一般的硬件平臺上流暢運行,因此,頗受Web站長的青睞。不過,在默認配置下其存在一定的安全隱患,可被惡意攻擊。另外,由于其功能比較單純需要我們進一步地進行設置。本機將從安全和功能兩方面談談基于Tomcat的Web服務器的部署,希望對大家有所幫助。

        環境描述

        OS:Windows Server 2003

        IP:192.168.1.12

        Tomcat:6.0.18

        1、安全測試

        (1).登錄后臺

        在Windows Server 2003上部署Tomcat,一切保持默認。然后登錄Tomcat后臺,其默認的后臺地址為:

        http://192.168.1.12:8080/manager/html。在瀏覽器中輸入該地址,回車后彈出登錄對話框,輸入默認的用戶名admin,默認的密碼為空,成功登錄后臺。(圖1)


      (2).獲得Webshell

        在Tomcat的后臺有個WAR file to deploy模塊,通過其可以上傳WAR文件。Tomcat可以解析WAR文件,能夠將其解壓并生成web文件。我們將一個jsp格式的webshell用WinRar打包然后將其后綴改名為WAR(本例為gslw.war),這樣;一個WAR包就生成了。最后將其上傳到服務器,可以看到在Tomcat的后臺中多了一個名為/gslw的目錄,點擊該目錄打開該目錄jsp木馬就運行了,這樣就獲得了一個Webshell。(圖2)


      (3).測試操作

        創建<管理員

        Tomcat服務默認是以system權限運行的,因此該jsp木馬就繼承了其權限,幾乎可以對Web服務器進行所有的操作。比如啟動服務、刪除/創建/修改文件、創建用戶。我們以創建管理員用戶為例進行演示。運行jsp木馬的“命令行”模塊,分別輸入命令net user test test168 /add和net localgroup administrators test /add,這樣就創建了一個具有管理員權限的test用戶,其密碼為test168。(圖3)


      遠程登錄

        我們還可以進一步地滲透,比如通過“遠程桌面”登錄Web服務器。輸入命令netstat -ano查看該服務器的3389端口是關閉的。我們可以利用webshell上傳一個工具,利用其開啟Web服務器的遠程桌面。最后,我們就可以成功登錄系統,至此整個Web淪陷。(圖4)

      2、安全防范

        通過上面的測試可以看到,默認配置下的Tomcat服務器的安全性是非常差的。如何來加固Tomcat服務器的安全性呢?我們從以下幾個方面來加強。

        (1).服務降權

        默認安裝時Tomcat是以系統服務權限運行的,因此缺省情況下幾乎所有的Web服務器的管理員都具有Administrator權限這和IIS不同,存在極大的安全隱患,所以我們的安全設置首先從Tomcat服務降權開始。

        首先創建一個普通用戶,為其設置密碼,將其密碼策略設置為“密碼永不過期”,比如我們創建的用戶為Tomcat_lw。然后修改Tomcat安裝文件夾的訪問權限,為Tomcat_lw賦予Tomcat文件夾的讀、寫、執行的訪問權限,賦予Tomcat_lw對WebApps文件夾的只讀訪問權限,如果某些Web應用程序需要寫訪問權限,單獨為其授予對那個文件夾的寫訪問權限。(圖5)


      “開始→運行”,輸入services.msc打開服務管理器,找到Apache Tomcat服務,雙擊打開該服務,在其實屬性窗口中點擊“登錄”選項卡,在登錄身份下選中“以此帳戶”,然后在文本框中輸入Tomcat_lw和密碼,最后“確定”并重啟服務器。這樣Tomcat就以Tomcat_lw這個普通用戶的權限運行。(圖6)

      有的時候,我們需要在命令行下運行Tomcat,這時候可以在命令下輸入命令runas /user:tomcat_lw cmd.exe回車后并輸入密碼,這樣就開啟一個Tomcat_lw權限的命令行。最后定位到Tomcat的bin文件夾下,輸入命令tomcat6.exe即以Tomcat_lw在命令行下啟動Tomcat。(圖7)

      這樣普通用戶Tomcat_lw運行的Tomcat其權限就大大地降低了,就算是攻擊者獲得了Webshell也不能進一步深入,從而威脅web服務器的安全。

        (2).更改端口

        Tomcat的默認端口是8080,攻擊者可以據此運行掃描工具進行端口掃描,從而獲取部署了Tomcat的Web服務器然后實施攻擊。因此,為了安全期間我們可以修改此默認端口。在Tomcat的安裝路徑的conf目錄下找到server.xml文件,用記事本打開然后搜索8080找到對應的字段,然后將8080自行修改為另外的數字。另外,需要說明的是connectionTimeout="20000"是連接超時,maxThreads="150"是最大線程類似這樣的參數也可以根據需要進行修改。(圖8)

      (3).禁止列表

        我們知道在IIS中如果設置不當,就會列出Web當前目錄中的所有文件,在Tomcat也不例外。如果瀏覽者可以在客戶端瀏覽Web目錄,那將會存在較大的安全隱患,因此我們要確認Tomcat的設置中禁止列目錄。設置文件是web.xml,也在conf目錄下。用記事本打開該文件,搜索init-param在其附近找到類似如下字段:  


      <init-param>
      <param-name>listings</param-name>
      <param-value>false</param-value>
      </init-param>  
        確認是false而不是true。(圖9)


      (4).用戶管理

        Tomcat的后臺管理員為admin并且默認為空密碼,安全期間我們需要修改該默認的用戶名并為其設置健壯的密碼。其配置文件為tomcat-users.xml,用記事本打開該文件然后進行修改。其中role標簽表示其權限,manager說明是管理員權限;user標簽表示后臺管理用戶,可以看到用戶名為admin,我們可以將其修改為一個陌生的用戶;可以看到password后面為空密碼,我們可以為其設置一個復雜的密碼。最后修改配置完成的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>
        (圖10)


      (5).錯誤頁面

        Tomcat不像IIS提供了各種類型的錯誤頁,如果Tomcat發生錯誤就會顯示千篇一律的錯誤頁面。其實我們可以通過修改其配置文件,從而自定義設置其錯誤頁面的顯示。打開web.xml文件,在最后一行的之前添加如下的語句:  
      <error-page>
            <error-code>401</error-code>
            <location>/401.htm</location>
         </error-page>
         <error-page>
            <error-code>404</error-code>
            <location>/404.htm</location>
         </error-page>
         <error-page>
            <error-code>500</error-code>
            <location>/500.htm</location>
         </error-page>


        當然,僅僅設置這樣的語句還不行,需要創建相應的401.htm、404.htm、500.htm這樣的文件才行。另外,要把錯誤頁面文件放到webapps\manager目錄中,否則需要在web.xml中指定其路徑,最后的效果如圖11所示。(圖11)


      總結:Tomcat不同于IIS,其配置沒有圖形界面,而是通過修改配置文件來完成的。不過,正因為如此用戶有更多的自主性,可以根據自己的需要進行擴展。而且其與Apache可以無縫結合,打造安全、強大的Web服務器。

      來源:網絡搜集//所屬分類:Web服務器教程/更新時間:2011-12-08
      相關Web服務器教程