理想情况下,用户应该使用网络防火墙来限制基于 IP 的访问。然而,利用Tomcat 应用服务器也可以实现的。
步骤
-
进行备份并打开 server.xml
-
搜索<Valve className="org.apache.catalina.valves.RemoteAddrValve"/>
-
您可以将 IP 地址列入白名单或黑名单。 根据您的要求在第二步中找到的行下添加以下行。
在突出显示的占位符中提供您的 ip 模式:-
将 IP 地址列入白名单:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" denyStatus="500" allow=" <your-ip-pattern-to-allow> " /> -
将 IP 地址列入黑名单:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" denyStatus="500" deny=" <your-ip-pattern-to-deny> " />
-
-
重新启动 Tomcat 并通过访问它来验证配置。
从受限 IP 访问 Tomcat 时:HTTP ERROR 500 将作为响应返回。
示例配置
将一组 IP 地址列入白名单的配置:
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" denyStatus="500" allow=" ^(127\.\d+\.\d+\.\d+|::1|0:0:0:0 :0:0:0:1|10\.14\.17\.1|10\.14\.18\.1)$ " />
配置分解
- 白名单 - 只允许访问与正则表达式模式匹配的特定 IP 集。
- 黑名单 - 拒绝访问与正则表达式模式匹配的特定 IP 集。
示例正则表达式模式:^( 127\.\d+\.\d+\.\d+ | ::1 | 0:0:0:0:0:0:0:1 |10\.14\.17\.1 |10\.14\.18\.1)$"
注意:多组 IP 由竖线字符分隔。
- 通过本地 ipv4 和 ipv6 地址的 127.xx.xx.xx 和 ::1 和 0:0:0:0:0:0:0:1 访问 Applications Manager。即在同一台机器上:
- 127\.\d+\.\d+\.\d+
- ::1
- 0:0:0:0:0:0:0:1
- 要通过用户特定 IP 的 10.14.17.1 和 10.14.18.1 访问 Applications Manager:
- 10\.14\.17\.1
- 10\.14\.18\.1
IP 也可以在通配符模式中提及。 例如,允许所有以 10.14.xx.xx 开头的 IP
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" denyStatus="500" allow=" ^(127\.\d+\.\d+\.\d+|::1|0:0:0:0 :0:0:0:1|10\.14\.\d+\.\d+)$ " />