pfSense设置Tailscale站点到站点连接

本文摘要Tailscale 是一种软件定义的网状 VPN 解决方案,可让创建安全网络变得简单。Tailscale 数据平面建立在安全且轻量级的 WireGuard 协议之上,与其他解决方案不同,它可以实现一些强大的功能,例如自动密钥轮换、NAT 遍历和带有双因素身份验证的单点登录等。与之类似的解决方案还有 Zerotier,两者有各自的优缺点。2022 年 7 月 15 日,Netgate 官方发布了适用...

Tailscale 是一种软件定义的网状 VPN 解决方案,可让创建安全网络变得简单。Tailscale 数据平面建立在安全且轻量级的 WireGuard 协议之上,与其他解决方案不同,它可以实现一些强大的功能,例如自动密钥轮换、NAT 遍历和带有双因素身份验证的单点登录等。与之类似的解决方案还有 Zerotier,两者有各自的优缺点。

2022 年 7 月 15 日,Netgate 官方发布了适用于 pfSense 的 Tailscale 插件,现在可以在 pfSense 防火墙上体验这一强大功能。

下面以两个不同地点的 pfSense 防火墙建立站点到站点连接为例,介绍 Tailscale 的配置过程。

所使用的软件为 pfSense plus 22.05 中文定制版,防火墙 A 的子网为 192.168.11.0/24,防火墙 B 的子网为 192.168.21.0/24。为便于读者分辨,防火墙 A 采用深色主题,防火墙 B 采用浅色主题。

防火墙 A 配置

导航到插件管理 > 可用插件,找到 Tailscale 并安装。安装完成后,转到 VPN > Tailscale,转到认证选项卡,访问登录服务器上的地址,使用谷歌或微软等帐号注册 Tailscale。注册完成后,转到 Tailscale 的控制面板,在设置栏,找到密钥选项,生成一个新的密钥。

生成密钥界面

点击生成密钥:

点击生成密钥按钮

将生成的密钥复制到预认证密钥栏:

粘贴预认证密钥

单击保存。

转到设置选项卡,选中启用 Tailscale,监听端口使用默认值,选中授权子网路由,在通告路由选项中输入防火墙使用的子网。这里为 192.168.11.0/24。

Tailscale 设置页面

完成后单击保存。

转到防火墙 > 规则策略,在 Tailscale 选项卡上,添加一条允许访问任意目标的规则如下图所示:

添加 Tailscale 防火墙规则

为保证防火墙后面的客户端能正常访问对端防火墙和它后面的子网,还必须调整出站设置,把自动出站调整为混合出站,并手动添加一条 Tailscale 出站规则。如下图所示:

配置混合出站规则

再回到 Tailscale 控制面板,可以看到这台防火墙已经在设备列表当中。单击右侧的更多图标,禁用密钥过期。

禁用密钥过期

单击编辑路由设置,启用子网路由:

启用子网路由

至此,防火墙 A 设置完成。

防火墙 B 配置

配置过程与防火墙 A 相同,注意要生成新的预授权密钥,输入不同的防火墙子网。

防火墙 B 的 Tailscale 认证设置

防火墙 B 的子网设置

防火墙规则:

防火墙 B 添加规则

调整出站规则:

防火墙 B 混合出站规则

同时禁用密钥过期,并配置好子网路由。

防火墙 B 禁用密钥过期并配置子网路由

至此,两边的防火墙配置完成。

测试

两边防火墙互相 ping 对端子网地址,测试连接通性。

在防火墙 A 上,ping 防火墙 B 的 LAN 地址:

防火墙 A Ping 结果

在防火墙 B 上,ping 防火墙 A 的 LAN 地址:

防火墙 B Ping 结果

测试连接没有问题。

使用 iperf 跑了一下测速(300M 上、下行对等带宽):

iperf 测速结果

好像没有惊喜,哈哈。

其他

在多 WAN 环境中使用,如果在防火墙上设置负载平衡,会出现防火墙后面的客户端无法访问远程节点的问题。解决办法如下:

建立一个远程节点子网(或地址)的别名,在防火墙 LAN 接口选项卡上,在多线负载平衡规则前面添加一条规则,指定目标为远程节点别名,默认网关设为故障转移网关组或某个单网关即可。

添加通过别名指定网关的规则

调整后的负载平衡规则顺序

注意:如果防火墙后面的客户端不能与远程客户端连接,可以启用 UPnP 和 NAT-PMP 设置,并选中 允许 NAT-PMP 端口映射 选项。详细原因参见这里

UPnP 与 NAT-PMP 设置

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~