我有一个Cloudflare Tunnel
带有两个子域的 。我需要将其中一个设为公开,如果源不是我的 IP,则阻止另一个。我创建了一个网络策略,该策略规定如果SNI Domain is admin.example.com
(即我需要阻止其他 IP 的子域),Source IP is not <my ip>
则Block
。这部分有效Source IP
,但它也会阻止我的其他子域访问任何其他 IP,因此SNI Domain is admin.example.com
并没有达到我需要的效果。需要更改什么才能使其正常工作?
答案1
根据提供的信息,问题似乎出在您在 Cloudflare Tunnel 中创建的网络策略上。您描述的策略是,如果源 IP 不是您的 IP,则阻止到 admin.example.com 子域的流量,但如果源 IP 不是您的 IP,则它也会阻止到其他子域的流量。这可能是因为该策略适用于所有流量,无论它要到哪个子域。
要解决此问题,您需要更新网络策略,使其仅适用于流向 admin.example.com 子域的流量。这可以通过向策略添加与传入流量的子域匹配的条件来实现。例如,您可以使用 SNI 域条件来匹配流向 admin.example.com 子域的流量。
以下是更新后的网络策略的示例:
if SNI Domain is admin.example.com and Source IP is not <my ip> then Block
此更新后的政策仅适用于流向 admin.example.com 子域的流量,并将阻止来自任何非您 IP 的源 IP 的流量。这应允许从任何源 IP 访问其他子域,同时仍阻止从其他 IP 访问 admin.example.com 子域。
还值得注意的是,如果您有多个要阻止访问的子域,则可以使用 SNI 域条件一次匹配多个子域。例如,您可以使用这样的条件来阻止对 admin.example.com 和 secure.example.com 子域的访问:
if SNI Domain is admin.example.com or SNI Domain is secure.example.com and Source IP is not <my ip> then Block
如果源 IP 不是您的 IP,这将阻止对两个子域的访问,同时允许访问其他子域。您可以根据需要调整网络策略中的条件以满足您的特定要求。
答案2
事实证明,我使用了错误的策略区域。Gateway -> Policies -> Network Policy
我需要Access -> Applications -> Add an Application
为管理子域创建一个应用程序 (),而不是 。然后该应用程序允许我限制 IP 范围。