pfSense配置WireGuard VPN(含Android设备设置)

WireGuard是一种 VPN 工具,它比OpenVPN 之类的工具更快、更简单、更精简。在本教程中我们将深入研究如何在pfSense上安装WireGuard。以下的教程在pfSense2.6系统上完成。

安装配置WireGuard

1、导航到系统>插件管理>可用插件,找到WireGuard,然后单击右侧的安装按钮进行安装。

2、安装完成后,导航到VPN>WireGuard ,然后在隧道选项卡,点击右下角的添加隧道按钮添加一个新隧道。

3、在隧道配置页面,为隧道输入描述内容,将监听接口设置为51820 ,然后单击生成按钮,自动生成私钥和公钥远程。复制公钥到记事本,在后面的客户端配置上,这里的公钥要填写在”peer”的公钥部分。

4、选择设置选项卡,选中启用WireGuard。然后 保存并应用。

配置WireGuard接口

创建了WireGuard隧道后,还必须创建WireGuard 接口。

1、导航到接口菜单,选择分配。

2、在底部,添加刚刚创建的隧道。

选中接口(本文中为OPT8)进行编辑。

3、启用接口,修改描述内容。将 IPv4 配置类型更改为静态 IPv4。

4、在静态 IPv4 配置中,将 IP地址修改为10.200.0.1/24。也可以使用其他私有网段(只要当前未使用)。将MTU设置为1420,保存并应用接口设置。

5.、返回到WireGuard隧道列表,现在会看到该接口已分配给前面建立的隧道了。

配置防火墙规则

创建两个防火墙规则。一个用于WG_VPN接口,一个用于 WAN(放行51820端口)。

1、导航到防火墙,然后选择规则,然后在WG_VPN(上面的 WireGuard 接口)下,添加一个新规则。

2、 将协议改为Any,输入描述内容,其他默认,然后保存并应用规则。

3、选择WAN接口并添加新的防火墙规则。将地址族保留为IPv4,协议设置为UDP,目标设置为WAN 地址,自定义端口设置为51820。保存并应用新的防火墙规则。

至此,防火墙上的WireGuard配置完成。在完成手机或Windows客户端的配置以后,还需要返回添加远程端点。

WireGuard远程端点配置

现在将创建一个“peer”,它是一个将连接到我们的服务器的客户端。

WireGuard Peer设置有点独特,因为需要从正在设置的远程端点获取公钥。远程端点可以是Windows电脑、Mac/Linux设备,或是Android/iOS移动终端。配置的过程大同小异,下面介绍在Android和Windows的配置方法。

Android配置

Android设备必须安装Wireguard客户端,输入名称并生成公钥/私钥来创建新的WireGuard 隧道。在地址部分,本示例为10.200.0.5/24,这是分配给此客户端的IP地址。确保掩码是24以避免在连接其他设备时遇到问题。设置好DNS服务器,然后复制公钥并保存。

Windows配置

下载Windows Wireguard客户端并打开,添加一个空隧道。 会自动生成公钥和私钥。地址设置为 10.200.0.5/24,这是分配给该客户端的 IP 地址。 确保掩码是24以避免在连接其他设备时遇到问题。填写DNS服务器地址,然后复制公钥并保存。

pfSense端点配置

回到pfSense上,导航到VPN>WireGuard,然后选择端点,点击右下角的添加端点按钮,添加一个远程端点。

隧道选择我们在第一步中创建的WireGuard VPN隧道。输入一个描述说明,然后输入远程端点的公钥。(上面的Android 或Windows 设备上的公钥)。

在允许IP部分,输入在客户端配置中设置的IP地址,确保使用/32的掩码,以包含客户端在连接时使用的IP地址。

如果想通过确保需要公钥和预共享密钥来提高安全性,请可以选择生成预共享密钥。然后,复制它并将其添加到WireGuard客户端配置中。这将要求WireGuard客户端必须包含 pfSense服务器公钥和预共享密钥才能连接。

完成在pfSense添加远程端点以后,我们还必须在客户端设备上修改设置。

Android WireGuard客户端

公钥是pfSense WireGuard隧道上的生成的公钥。如果设置了预共享密钥,请输入预共享密钥。如果没有,可以留空。

端点是防火墙的静态外部IP地址。如果没有静态外部IP地址,可以使用动态DNS主机名。端口是默认的51820。

Windows WireGuard客户端

在Windows上的配置类似。下面是一个示例的配置。

拆分隧道与全时隧道VPN

根据流量方向的不同,可以创建拆分隧道VPN或全时隧道 VPN。

  • 拆分隧道VPN:只在尝试访问内部资源时,流量才会通过隧道发送。不通过隧道访问外部网络。
  • 全时隧道VPN: 所有流量都通过VPN隧道发送。

拆分隧道VPN客户端配置

在允许IP部分,输入希望通过此VPN隧道发送的IP地址。一般是VPN子网(示例为 10.200.0.0/24)和 LAN 子网(方便连接到本地设备),以逗号分隔。这样设置后,在访问外部网部时的公网IP地址不会有变化。

Android配置示例

Windws配置示例

全时隧道VPN客户端配置

如果想通过VPN隧道路由所有流量,请将允许IP设置为 0.0.0.0/0。这会通过VPN隧道路由所有流量。访问外部网络的公网IP会更改为pfSense的WAN接口IP。

Android配置示例

Windws配置示例

连接测试

所有的配置已准备就绪!确保客户端和防火墙网络畅通。现在应该能连接到pfSense lan子网及任意本地资源。如果使用的是拆分隧道 VPN,则访问外网的IP地址不会变化,如果使用的是全时隧道 VPN,则应该与pfSense网络相同。可以通过查询当前访问外部网络的公网IP来进行验证。

在防火墙菜单上,导航到状态>WireGuard,可以查看VPN隧道的连接情况。如果已连接并且握手成功,将会看到一个绿色的握手符号。

如果需要重启WireGuard 服务,导航到状态>服务,找到WireGuard,点击重新启动图标即可。

发表评论

您的电子邮箱地址不会被公开。