TCP 443 + sniproxy 上的 openVPN 仅适用于某些 IP - 这是一种方法吗?

TCP 443 + sniproxy 上的 openVPN 仅适用于某些 IP - 这是一种方法吗?

我目前正在运行 sniproxy 和 https 服务器。如果用户已知(IP 已知),iptables 只允许连接到 sniproxy,它会将用户重定向到所需的网站或本地 https 服务器(127.0.0.1 4433)。如果 IP 未被授权使用 sniproxy,iptables 会将流量直接重定向到本地 https 服务器。

我想从所有 IP 访问 openVPN 服务器,我使用互联网的许多地方只有 80 和 443 未受阻拦。如果我将 openVPN 配置为侦听 TCP/443 并将 https 流量端口共享到 sniproxy,我最终会获得对 sniproxy 的开放访问权限,而这并不是我想要的。

我正在考虑 openVPN 中的条件端口共享 - 如果 ip 在列表中,它将重定向到 sniproxy (127.0.0.1 44333),如果不在列表中,它将重定向到 https 服务器 (127.0.0.1 4433)。我查看了 openVPN 手册,但不幸的是没有找到类似的东西。

有什么方法可以克服这个问题吗?

答案1

据我所知,您应该能够使用本地 OpenVPN 实例作为 sniproxy 中的后备。您可以设置两个 sniproxylisten块,它们都可以使用 OpenVPN 作为后备。

如果你不想使用 OpenVPN 作为后备,你可以使用安全组通过同一端口多路复用 OpenvPN 和 TLS(使用单个):

  • iptables -> sniproxy -> HTTP 服务器;
  • iptables -> sniproxy -> sslh -> 本地 HTTPS 服务器;
  • iptables->sniproxy->sslh->OpenVPN;
  • iptables -> sslh -> 本地 HTTP 服务器;
  • iptables -> sslh -> OpenVPN。

相关内容