pfSense、OPNsense使用WireGuard VPN建立站点到站点连接和配置策略路由示例

前面文章介绍了pfSense WireGuard VPN站点到站点配置及策略路由的应用,本文介绍在pfSense和OPNsense之间使用WireGuard VPN建立站点到站点连接和配置策略路由的方法。使用的防火墙版本为pfSense2.52(当前为RC版)和OPNsense 21.1.7_1。

本示例网络拓扑如下:

配置流程:添加隧道→添加远程端点→分配接口→添加规则→添加网关→添加静态路由→添加策略路由→测试。

防火墙A配置(pfSense)

添加隧道

在防火墙A上,导航到VPN>WireGuard,单击添加隧道,填写如下内容,端口可以采用默认值,也可以自定义,接口公钥、私钥点击右侧的自动生成完成。

添加对端(远程端点)

保存后,在页面下方单击添加对端,端点填写防火墙B的公网IP,端口填写后面步骤中防火墙B上设置的自定义端口或默认值,公钥可以先不填,待启用防火墙B的隧道后再复制过来。允许IP输入0.0.0.0/0,你也可以根据自己的子网和WG设置填写网络地址。

完成后如下图所示:

分配接口

首先,修改默认网关,以便在准备就绪之前不会自动选择WireGuard:

  • 导航到系统>路由管理
  • 默认网关IPv4设置为特定网关(例如WANGW)或组
  • 如果该VPN也同时承载IPv6流量,则以类似方式设置默认网关IPv6
  • 点击保存
  • 点击“应用更改”

接下来分配接口,以方便后面使用策略路由。

  • 导航到接口>分配
  • 在“可用网络端口”列表中,找到类似wg0这样的接口
  • 单击添加将接口分配为新的OPT接口(例如OPT1)
  • 导航到“接口配置”页面,“接口”>“OPTx”
  • 选中启用
  • 输入描述,(例如WG
  • IPv4配置类型,选静态IPv4
  • IPv4地址,输入10.10.10.2/24
  • 点击保存
  • 点击“应用更改”

添加规则

导航到防火墙>规则策略,在WireGuard接口上添加any to any的规则,如下图所示:

在对应WAN接口上,添加允许WireGuard默认端口或自定义端口通行的防火墙规则,协议选UDP,如下图所示:

在新添加的WG接口上,添加一条any to any的规则 ,如下图所示:

防火墙B配(OPNsense)

添加隧道

在防火墙B上,导航到VPN>WireGuard>本地,单击下面的“+”添加本地隧道,接口公钥、私钥不用填写,保存后自动生成。这里的公钥与防火墙A的远程端点公钥必须一致。

填写完成后点击保存,如下图所示:

添加对端(远程端点)

点击应用后,转到VPN>WireGuard>端点,单击下面的“+”添加远程端点,公钥从防火墙A本地隧道上复制,允许IP输入0.0.0.0/0,你也可以根据自己的子网和WG设置填写网络地址,端点地址为防火墙A的wan接口地址,端口采用默认值或自定义值。

填写完成后如下图所示:

分配接口

分配WG接口并填写IPv4地址:10.10.10.2/24。

导航到接口>分配,找到wg开头的接口名称点击添加。

打开添加的接口,启用并输入描述名称。

在IP地址栏,输入IPv4地址,本示例为10.10.10.3/24。

添加规则

添加三条防火墙规则,保证WireGuard的数据流量正常通行。第一条,在WireGuard接口上添加any to any的规则:

第二条,在对应WAN接口上,添加允许WireGuard默认端口或自定义端口通行的防火墙规则,协议选UDP,如下图所示:

第三条,在新添加的WG接口上,添加一条any to any的规则 ,如下图所示:

至此,两个防火墙上WireGuard VPN站点到站点的配置完成了。下图是两个防火墙连接后的详细信息。

完成上面的步骤后,两端的WireGuard VPN隧道已经打通,在防火墙A上PING防火墙B的WG接口地址(10.10.10.3),是可以连通的,反之也可以。但这时候还不能访问对端的LAN子网,还需要添加WG网关,并填加基于WG接口的静态路由。

静态路由

添加对端网关

在防火墙A上,为WG接口添加远程网关。

导航到路由管理>网关状态,添加网关,IP地址为防火墙B的WG接口地址,这里为10.10.10.3。

添加静态路由

在防火墙A上,导航到路由管理>静态路由,单击添加,新增一条静态路由,目标网络输入防火墙B的LAN子网,网关选上一步新建立的WG网关,如下图所示:

填写并保存后如下图所示:

在防火墙B上,为WG接口添加远程网关。转到系统>网关>单个,在WG接口上添加新网关。注意网关地址填写防火墙A的WG接口地址:10.10.10.2。

转到系统>路由>配置,添加一条静态路由。静态路由目标网络为防火墙A的LAN子网192.168.101.0/24,网关选上一步建立的WG网关。如下图所示:

完成以上步骤后,现在已经可以对远端的子网进行访问了,从防火墙Ping对端的LAN子网地址是可以连通的。

策略路由

如果要从远程端点公网出站访问互联网,可以通过修改LAN接口的默认策略路由来实现。

在防火墙A的lan接口上,修改默认的防火墙规则,将网关修改为WG网关,确保所有的流量通过WG隧道。如下图所示:

测试

一、测试连通性:在防火墙B后面的客户端上ping防火墙A的LAN接口IP,测试连接是否成功。

二、测试策略路由是否生效:在防火墙A后面的电脑终端上,打开浏览器访问网页,检查访问的公网IP是否发生改变,如果显示为防火墙B的公网IP,说明策略路由已生效。

三、测速:用iperf3跑了一下测速,测试带宽为上、下行300M,测试结果如下图:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注