會員註冊 / 登入  |  電腦版  |  Jump to bottom of page

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

發表人: andowson, 七段學員
2007-07-01 11:07:54
Tomcat所附的manager application可以讓網站管理者透過存取/manager/html的方式隨時去reload一個webapp,基本的安全性保護是透過conf/tomcat-users.xml的帳號跟密碼認證,如果還要進一步要求安全性的話,可以修改manager.xml,加上使用IP或主機名稱來限制來源主機,底下是用IP作限制的例子:
<Context docBase="${catalina.home}/server/webapps/manager"

privileged="true" antiResourceLocking="false" antiJARLocking="false">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1,192.168.1.*"/>

<!-- Link to the user database we will get roles from -->
<ResourceLink name="users" global="UserDatabase"
type="org.apache.catalina.UserDatabase"/>

</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

發表人: andowson, 七段學員
2012-07-08 11:04:53
Tomcat 7.0的設定方法:
將webapps/host-manager/manager.xml 複製到conf/Catalina/localhost下

在manager.xml中加入下列設定到Context
<Valve className="org.apache.catalina.valves.RemoteAddrValve"

allow="127\.0\.0\.1|114\.\d+\.\d+\.\d+" denyStatus="404" />

兩個以上的IP用"|"分隔,注意到.前面要加上倒斜線(\)。
如:
<Context docBase="${catalina.home}/webapps/manager"

privileged="true" antiResourceLocking="false" antiJARLocking="false">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.0\.0\.1|114\.\d+\.\d+\.\d+" denyStatus="404" />
</Context>


實際測試,發現不需重啟Tomcat立即生效

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




會員註冊 / 登入  |  電腦版  |  Jump to top of page