允许对特定 URL 的请求,但阻止所有其他 URL

允许对特定 URL 的请求,但阻止所有其他 URL

我有一个在云中运行的 VM 实例。

我想允许从所有来源向在那里运行的应用程序的一个端点发出请求,同时阻止所有向另一个端点发出的请求(如果它们不是来自特定 IP)。

例如,domain.com/endpoint 应该可以被所有 IP 访问 - domain.com 应该可以从一个 IP 访问。

目前,如果您不是来自特定 IP,我会使用防火墙功能阻止所有对 domain.com 的请求。

不幸的是,我对这个主题不太了解 - 所以我甚至无法搜索我需要的内容,因为我不知道正确的术语,也不知道谷歌云产品应该叫什么。我简要查看了端点,但似乎那是针对 API 的 - 所以我认为那不是我需要的。

有人知道我需要使用什么产品吗?

编辑:
我正在使用 docker 运行 adguard home - 它已经通过 tls 提供 dns,我也希望通过 https 提供 dns。domain.com
请求和 domain.com/endpoint 请求都由同一图像提供服务。问题是 UI 和 doh 都在同一端口上提供服务,我无法配置 UI 使用哪个端口,至少在菜单内部无法配置。在我看来,将登录界面暴露给整个互联网似乎不明智。
添加其他 docker 容器来处理这个问题对我来说不是问题。但我希望它仍然是谷歌云配置问题。Cloudflare 对我来说也是一个选择。它已经为我的域的其他部分进行了配置。

答案1

我部署了提到的容器并能够设置私有 DNS。

在第一次设置提示时,系统会要求您进入管理员界面,因此您可以将其更改为localhost(但随后您需要从网络内部访问此实例,这非常麻烦和复杂)或:使其在所有界面中可用,但将端口从 80 更改为其他端口(它只是未加密http)。除非我错过了什么,否则我还没有找到允许您通过 HTTPS 访问服务器管理面板的功能。

如果你在其他端口设置管理面板,那么你可以轻松创建防火墙规则仅允许来自一个 IP(或某个 IP 范围)的传入连接。

- - - - - 更新 - - - - -

要阻止请求,/admin您可以使用基于 URL 和/或 IP 的 Cloud Armor。您可以阻止所有进入管理面板的流量,但一个(或某个范围)IP 除外。

相关内容