我有一个 SaaS 服务,它公开了一个 URL(比方说(https://mylink.foo.com),它只能从一些列入白名单的 IP 访问。但是,我们现在需要上述 URL 才能被那些列入白名单的 IP 之外的观众访问。我曾想过将另一台公共云服务器作为 IaaS 来充当枢纽,更改源 IP 和目标 IP,并将请求重定向到我的 SaaS 提供商(它与 IaaS 不同),在这种情况下,唯一列入白名单的 IP 将是枢纽的公共 IP 地址。
此外,由于正确的 URL 将指向无法从不在白名单中的 IP 访问的原始服务器,因此我正在考虑从公开第二个 URL(https://accesslink.foo.com )的同一支点发布 HTTP 服务器) 被重写为原始 URL 以达到可访问性目的。
由于提出了这种方案,它将包括:
- 充当防火墙/NAT 设备重写源/目标 IP 地址的 Linux 枢轴。iptables 将服务于这个目的。
- (也许?)另一个充当 HTTP 反向代理的主机为进入服务器的请求重写 URL。此处使用带有 mod_rewrite 或 nginx 的 HTTP 服务器。
我的担忧和问题是:
- 关于我的实施的整个想法可能吗?对于此类问题,还有其他更简单、更简单的解决方案吗?考虑到原始 URL 是通过 HTTPS 而不是通过 HTTP 公开的,是否可以重写?
如果您不介意分享我的描述中可能未解决的其他实现问题/挑战,请随时公开它们。
我不明白你为什么需要
iptables
在这里。只需将服务器安装为反向代理,将该服务器的 IP 在白名单 IP 中即可。最终用户将连接到该服务器,该服务器将反向代理连接到最终目的地。
反向代理会打开从其自己的 IP 地址到代理服务器 IP 地址的连接,因此您不需要任何额外的 IP 地址技巧。