通过 pfSense OpenVPN 路由特定的 HTTP 请求

通过 pfSense OpenVPN 路由特定的 HTTP 请求

首先,我对路线、iptables 等知之甚少。话虽如此,这是我想要完成的事情,也是我认为我被难住的地方:

问题:我们有一个外部网站,我们最近为它设置了防火墙,因此它只接受来自我们办公室 IP 地址的流量。这在办公室运行良好,但不适用于通过 VPN 进行远程访问,因为我们不会通过 OpenVPN 路由所有流量。我宁愿避免强迫每个人都路由所有流量只是为了适应这个网站。

环境:主路由器盒正在运行 pfSense。Em0 是内部 IP,Em1 是外部 IP。内部网络是 10.23.x,VPN 是 10.0.8.0/24

我认为我需要做的是向 VPN 服务器配置添加一条路由,以便通过 VPN 隧道将所有流量发送到该 IP。我认为这部分正在工作,但我没有收到回复,所以我假设我需要在 VPN 服务器上进行一些 NAT 配置,以便通过隧道将响应路由回来?

到目前为止我发现可以尝试以下步骤,但由于这是 FreeBSD 上的 pfSense 框,因此我无法运行 iptables 等。

确保已启用 IP 转发: echo 1 > /proc/sys/net/ipv4/ip_forward

设置 NAT 返回:iptables -t nat -A POSTROUTING -s 10.0.8.0/24 -o em0 -j MASQUERADE

我走的路对吗?如果对,我该如何通过 pfSense UI 或 FreeBSD CLI 来实现这一点?谢谢!

答案1

明白了!我和一位同事偶然间取得了成功(目前)。

XXX.XXX.XXX.XXX = 我们希望通过 VPN 路由的特定站点的 IP

解决方案:

  1. VPN > OpenVPN > 服务器 > 编辑 > 自定义选项:推“routeXXX.XXX.XXX.XXX”;
  2. 防火墙 > NAT > 出站 >
    • 选择手动出站 NAT (AON)
    • 添加以下2条路线:
      • 接口源 SrcPort 目标 DestPort NATAddr NATPort StaticPort
      • 广域网 10.23.23.0/24 * * * * * 无
      • 广域网 10.0.8.0/24 * XXX.XXX.XXX.XXX/32 * * * 无
  3. 利润 ;-)

步骤 3 是可选的。

答案2

很高兴您解决了这个问题!另一种方法是让外部服务器成为 VPN 的一部分。然后只需将域设置为服务器的新 VPN IP 而不是公共 IP。这样,对外部服务器的所有管理访问也会通过 VPN 进行。而且没有特殊路由或 NAT 规则。

相关内容