kernelsky 发表于 2012-10-23 17:43:30

如何限制只有某些IP才能使用Tomcat Manager

Tomcat所附的manager application可以讓網站管理者透過存取/manager/html的方式隨時去reload一個webapp,基本的安全性保護是透過conf/tomcat-users.xml的帳號跟密碼認證,如果還要進一步要求安全性的話,可以修改manager.xml,加上使用IP或主機名稱來限制來源主機,底下是用IP作限制的例子:

01<ContextdocBase="${catalina.home}/server/webapps/manager"


02privileged="true"antiResourceLocking="false" antiJARLocking="false">


03<Valve className="org.apache.catalina.valves.RemoteAddrValve"


04allow="127.0.0.1,192.168.1.*"/>


05


06<!-- Link to the user database we will get roles from -->


07<ResourceLink name="users" global="UserDatabase"


08type="org.apache.catalina.UserDatabase"/>


09


10</Context>





只需要對原來的manager.xml加上
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1,192.168.1.*"/>
的設定,其中allow是允許的來源IP,如果有兩個以上時用逗號(,)隔開,同一個網段,可用萬用字元星號(*)來表示。

參考資料:
The Apache Tomcat 5.5 Servlet/JSP Container - Manager App HOW-TO
Apache Tomcat Configuration Reference - The Valve Component
Tomcat 7.0的設定方法:
在manager.xml中加入下列設定到Context

1<Valve className="org.apache.catalina.valves.RemoteAddrValve"


2allow="114\.\d+\.\d+\.\d+"/>




如:
view source
print?


1<Context docBase="${catalina.home}/webapps/manager"


2privileged="true" antiResourceLocking="false" antiJARLocking="false">


3<Valve className="org.apache.catalina.valves.RemoteAddrValve"


4allow="114\.\d+\.\d+\.\d+"/>


5</Context>





參考資料:
http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Remote_Address_Filter

Tomcat 7.x 與Tomcat 5.x 管理系統差異比較

Tomcat 完成安裝設定之後本身有一個內建的管理系統可以提供使用,這一個內建的管理系統雖然沒有很華麗介面跟圖形化介面,但是所提供的功能和資訊都是有很大的用處的,當中重要的部分是可以直接管理Tomcat 裡面的相關服務,以及提供服務的相關資訊如:處理時間,錯誤發生次數,服務請求數量...等,對於一個系統的管理者而言這些資訊都是相當重要的。
以下的範例將會拿Tomcat 5.x 跟Tomcat 7.x 當作範例,會拿這兩個版本當作例子是因為Tomcat 7.x 是目前最新的版本,除了個人的使用者外如果是公司線上運作的系統大概都還要再評估一下是否升級新版的Tomcat,畢竟換系統的風險是相當高的,多作一點準備總是好的,以下會提供這兩個版本的資訊提供參考。
Tomcat 管理介面的啟用需要設定管理者帳號密碼才可以登入,這樣的安全性設定在兩個版本中都有,只是設定的方式在Tomcat 5.x和Tomcat 7.x 有些不一樣的地方。
Tomcat 5.x 設定方式

開啟管理帳號設定檔案# vi $TOMCAT_HOME/conf/tomcat-users.xml
複製以下的內容到檔案設定中,並設定使用者名稱superfunction,使用者密碼superfunction<tomcat-users><role rolename="manager"/><user username="superfunction" password=”superfunction" roles="manager"/><user name="tomcat" password="tomcat" roles="tomcat" /><user name="role1" password="tomcat" roles="role1" /><user name="both" password="tomcat" roles="tomcat,role1" /></tomcat-users>
重新啟動Tomcat 服務使用連線帳號設定# /etc/init.d/tomcat restart
開啟限制連線管理系統的IP設定檔案#vi $TOMCAT_HOME/conf/Catalina/localhost/manager.xml
限制連線IP的設定方法可以分為三種只開放擔一個特定的IP 連線開放多個IP 連線開放特定網段的IP可以連線<Context docBase="${catalina.home}/server/webapps/manager" privileged="true" antiResourceLocking="false" antiJARLocking="false" useHttpOnly="true"><Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.0.200.171"/><Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.0.200.171,10.0.200.170. 10.0.200.169"/><Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.0.200.*"/><!-- Link to the user database we will get roles from --><ResourceLink name="users" global="UserDatabase" type="org.apache.catalina.UserDatabase"/></Context>
重新啟動Tomcat 服務# /etc/init.d/tomcat restart

<VALVE allow="<USER lang=zh-TW name="both" username="superfunction" allow="<VALVE allow="<USER lang=zh-TW name="both" username="superfunction" allow="<VALVE allow="<USER lang=zh-TW name="both" username="superfunction" allow="
Tomcat 7.x 設定方法


設定管理帳號設定檔案#vi $TOMCAT_HOME/conf/tomcat-users.xml
複製以下內容到設定檔案中,設定使用者名稱是superfunction 密碼是superfunction,在Tomcat 7.x 設定的管理者的標籤與Tomcat 5.x 有些不相同,有些不相同所要注意這一個部份的差別.在Tomcat 7.x 與Tomcat 5.x 的管理設定上有些許的不同,因爲管理有兩套管理介面所以分爲兩組管理標籤,而設定可以分爲單一個標籤單一個使用者,單一個使用者多個標籤.
<!--<role rolename="tomcat"/><role rolename="role1"/><user username="tomcat" password="tomcat" roles="tomcat"/><user username="both" password="tomcat" roles="tomcat,role1"/><user username="role1" password="tomcat" roles="role1"/>--><role rolename="manager-gui"/><role rolename="manager-status"/><user username="superfunction_a" password="superfunction" roles="manager-gui"/><user username="superfunction" password="superfunction" roles="manager-gui,manager-status"/>
完成設定後重新啓動Tomcat 服務# /etc/init.d/tomcat restart
設定限制連線IP 設定檔# vi $TOMCAT_HOME/conf/server.xml
限制連線IP的設定在Tomcat 5.x 只有白名單的設定,在Tomcat 7.x 中可以設定黑名單,同樣的限制的IP作種設定針對單一個限制連線IP多個限制連線IP允許一個網段限制IP<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log." suffix=".tpattern="%h %l %u %t &quot;%r&quot; %s %b" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.0.200.171 deny=""/><Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.0.200.171||10.0.200.131” deny=""/><Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.0.200.*” deny=""/>
完成設定後重新啓動Tomcat 服務# /etc/init.d/tomcat restart

以上的設定部分是在設定檔案的部分,完成了這些設定資訊就是前往管理介面. Tomcat 5.x管理介面這一個畫面就是Tomcat 安裝好之後會看到的預設系統歡迎畫面,管理介面也是在這一個頁面,位置就是在左上半部,點選Tomcat Administration 進入管理頁面。 Tomcat 7.x 管理介面Tomcat 7.x 的登入畫面不一樣了,在畫面上加了比較多的色彩元素,畫面看起來比較華麗跟前幾版比較單調的配色大不相同,很重要的是管理系統選單換位置了,哇哩勒從左邊換到右邊這樣有差嗎?真的有差!Tomcat 7.x 把管理系統裡面選單往上拉一層,在歡迎畫面就出現了管理系統的選單了,因此Tomcat 7.x 在限制連線IP 設定的功能開啟的話是連這一頁歡迎畫面都看不到的。 Tomcat 5.x Web Application Manager在tomcat 5.x 要進入Web Application Manager的連接要請點選List Application 這一個選項,在Web Application Manager提供可以從網頁管理系統去對於單一的Application Server 服務進行管理操作。 Tomcat 7.x Web Application Manager在Tomcat 7.x Web Application Manager介面的連接修改了變成在Managre App的位置,除此之外在版面上的配置是差沒有多少所以使用上應該沒有轉換的問題,但是在內在的安全機置卻加強了許多.除了管理系統中的安全機制,在Tomcat 7 中對於每一個連接還增加了一個辨識的session,用以避免跨網站的欺騙攻擊(CSRF),提高系統的安全性. Tomcat 5.x 服務資訊頁在Tomcat 5.x 要進到這一頁請點選Status ->Complete ServerStatus 這一個選項. 點選進去後就會表列出目前伺服器上的服務清單,與服務的相關資訊當中有幾個項目:服務反應時間(Process Time)錯誤發生數(Error Count)服務請求數(Request Count)載入時間(Load Time)在資訊頁當中的項目很多,以上提出幾個給大家參考,而其它的項目多可以從字面意思知道要表達的意義,所以還算易懂. Tomcat 7.x 服務資訊頁在tomcat 7.x 中所提供的資訊內容與Tomcat 5.x 大致上相同,但是要進入到該功能的選項變成Server Status->Complete Server Status 這一個部分要請注意. 頁面的內容主要也是要呈現Tomcat 中各Application 服務的執行狀況與資訊,Tomcat 7.x的資訊呈現方式與Tomcat 5.x雷同,主要都是系統的執行時間跟相關數據. 比較了Tomcat 5.x 與tomcat 7.x 可以發現是大同小異,修改的部分都是在安全性上的加強,這一個部分可能就會需要系統的管理人員多費心去了解新的安全規則,不過在操作的介面上還是保留原有的操作流程跟習慣這一點對於系統管理人員會是一個好消息,提供目前使用的報告給各位參考,希望對於評估是否使用新版的Tomcat 有所助益.

fateame 发表于 2013-3-14 00:58:45

路过,支持一下啦

cike0415 发表于 2013-5-16 02:01:38

月经不仅仅是女人的痛苦,也是男人的痛苦。

艾辉 发表于 2013-5-17 11:05:12

女,喜甜食,甚胖!该女有一癖好:痛恨蚂蚁,见必杀之。问其故曰:这小东西,那么爱吃甜食,腰还那么细!

南天一柱 发表于 2013-5-18 17:15:40

走,MM,咱们化蝶去……

wanmin444 发表于 2013-5-19 22:46:55

饭在锅里,我在床上*^_^*
页: [1]
查看完整版本: 如何限制只有某些IP才能使用Tomcat Manager