WireGuard是一种比OpenVPN等工具更快、更简单、更精简的VPN工具。OpenVPN存在的历史悠久,配置成熟,而WireGuard是一种更新、更快的VPN 协议。
在本教程中,我们将深入介绍在pfSense上搭建远程访问WireGuard服务器,手机客户端远程访问服务器,并通过防火墙路由出站的过程。
虽然WireGuard本身没有“客户端”和“服务器”的概念,但在这种部署方式下,防火墙无法发起与远程对等点的连接。在本文当中,防火墙就充当“服务器”,远程端点称为“客户端”。
本教程所使用的防火墙软件版本为pfSense plus 24.08-DEVELOPMENT。
所需信息
在开始WireGuard VPN配置之前,必须确定以下基本信息:
防火墙WAN类型: 静态公网(已配置域名) 监听端口: 51820 隧道子网: 192.168.5.0/24 隧道地址: 192.168.5.1/24 手机端点地址: 192.168.5.2/32 手机端点WAN类型: 动态公网
配置隧道
导航到系统>插件管理,在可用插件处搜索”wireguard”并安装。
转到VPN > WireGuard > 隧道选项卡,单击添加隧道。使用前面确定的信息填写选项。
端口使用51820,点击生成按钮生成新的接口密钥,并将公钥复制到记事本,以便在手机客户端上使用。
启用隧道
转到VPN > WireGuard >设置选项卡,选中启用并保存。
添加端点
导航至VPN > WireGuard >端点选项卡,单击添加端点。使用前面确定的信息填写选项。
选中前面建立的tun_wg0隧道,输入一个描述名称,选中动态端点,给keep Alive设置一个值,点击生成预共享密钥,允许IP输入192.168.5.2/32。
注意:端点的公钥必须在手机客户端上生成。打开手机的WireGuard程序,新建一个WireGuard配置,点击生成密钥对,生成一个公钥/私钥。将生成的公钥复制到上面的公钥栏当中。
添加接口
转到“接口 > 分配”。选择“tun_wg0”接口。单击“添加”按钮,将该接口添加到接口列表中。
转到“接口 > [OPTx]”页面。选中“启用”和“防止接口删除”复选框,输入描述,IPv4静态地址输入192.168.5.1,掩码24,然后单击保存。
添加规则
放行端口
允许访问网络
WireGuard VPN配置为允许来自客户端设备(例如手机)的外部连接,如果不创建任何防火墙规则,客户端将无法访问网络上的任何内容。如果想让规则保持简单,我们可以在WG接口上创建一个“允许所有”规则,如下图所示:
同时,在内置WireGuard接口上也添加同样的规则。
客户端配置
pfSense转到“VPN > WireGuard > 状态”页面,也可以查看已连接的信息。