pfSense WireGuard 的作者 Christian McDonald 在 Netgate Docs 上更新了一篇文章,介绍了在 pfSense 上多站点之间使用 WireGuard VPN 隧道的方法,现在翻译出来,方便大家配置的时候参考。

本示例配置信息
| 项目 | 说明 |
|---|---|
| 设计目标 | 站点到多站点,每个隧道一个对等点,每个隧道多个对等点 |
| 隧道子网 | 172.16.0.0/30 |
1、总部:
| 广域网 IP 地址 | 198.51.100.10 |
| 隧道地址 | 172.16.0.1/30 |
| 监听端口 | 51820 |
2、远程办公室 A:
| 广域网 IP 地址 | 198.51.100.100 |
| 隧道地址 | 172.16.0.2/30 |
| 监听端口 | 51820 |
| LAN 子网 | 10.0.100.0/24 |
3、远程办公室 B:
| 广域网 IP 地址 | 198.51.100.200 |
| 隧道地址 | 172.16.0.3/30 |
| 监听端口 | 51820 |
| LAN 子网 | 10.0.200.0/24 |
WireGuard 配置
在三个 pfSense 防火墙上,分别导航到 VPN > WireGuard > 设置,选中启用,接口组成员选择仅未分配的隧道,如下图所示。

提示: 当允许来自任意远程网络的入站连接时,只在分配的 WireGuard 接口选项卡上使用规则来确保正确的返回路由。
注意: 分配的 WireGuard 接口选项卡上的规则得到 reply-to,可以确保进入特定分配的 WireGuard 接口的流量使用同一接口。否则,返回流量将使用默认网关。
隧道配置
在三个站点上分别创建 WireGuard 隧道:导航到 VPN > WireGuard > 隧道,单击 添加隧道,使用网络拓扑图上的信息填写选项,并注明每个站点的变化。选中启用,并填写不同的描述信息。监听接口选默认 51820 即可,接口密码点右侧的生成按钮创建。注意记录每个防火墙的公钥信息并备注。下面是总部的设置信息,其他的两个办公室参照设置。

设置完成以后,点击保存,才能在后面添加远程端点。
远程端点配置
导航到 VPN > WireGuard > 隧道,找到刚才添加的 WireGuard 隧道,单击隧道行的末尾编辑图标,打开隧道编辑页面,在页面底部,点击添加对端:
1、总部设置
添加两个远程办公室端点。
办公室 A 设置信息如下图所示,这里的公钥填写在办公室 A 上生成的。

办公室 B 设置信息如下图所示,这里的公钥填写在办公室 B 上生成的。

2、远程办公室 A 设置
在远程办公室 A,找到刚才添加的 WireGuard 隧道,单击隧道行的末尾编辑图标,打开隧道编辑页面,在页面底部,点击添加总部的端点信息,注意这里的公钥填总部上生成的,允许 IP 填上远程办公室 B 的子网。

3、远程办公室 B 设置
在远程办公室 B,找到刚才添加的 WireGuard 隧道,单击隧道行的末尾编辑图标,打开隧道编辑页面,在页面底部,点击添加总部的端点信息,注意这里的公钥也是填总部上生成的,允许 IP 填上远程办公室 A 的子网。

分配接口
这些步骤必须在三个站点上同时完成。
首先,修复默认网关,确保不会自动选择 WireGuard:导航到 系统 > 路由,将默认网关 IPv4 设置为特定网关(例如 WANGW)或组,如果此 VPN 也将承载 IPv6 流量,请以类似方式设置默认网关 IPv6,保存后并应用更改。如下图所示:

接下来,分配 WireGuard 使用的接口:
- 导航到 接口 > 分配
- 在可用网络端口列表中选择类似于
tun_wg的接口 - 单击 + 图标,将接口分配为新的 OPT 接口(如 OPT1)
- 导航到接口配置页面,接口 > OPTx
- 启用接口
- 输入描述信息,如
VPN_HQ(例如VPN_SITEA或VPN_SITEB) - 使用之前确定的信息填写选项,并注明每个站点的变化:
1、总部设置 (VPN_HQ)
- IPv4 配置类型:
Static IPv4 - IPv4 地址:
172.16.0.1/30
2、远程办公室 A 设置 (VPN_SITEA)
- IPv4 配置类型:
Static IPv4 - IPv4 地址:
172.16.0.2/30
3、远程办公室 B 设置 (VPN_SITEB)
- IPv4 配置类型:
Static IPv4 - IPv4 地址:
172.16.0.3/30
点击保存并应用更改。
添加防火墙规则
首先,在三个防火墙的 WAN 选项卡上中添加一条规则,放行 51820 端口,以允许流量到达 WireGuard。
需要注意的是,对等体之间流动的流量受相关 WireGuard 接口上的防火墙规则的约束。
导航到 防火墙 > 规则策略,WAN 选项卡,单击向上的箭头图标,在列表顶部创建一个新的防火墙规则。如下图所示:

填写完成后如下图所示:

注意: 源通常设置为 any,但填写对方防火墙的 IP 地址会更安全。
接下来,在三个防火墙上添加一条规则以允许在 WireGuard 隧道内传递流量。
导航到 防火墙 > 规则策略,单击分配的 WireGuard 接口,单击向上的箭头图标,在列表顶部创建一个新的防火墙规则,如下图所示。

注意: 该规则允许站点之间的所有流量,这显然不是安全的做法。你可以根据需要使用权限更少的规则进行限制。
添加路由
在三个站点上添加允许互访的静态路由。第一步先添加网关。导航到 系统 > 路由管理 > 网关,在三个站点上分别添加下面的网关。
1、总部设置 1
- 接口:
tun_wg - 地址族:
IPv4 - 名称:
WG_SITEA_GW4 - 网关:
172.16.0.2
2、总部设置 2
- 接口:
tun_wg - 地址族:
IPv4 - 名称:
WG_SITEB_GW4 - 网关:
172.16.0.3
3、远程办公室 A/B
- 接口:
tun_wg - 地址族:
IPv4 - 名称:
WG_HQ_GW4 - 网关:
172.16.0.1
下面添加静态路由。导航到 系统 > 路由管理,为以下网络添加静态路由,完成跨 VPN 路由访问。导航到 系统 > 路由 > 静态路由,添加静态路由。使用之前确定的信息填写选项,并注明每个站点的变化。
1、总部设置 1
- 目标网络:
10.0.100.0/24(远程办公室 A LAN 段) - 网关:
WG_SITEA_GW4
2、总部设置 2
- 目标网络:
10.0.200.0/24(远程办公室 B LAN 段) - 网关:
WG_SITEB_GW4
3、远程办公室 A 设置
- 目标网络:
10.0.200.0/24(远程办公室 B LAN 段) - 网关:
WG_HQ_GW4
4、远程办公室 B 设置
- 目标网络:
10.0.100.0/24(远程办公室 A LAN 段) - 网关:
WG_HQ_GW4
经过上述设置,三个站点之间内部子网就可以互相进行访问了。
觉得内容不错?我要