如何在 CentOS 8 上安装 WireGuard VPN
WireGuard 是一种流行的点对点开源通信协议,用于创建安全、快速的虚拟专用网络隧道。该 VPN 专为在 Linux 内核中使用而设计。 WireGuard 是一款轻量级 VPN,可为用户提供极快的速度。
本文向您展示如何在 CentOS 8 系统上安装和设置 WireGuard。 WireGuard 的安装和设置比现有的 VPN(例如 OpenVPN)要容易得多,这是它在 Linux 社区中日益流行的主要原因。
概述
本文由两部分组成:
在第一部分中,我们将安装并配置一台 CentOS 8 计算机,该计算机将充当 WireGuard VPN 服务器。
在第二部分中,我们将安装并配置一台 CentOS 8 计算机,该计算机将充当 WireGuard VPN 客户端。
在 CentOS 8 服务器上安装和配置 WireGuard
在本节中,我们将通过安装 WireGuard 设置一台 CentOS 8 计算机作为服务器。
第 1 步:添加 EPEL 和 Elrepo 存储库
要开始在 CentOS 8 上安装 WireGuard,首先添加 EPEL 和 Elrepo 存储库以安装内核模块和 WireGuard 工具。
现在,安装所需的存储库后,安装内核模块和 WireGuard 工具。
第2步:安装内核模块和WireGuard工具
通过发出以下命令,可以从 EPEL 和 Elrepo 存储库快速安装内核模块和 WireGuard 工具:
当系统提示您允许导入 GPG 密钥并将其添加到 CentOS 8 系统时,请输入“Y”并按“Enter”以允许此操作。 ”
成功安装 WireGuard 工具后,我们现在将执行一些配置。
第 3 步:创建公钥和私钥
首先,我们将创建一个新的“/etc/wireguard”目录,以便我们可以在该目录中配置VPN服务器。要在 CentOS 8 系统中创建新的“/etc/wireguard”目录,请发出以下命令。
创建目录后,使用“wg”和“tee”命令行工具创建公钥和私钥。创建私钥和公钥的命令如下。
执行上述命令后将打印生成的密钥。
步骤 4:配置用于路由 VPN 流量的隧道设备
要设置设备,请在“/etc/wireguard”目录中创建一个配置文件,然后使用 nano 编辑器打开该文件。
在创建配置文件之前,请使用以下命令获取私钥。
将私钥保存在某处;稍后您将在配置文件中需要此密钥。
现在,创建“wg0.conf”文件。
将下面给出的内容添加到“/etc/wireguard/wg0.conf”文件中。
## IP Address of VPN server ##
Address = 192.168.18.200/24
## Save the configuration when a new client will add ##
SaveConfig = true
## port number of VPN server ##
ListenPort = 51820
## Private Key of VPN Server ##
PrivateKey = SERVER_PRIVATE_KEY
## Command to be executed before starting the interface ##
PostUp = firewall-cmd --zone=public --add-port 51820/udp && firewall-cmd --zone=public --add-masquerade
## Command to be executed before turning off the interface ##
PostDown = firewall-cmd --remove-port 51820/udp --zone=public && firewall-cmd --remove-masquerade --zone=public
该配置文件包含以下关键术语:
地址 – 接口 (wg0) 的私有 IP 地址。
SaveConfig=true – 在服务器重新启动或关闭时保存界面状态。
ListenPort – WireGuard 守护程序侦听的端口。
PrivateKey – 我们刚刚生成的密钥。
PostUp – 该命令将在启动界面之前执行
PostDown – 该命令将在关闭界面之前执行。
现在您已经很好地了解了配置文件,您可以使用键盘快捷键 (CTRL + S) 和 (CTRL + X) 保存文件并退出。
第5步:设置配置和“私钥”文件的权限
现在,我们将使 VPN 服务器更加安全。基本用户不应具有读取配置文件和“私钥”文件的权限。为了提供对这些文件的访问,我们将这两个文件的模式更改为600。下面给出了设置权限的命令。
完成权限后,我们将使用 wg-quick 命令行工具启动界面 (wg0)。
第6步:启动界面
要启动该界面,请发出以下命令:
如果您获得了如上截图所示的输出,则说明您已成功启动该界面。我们现在将检查接口的状态。
启用该界面以在 CentOS 8 服务器启动时自动启动该界面。
至此,服务器设置已经完成。现在,如果您想为此 VPN 服务器设置 NAT,则需要启用 IPv4 转发。
步骤 7:启用 IPv4 转发
要启用 NAT 的 IPv4 转发,请使用 nano 编辑器在“/etc/sysctl.d”目录中创建“99-custom.conf”文件。
将以下内容添加到“/etc/sysctl.d/99-custom.conf”
net.ipv4.ip_forward = 1
要启用 IPv6 转发,请将以下内容添加到“/etc/sysctl.d/99-custom.conf”文件中。
net.ipv6.conf.all.forwarding = 1
启用 IPv4 转发后,使用快捷键 (CTRL + S) 和 (CTRL + X) 保存文件并退出。
现在让我们继续设置 WireGuard 客户端计算机。
CentOS 8客户端上WireGuard VPN的安装和配置
在本节中,我们将设置一台 CentOS 8 计算机作为客户端。安装和配置 WireGuard VPN 客户端的过程与 WireGuard VPN 服务器的过程几乎相同。
第 1 步:添加 EPEL 和 Elrepo 存储库
首先,我们将添加 EPEL 和 Elrepo 存储库来安装内核模块和 WireGuard 工具:
现在,安装所需的存储库后,我们将安装内核模块和 WireGuard 工具。
第2步:安装内核模块和WireGuard工具
现在可以通过发出以下命令从 EPEL 和 Elrepo 存储库安装内核模块和 WireGuard 工具。
当系统询问您是否允许将 GPG 密钥导入并添加到 CentOS 8 系统时,请输入“Y”并按“Enter”以允许更改。 ”
成功安装 WireGuard 工具后,还需要配置 CentOS 8 客户端计算机。
第 3 步:创建公钥和私钥
在此步骤中,我们将在客户端计算机中创建一个新的“/etc/wireguard”目录。要在 CentOS 8 系统中创建新的“/etc/wireguard”目录,请输入以下命令。
创建目录后,使用“wg”和“tee”命令行工具创建公钥和私钥。下面提供了创建私钥和公钥的命令。
现在将打印生成的密钥。
步骤 4:路由 VPN 流量的配置
在此步骤中,我们将在“/etc/wireguard”目录中创建一个配置文件,并使用 nano 编辑器打开它。
在创建配置文件之前,请使用以下命令获取私钥。
将私钥保存在某处;稍后您将在配置文件中需要它。
现在,创建“wg0.conf”文件。
将以下内容添加到“/etc/wireguard/wg0.conf”文件中
## Private Key of VPN Client ##
PrivateKey = 8D8puLQCbUw+51wPE3Q7KutGxQhUvsy+a+DBgamb+3o=
## IP address of VPN Client ##
Address = 192.168.18.201/24
[Peer]
## Public Key of CentOS 8 VPN Server ##
PublicKey = VWndJ4oB7ZJwC/7UOm++OLDrbAxMPsR2yd0cl3sEkUI=
## set ACL ##
AllowedIPs = 0.0.0.0/0
## IP address and Port of CentOS 8 VPN Server ##
Endpoint = 192.168.18.200:51820
配置文件包含以下关键术语:
PrivateKey – 在客户端计算机上生成的密钥。
地址 – 接口 (wg0) 的 IP 地址。
PublicKey – 我们要连接的 VPN 服务器计算机的公钥。
AllowedIPs – 使用 VPN 进行流量传输的所有允许的 IP 地址。
端点 – 我们将提供要连接的 CentOS 8 服务器计算机的 IP 地址和端口号。
我们现在也配置了客户端计算机。使用键盘快捷键 (CTRL + S) 和 (CTRL + X) 保存文件并退出。
第5步:设置配置和“私钥”文件的权限
现在,我们将更改模式并将配置文件和“privatekey”文件的权限设置为600。输入以下命令来设置权限。
现在我们已经完成了权限,我们可以使用“wg-quick”命令行工具启动界面(wg0)。
第6步:启动界面
要启动该界面,请发出以下命令:
现在我们已经成功启动了界面。接下来,我们将检查接口的状态。
启用该界面以在 CentOS 8 服务器启动时自动启动该界面。
在此阶段,客户端也已设置完毕。
步骤7:将客户端的IP地址和公钥添加到CentOS 8服务器
最后一步是将 VPN 客户端计算机的 IP 地址和公钥添加到 CentOS 8 WireGuard VPN 服务器计算机的配置文件中。
返回服务器机器并将以下内容添加到“/etc/wireguard/wg0.conf”文件中。
## Public Key of VPN Client ##
PublicKey = dmfO9pirB315slXOgxXtmrBwAqPy07C57EvPks1IKzA=
## IP Address of VPN Client ##
AllowedIPs = 192.168.10.2/32
更新 VPN 服务器的配置文件后,使用键盘快捷键 (CTRL + S) 和 (CTRL + X) 保存文件并退出。
隧道现已建立,所有流量将通过 CentOS 8 WireGuard VPN 服务器传递。
步骤 8:验证隧道连接
要验证 CentOS 8 WireGuard VPN 服务器是否已正确安装和配置,请发出以下命令以验证流量是否流经配置的 WireGuard VPN 服务器。
就是这样!您已成功配置并建立 WireGuard VPN 服务器。
结论
本文向您展示了如何在 CentOS 8 计算机上安装和配置 WireGuard VPN 并将系统设置为 VPN 服务器。我们还向您展示了如何设置 CentOS 8 WireGuard VPN 客户端并配置客户端以通过 WireGuard VPN 服务器路由流量。