iPhone通过WireGuard VPN远程访问pfSense防火墙

pfSense2.5正式版增加了对WireGuard VPN的支持,可以通过设置WireGuard VPN,使用手机端远程访问防火墙。下面介绍设置过程。

本教程网络:防火墙接口地址:192.168.1.1,LAN网络:192.168.1.0/24,WAN接口地址:172.16.16.1

一、创建VPN隧道

  1. 导航到防火墙>VPN菜单,单击Wireguard
  2. 单击添加隧道
  3. 选中启用
  4. 给隧道添加描述说明
  5. 指定你的VPN网络的地址。该地址不能与你的主要LAN子网重叠。该地址将是防火墙上用于路由目的接口地址。在本例中使用10.0.0.1/24
  6. 在接口密钥右侧,单击生成密钥
  7. 将公钥复制到文本文件中,以供后面使用。本例接口公钥为:$ PUBKEYFIREWALL =
  8. 点击保存

二、创建防火墙规则

  1. 单击防火墙,然后转到”规则策略”菜单
  2. 在“WAN”选项卡下,单击“添加”来添加一个规则
  3. 将“动作”设置为“通过”,将“接口”设置为WAN,地址族设置为IPv4
  4. 将协议设置为UDP
  5. 将“源”设置为“任意”
  6. 将目标设置为“ WAN地址”
  7. 将“目标端口范围”设置为“自定义”,端口范围从51820设置为51820
  8. 点击保存
  9. 返回”规则策略”菜单,然后转到WG0选项卡
  10. 点击添加
  11. 将动作设置为“通过”,接口设置为WG0,地址族设置为IPv4
  12. 将协议设置为任意
  13. 将源设置为“WG0 net”
  14. 将“目标”设置为“任意”(或你希望对等方能够连接到的任何目标,在本例中,我将其用于所有Internet通信。如果只需要访问网络,则可以将其设置为更小的目标范围)
  15. 点击保存
  16. 点击页面顶部的“应用更改”

三、手机端设置

  1. 在iPhone上,转到Wireguard应用(需要注册国外苹果账号才能下载),点击加号按钮,然后选择“从头开始创建”
  2. 在“名称”字段,输入pfSense或或任何你想调用的连接
  3. 点击生成密钥对
  4. 保存公钥以备后用,本例中为:$ PUBKEYPHONE =
  5. “地址”填写10.0.0.2/24
  6. 将监听端口和MTU留空
  7. 根据需要指定DNS服务器
  8. 向下滚动到对端
  9. 公共密钥请输入$ PUBKEYFIREWALL =(防火墙上生成的公共密钥)
  10. “预共享密钥”留空
  11. “端点”是你的防火墙的WAN接口地址和设置的端口号,本例为:172.16.16.1:51820
  12. “允许的IP”是尝试访问的IP地址。如果只想访问网络,则只输入192.168.1.0/24即可。如果要通过VPN路由所有Internet流量,请输入0.0.0.0/0
  13. 点击右上角的保存
  14. 允许该应用更改你的VPN配置

四:建立端点(pfSense)

  1. 回到VPN和Wireguard
  2. 单击WG0旁边的编辑
  3. 点击添加远程端点
  4. “描述”字段输入iPhone或任何你想调用的名称
  5. 将端点、端点端口和保持活动状态留空
  6. “公钥”输入在IPhone中生成的公钥:$ PUBKEYPHONE =
  7. “允许的IP”是要路由的IP。在本例中,由于没有其他设备,因此输入10.0.0.2/32
  8. 单击更新
  9. 点击保存

五、连接VPN

现在在iPhone上打开Wireguard应用程序,然后点击pfSense网络上的滑块进行连接。转到设置和查看日志,可以查看该应用程序相关信息。Wireguard的工作方式与其他VPN略有不同,除非有流量传输,否则它实际上不会做任何事情。一旦看到流量流向其“允许的IP”子网中的IP,它才尝试进行握手连接。

六、其他注意事项

  • 如果你希望VPN不在网络上时就可以连接,则可以进入Wireguard应用程序,编辑隧道,然后选中按需激活。
  • 预共享密钥是可选项,可以提高网络的安全性。

以下为视频教程: