3

pfSense配置WireGuard VPN

 2 years ago
source link: https://blog.51cto.com/fxn2025/5388032
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

安装配置WireGuard

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

pfSense配置WireGuard VPN_pfsense

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

pfSense配置WireGuard VPN_pfsense_02

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

pfSense配置WireGuard VPN_pfsense_03

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

pfSense配置WireGuard VPN_pfsense_04

配置WireGuard接口

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

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

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

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

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

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

pfSense配置WireGuard VPN_pfsense_08

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

pfSense配置WireGuard VPN_pfsense_09

配置防火墙规则

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

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

pfSense配置WireGuard VPN_pfsense_10

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

pfSense配置WireGuard VPN_pfsense_11

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

pfSense配置WireGuard VPN_pfsense_12

至此,防火墙上的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服务器,然后复制公钥并保存。

pfSense配置WireGuard VPN_pfsense_13

Windows配置

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

pfSense配置WireGuard VPN_pfsense_14

pfSense端点配置

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

pfSense配置WireGuard VPN_pfsense_15

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

pfSense配置WireGuard VPN_pfsense_16

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

pfSense配置WireGuard VPN_pfsense_17

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

pfSense配置WireGuard VPN_pfsense_18

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

Android WireGuard客户端

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

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

pfSense配置WireGuard VPN_pfsense_19

Windows WireGuard客户端

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

pfSense配置WireGuard VPN_pfsense_20

拆分隧道与全时隧道VPN

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

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

pfSense配置WireGuard VPN_pfsense_21

拆分隧道VPN客户端配置

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

Android配置示例

pfSense配置WireGuard VPN_pfsense_22

Windws配置示例

pfSense配置WireGuard VPN_pfsense_23

全时隧道VPN客户端配置

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

Android配置示例

pfSense配置WireGuard VPN_pfsense_24

Windws配置示例

pfSense配置WireGuard VPN_pfsense_25

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

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

pfSense配置WireGuard VPN_pfsense_26

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK