Ubuntu 20.04设置WireGuard VPN服务器

时间:2020-01-09 10:45:32  来源:igfitidea点击:

如何在Ubuntu 20.4 LTS Linux服务器上安装和设置WireGuard VPN服务器?
如何将Ubuntu 20.04配置为WireGuard VPN服务器?

WireGuard是具有最新加密技术的开源,免费,现代且快速的VPN。
与IPSec和OpenVPN相比,它更快,更简单。
最初是为Linux内核发布的,但是它也获得了对其他操作系统的跨平台支持。
本教程说明如何在Ubuntu 20.04 LTS Linux服务器上安装和设置WireGuard VPN。

过程:Ubuntu 20.04设置WireGuard VPN服务器

我们的示例设置包括运行Ubuntu 20.04 LTS服务器的云服务器与Ubuntu/Ubuntu/RHEL/SUSE/OpenSUSECentOS Linux桌面客户端之间的简单对等连接:在Ubuntu Linux 20.04 LTS上将WireGuard安装和配置为以下步骤: VPN服务器。

请注意,{Hyman @ ln-sg-vpn-001:~} $或者{Hyman @ ubuntu-20-4-vpn-client:~} $是我的shell提示符,不是实际的一部分命令。
换句话说,您需要在shell提示后复制并粘贴命令。

步骤1更新系统

运行apt命令以安装Ubuntu 20.04安全更新:

{Hyman@ln-sg-vpn-001:~ }$ sudo apt update
{Hyman@ln-sg-vpn-001:~ }$ sudo apt upgrade

步骤2在Ubuntu 20.04 LTS上安装WireGuard VPN服务器

现在,我们获得了具有最新安全补丁的服务器更新。
现在该在Ubuntu 20.04服务器上设置WireGuard VPN服务器了。
执行:

{Hyman@ln-sg-vpn-001:~ }$ sudo apt install wireguard

步骤3配置WireGuard服务器

首先,我们需要为WireGuard服务器创建一个私钥和公钥对。
让我们使用cd命令进入/etc/wireguard

{Hyman@ln-sg-vpn-001:~ }$ sudo -i
{root@ln-sg-vpn-001:~ }# cd /etc/wireguard/

执行以下命令:

{Hyman@ln-sg-vpn-001:~ }# umask 077; wg genkey | tee privatekey | wg pubkey > publickey

要查看创建的键,请使用cat命令和ls命令:

{Hyman@ln-sg-vpn-001:~ }# ls -l privatekey publickey
{Hyman@ln-sg-vpn-001:~ }# cat privatekey
## Please note down the private key ##
{Hyman@ln-sg-vpn-001:~ }# cat publickey

通过编辑wg0.conf在Ubuntu上设置WireGuard VPN

如下编辑或者更新/etc/wireguard/wg0.conf文件:

{Hyman@ln-sg-vpn-001:~ }$ sudo nano /etc/wireguard/wg0.conf
## 或者
{Hyman@ln-sg-vpn-001:~ }$ sudo vim /etc/wireguard/wg0.conf

追加以下配置指令:

## Set Up WireGuard VPN on Ubuntu By Editing/Creating wg0.conf File ##
[Interface]
## My VPN server private IP address ##
Address = 192.168.6.1/24
 
## My VPN server port ##
ListenPort = 41194
 
## VPN server's private key i.e. /etc/wireguard/privatekey ##
PrivateKey = eEvqkSJVw/7cGUEcJXmeHiNFDLBGOz8GpScshecvNHU=

使用vim文本编辑器时,保存并关闭文件。

步骤4设置UFW防火墙规则

我假设您已经配置了UFW,我们将使用ufw命令打开UDP 41194端口,如下所示:

sudo ufw allow 41194/udp

有关更多信息,请参见如何在Ubuntu 20.04 LTS上使用UFW配置防火墙。

步骤5启用并启动WireGuard服务

在启动时使用systemctl命令打开WireGuard服务,运行:

{Hyman@ln-sg-vpn-001:~ }$ sudo systemctl enable wg-quick@wg0

启动服务,执行:

{Hyman@ln-sg-vpn-001:~ }$ sudo systemctl start wg-quick@wg0

获取服务状态,运行:

{Hyman@ln-sg-vpn-001:~ }$ sudo systemctl status wg-quick@wg0

使用ip命令验证名为wg0的接口已在Ubuntu服务器上启动并正在运行:

{Hyman@ln-sg-vpn-001:~ }$ sudo wg
{Hyman@ln-sg-vpn-001:~ }$ sudo ip a show wg0

步骤6 Wireguard VPN客户端配置

安装和配置VPN客户端的过程与设置服务器相同。
让我们在Ubuntu Linux 20.04 LTS桌面上安装客户端:

{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo apt install wireguard

接下来,我们需要在Ubuntu/Debian/CentOS Linux destkop上创建VPN客户端配置:

{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo sh -c 'umask 077; touch /etc/wireguard/wg0.conf'
{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo -i
{root@ubuntu-20-4-vpn-client:~ }# cd /etc/wireguard/
{root@ubuntu-20-4-vpn-client:~ }# umask 077; wg genkey | tee privatekey | wg pubkey > publickey
{root@ubuntu-20-4-vpn-client:~ }# ls -l publickey privatekey
## Note down the privatekey ##
{root@ubuntu-20-4-vpn-client:~ }# cat privatekey

编辑/etc/wireguard/wg0.conf文件:

{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo nano /etc/wireguard/wg0.conf
## 或者
{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo vim /etc/wireguard/wg0.conf

追加以下指令:

[Interface]
## This Desktop/client's private key ##
PrivateKey = uJPzgCQ6WNlAUp3s5rabE/EVt1qYh3Ym01sx6oJI0V4=
 
## Client ip address ##
Address = 192.168.6.2/24
 
[Peer]
## Ubuntu 20.04 server public key ##
PublicKey = qdjdqh2+N3DEMDUDRob8K3b+9BZFJbT59f+rBrl99zM
 
## set ACL ##
AllowedIPs = 192.168.6.0/24
 
## Your Ubuntu 20.04 LTS server's public IPv4/IPv6 address and port ##
Endpoint = 172.105.112.120:41194
 
##  Key connection alive ##
PersistentKeepalive = 15

启用并启动VPN客户端/对等连接,运行:

{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo systemctl enable wg-quick@wg0
{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo systemctl start wg-quick@wg0
{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo systemctl status wg-quick@wg0

允许桌面客户端和Ubuntu服务器通过VPN连接

我们需要配置服务器端对等VPN选项,并允许客户端计算机和服务器之间建立连接。
让我们回到我们的Ubuntu 20.04 LTS服务器并编辑wg0.conf文件以添加Peer信息,如下所示(在服务器框中执行命令):

{Hyman@ln-sg-vpn-001:~ }$ sudo systemctl stop wg-quick@wg0
{Hyman@ln-sg-vpn-001:~ }$ sudo vi /etc/wireguard/wg0.conf

追加以下配置:

[Peer]
## Desktop/client VPN public key ##
PublicKey = u2ao8GNNUWAirtjq0eL1UpHVkMep5/EUalbZcdH0imc=
 
## client VPN IP address (note  the /32 subnet) ##
AllowedIPs = 192.168.6.2/32

保存并关闭文件。
接下来再次启动该服务,运行:

{Hyman@ln-sg-vpn-001:~ }$ sudo systemctl start wg-quick@wg0

步骤7验证

就这些了。
到目前为止,必须使用称为WireGuard的对等VPN安全连接Ubuntu服务器和客户端。
让我们测试连接。
在客户端计算机/台式机系统上执行以下ping命令:

{Hyman@ubuntu-20-4-vpn-client:~ }$ ping -c 4 192.168.6.1
{Hyman@ubuntu-20-4-vpn-client:~ }$ sudo wg

步骤8防火墙配置

现在,我们已经为Ubuntu服务器和客户端设置并配置了对等VPN网络。
但是,您可能希望授予所有VPN客户端访问Internet的权限。
为此,我们需要设置IPv4和IPv6防火墙规则,包括NAT和IP转发。