通过IP限制对Tomcat管理器的访问

mui*_*lpp 7 tomcat tomcat7 tomcat-valve tomcat-manager

我正在尝试将所有请求限制到我的Tomcat管理器,这些请求不是来自我的IP.

到目前为止,我发现在server.xml中添加一个Valve,如下所示:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="IP"/>
Run Code Online (Sandbox Code Playgroud)

将阻止除"IP"之外的所有请求到整个Tomcat(包括webapps).有谁知道如何做同样但只适用于Tomcat经理?

顺便说一下,我正在使用Tomcat7.

Ric*_*yer 22

[tomcat]/conf/Catalina/[hostname]创建文件manager.xml.

因此,如果您的主机名是www.yourdomainname.com和tomcat,opt/tomcat7/那将是:

/opt/tomcat7/conf/Catalina/www.yourdomainname.com/manager.xml
Run Code Online (Sandbox Code Playgroud)

在这个新创建的manager.xml 你把RemoteAddrValve上下文:

<Context antiResourceLocking="false" privileged="true" docBase="${catalina.home}/webapps/manager">

   <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
    allow="127\.0\.0\.1|11\.22\.33\.44" denyStatus="404" />

</Context>  
Run Code Online (Sandbox Code Playgroud)

用管道字符分隔多个ip地址.

我选择denyStatus=404这样可能的闯入者不会有线索甚至存在经理.

重启Tomcat.


gor*_*613 6

在Tomcat8中,我已经在中找到RemoteAddrValve C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\manager\META-INF\context.xml,只需要取消注释即可...

<Context antiResourceLocking="false" privileged="true" >
  <!--
    Remove the comment markers from around the Valve below to limit access to
    the manager application to clients connecting from localhost
  -->

  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->

</Context>
Run Code Online (Sandbox Code Playgroud)

我在阀中添加了@acdhirr的建议以否认状态denyStatus="404",这也起作用。