云网牛站
所在位置:首页 > Linux教程 > Fedora Linux中用NetworkManager配置WireGuard VPN的方法

Fedora Linux中用NetworkManager配置WireGuard VPN的方法

2021-05-03 17:04:46作者:李燕稿源:云网牛站

本文介绍在Fedora Linux系统中使用NetworkManager配置WireGuard VPN的方法。本文介绍如何在两个对等点:PeerA和PeerB之间设置WireGuard,两个节点都运行Fedora Linux,并且都使用NetworkManager进行持久配置。

 

前言

虚拟专用网(VPN)广泛使用。如今,有各种不同的解决方案可供使用,这些解决方案使用户可以访问任何类型的资源,同时保持其机密性和隐私性。

最近,由于其简单性、速度和安全性,WireGuard是最常用的VPN协议之一。WireGuard的实现始于Linux内核,但目前可用于其他平台,如iOS和Android等。

WireGuard使用UDP作为传输协议,并基于Critokey路由(CKR)建立对等方之间的通信。服务器或客户端的每个对等方都有一对密钥(公用密钥和专用密钥),并且公用密钥和允许与之通信的IP之间存在链接。

参考:在Linux系统中安装及使用Wireguard建立虚拟专用网络

 

WireGuard设置和网络配置

与PeerA和PeerB之间建立持久的VPN连接仅三步:安装所需的软件包、生成密钥对、配置WireGuard接口。

1、安装

在两个对等方(PeerA和PeerB)上安装wireguard-tools软件包:

$ sudo -i

# dnf -y install wireguard-tools

该软件包可在Fedora Linux更新存储库中找到。它在/etc/wireguard/中创建一个配置目录。在这里您将创建密钥和接口配置文件。

2、生成密钥对

接下来,使用wg实用程序在每个节点上生成公钥和私钥:

# cd /etc/wireguard

# wg genkey | tee privatekey | wg pubkey > publickey

3、在PeerA上配置WireGuard接口

WireGuard接口使用名称:wg0、wg1等。创建WireGuard接口的配置。为此,您需要以下各项:

1]、您要在PeerA节点中配置的IP地址和MASK。

2]、此对等方侦听的UDP端口。

3]、PeerA的私钥。

# cat << EOF > /etc/wireguard/wg0.conf

[Interface]

Address = 172.16.1.254/24

SaveConfig = true

ListenPort = 60001

PrivateKey = mAoO2RxlqRvCZZoHhUDiW3+zAazcZoELrYbgl+TpPEc=

[Peer]

PublicKey = IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw=

AllowedIPs = 172.16.1.2/32

EOF

允许通过此对等方将侦听的端口的UDP流量:

# firewall-cmd --add-port=60001/udp --permanent --zone=public

# firewall-cmd --reload

success

最后,将接口配置文件导入NetworkManager。因此,WireGuard接口在重新启动后将继续存在:

# nmcli con import type wireguard file /etc/wireguard/wg0.conf

Connection 'wg0' (21d939af-9e55-4df2-bacf-a13a4a488377) successfully added.

验证设备wg0的状态:

# wg

interface: wg0

public key: FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8=

private key: (hidden)

listening port: 60001

peer: IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw=

allowed ips: 172.16.1.2/32

# nmcli -p device show wg0

Fedora Linux中用NetworkManager配置WireGuard VPN的方法

上面的输出显示接口wg0已连接。现在,它可以与一个VPN IP地址为172.16.1.2的对等方进行通信。

4、在PeerB中配置WireGuard接口

现在该为第二个对等方上的wg0接口创建配置文件了。确保您具有以下条件:

1]、在PeerB上设置的IP地址和掩码。

2]、PeerB的私钥。

3]、PeerA的公钥。

4]、PeerA的IP地址或主机名以及正在侦听WireGuard通信的UDP端口。

# cat << EOF > /etc/wireguard/wg0.conf

[Interface]

Address = 172.16.1.2

SaveConfig = true

PrivateKey = UBiF85o7937fBK84c2qLFQwEr6eDhLSJsb5SAq1lF3c=

[Peer]

PublicKey = FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8=

AllowedIPs = 172.16.1.254/32

Endpoint = peera.example.com:60001

EOF

最后一步是关于将接口配置文件导入NetworkManager。如前所述,这允许WireGuard接口在重新启动后具有持久配置:

# nmcli con import type wireguard file /etc/wireguard/wg0.conf

Connection 'wg0' (39bdaba7-8d91-4334-bc8f-85fa978777d8) successfully added.

验证设备wg0的状态:

# wg

interface: wg0

public key: IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw=

private key: (hidden)

listening port: 47749

peer: FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8=

endpoint: 192.168.124.230:60001

allowed ips: 172.16.1.254/32

# nmcli -p device show wg0

Fedora Linux中用NetworkManager配置WireGuard VPN的方法

上面的输出显示接口wg0已连接。现在,它可以与一个VPN IP地址为172.16.1.254的对等方进行通信。

 

验证对等方之间的连接

在执行了前面描述的过程之后,两个对等方都可以通过VPN连接相互通信,如以下ICMP测试所示:

[root@peerb ~]# ping 172.16.1.254 -c 4

PING 172.16.1.254 (172.16.1.254) 56(84) bytes of data.

64 bytes from 172.16.1.254: icmp_seq=1 ttl=64 time=0.566 ms

64 bytes from 172.16.1.254: icmp_seq=2 ttl=64 time=1.33 ms

64 bytes from 172.16.1.254: icmp_seq=3 ttl=64 time=1.67 ms

64 bytes from 172.16.1.254: icmp_seq=4 ttl=64 time=1.47 ms

在这种情况下,如果您在PeerA的端口60001上捕获UDP通信,则将看到通信依赖WireGuard协议和加密的数据:

Fedora Linux中用NetworkManager配置WireGuard VPN的方法

 

结论

虚拟专用网络(VPN)非常常见。在用于部署VPN的各种协议和工具中,WireGuard是一种简单,轻巧和安全的选择。它允许基于CryptoKey路由的对等方之间安全的点对点连接,过程非常简单。此外,NetworkManager支持WireGuard接口,允许重新启动后进行持久配置。

 

相关主题

Fedora上用NetworkManager克隆MAC地址以绕过强制门户(captive portal)

精选文章
热门文章