![通过 pfSense OpenVPN 路由特定的 HTTP 请求](https://linux22.com/image/506165/%E9%80%9A%E8%BF%87%20pfSense%20OpenVPN%20%E8%B7%AF%E7%94%B1%E7%89%B9%E5%AE%9A%E7%9A%84%20HTTP%20%E8%AF%B7%E6%B1%82.png)
首先,我对路线、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
解决方案:
- VPN > OpenVPN > 服务器 > 编辑 > 自定义选项:推“routeXXX.XXX.XXX.XXX”;
- 防火墙 > 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 是可选的。
答案2
很高兴您解决了这个问题!另一种方法是让外部服务器成为 VPN 的一部分。然后只需将域设置为服务器的新 VPN IP 而不是公共 IP。这样,对外部服务器的所有管理访问也会通过 VPN 进行。而且没有特殊路由或 NAT 规则。