pfSense使用WireGuard进行多站点VPN连接配置示例

  防火墙

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

pfSense WireGuard多站点VPN连接网络拓扑图如下:

../_images/diagrams-wireguard-site-to-multisite.png
本示例配置信息
项目 说明
设计目标 站点到多站点,每个隧道一个对等点,每个隧道多个对等点
隧道子网 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_SITEAVPN_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

经过上述设置,三个站点之间内部子网就可以互相进行访问了。