通过IP限制对Tomcat manager的访问
我试图将所有不来自我的IP的请求限制到我的Tomcat manager 到目前为止,我发现在server.xml中添加一个阀门如下:通过IP限制对Tomcat manager的访问,tomcat,tomcat7,tomcat-valve,tomcat-manager,Tomcat,Tomcat7,Tomcat Valve,Tomcat Manager,我试图将所有不来自我的IP的请求限制到我的Tomcat manager 到目前为止,我发现在server.xml中添加一个阀门如下: <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="IP"/> 将阻止除来自整个Tomcat(包括webapps)的“IP”请求之外的所有请求。有人知道如何做同样的事情,但只适用于Tomcat经理吗 顺便说一下,我正在使用Tomcat7。在[tomcat]/co
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="IP"/>
将阻止除来自整个Tomcat(包括webapps)的“IP”请求之外的所有请求。有人知道如何做同样的事情,但只适用于Tomcat经理吗
顺便说一下,我正在使用Tomcat7。在
[tomcat]/conf/Catalina/[hostname]
中创建一个文件manager.xml
因此,如果您的主机名是www.yourdomainname.com
,而tomcat位于opt/tomcat7/
中,那将是:
/opt/tomcat7/conf/Catalina/www.yourdomainname.com/manager.xml
在这个新创建的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>
在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>
我将@acdhirr的建议添加到阀门中,以拒绝状态
denyStatus=“404”
,这也起了作用。效果非常好!另外还伟大的否认身份!我刚刚在Tomcat 7.0.64和8.0.36上尝试了这一点,但没有重新启动。如何测试这一点?@PeakGen您可以从不在允许列表中的IP地址请求具有浏览器的管理器。它应该显示404。
<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>