Debian 10设置WireGuard VPN服务器

时间:2020-01-09 10:37:56  来源:igfitidea点击:

如何在Debian 10 Linux服务器上安装和设置WireGuard VPN服务器?
如何将Debian 10配置为WireGuard VPN服务器?

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

Debian 10设置WireGuard VPN服务器的步骤

我们的示例设置包括在运行Debian 10 LTS服务器的云服务器与Debian/Ubuntu/RHEL/SUSE/OpenSUSE/CentOS Linux桌面客户端(或iOS/Android应用)之间的简单对等连接:安装和安装的步骤如下。
在Debian Linux 10上将WireGuard配置为VPN服务器。

步骤1更新系统

运行apt命令/apt-get命令以安装Debian 10安全更新:

{Hyman@mum-vpn:~ }$ sudo apt update
{Hyman@mum-vpn:~ }$ sudo apt upgrade

步骤2启用Debian 10 buster backportsRepo

Wireguard在Debian向后移植的仓库中。
因此,按如下所示启用反向移植:

{Hyman@mum-vpn:~ }$ sudo sh -c "echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list"

`使用cat命令验证仓库:

{Hyman@mum-vpn:~ }$ cat /etc/apt/sources.list.d/buster-backports.list

更新仓库,运行:

{Hyman@mum-vpn:~ }$ sudo apt update
Hit:1 http://mirrors.linode.com/debian buster InRelease
Hit:2 http://mirrors.linode.com/debian-security buster/updates InRelease
Hit:3 http://mirrors.linode.com/debian buster-updates InRelease
Get:4 http://deb.debian.org/debian buster-backports InRelease [46.7 kB]
Get:5 http://deb.debian.org/debian buster-backports/main amd64 Packages [292 kB]
Get:6 http://deb.debian.org/debian buster-backports/main Translation-en [227 kB]
Get:7 http://deb.debian.org/debian buster-backports/contrib amd64 Packages [7,448 B]
Get:8 http://deb.debian.org/debian buster-backports/contrib Translation-en [5,492 B]
Get:9 http://deb.debian.org/debian buster-backports/non-free amd64 Packages [23.3 kB]
Get:10 http://deb.debian.org/debian buster-backports/non-free Translation-en [30.3 kB]
Fetched 632 kB in 2s (287 kB/s)       
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.

搜索WireGuard软件包

运行以下命令:

{Hyman@mum-vpn:~ }$ apt search wireguard
Sorting... Done
Full Text Search... Done
wireguard/buster-backports 1.0.20200319-1~bpo10+1 all
  fast, modern, secure kernel VPN tunnel (metapackage)
 
wireguard-dkms/buster-backports 0.0.20200318-1~bpo10+1 all
  fast, modern, secure kernel VPN tunnel (DKMS version)
 
wireguard-tools/buster-backports 1.0.20200319-1~bpo10+1 amd64
  fast, modern, secure kernel VPN tunnel (userland utilities)

步骤3在Debian 10 LTS上安装WireGuard VPN服务器

现在,我们获得了具有最新安全补丁程序的服务器更新,并且启用了反向破坏。
现在该在Debian 10服务器上设置WireGuard VPN服务器了。
输入:

{Hyman@mum-vpn:~ }$ sudo apt install wireguard

步骤4配置WireGuard服务器

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

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

执行以下命令:

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

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

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

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

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

{Hyman@mum-vpn:~ }$ sudo nano /etc/wireguard/wg0.conf
## OR ##
{Hyman@mum-vpn:~ }$ sudo vim /etc/wireguard/wg0.conf

追加以下配置指令:

## Set Up WireGuard VPN on Debian By Editing/Creating wg0.conf File ##
[Interface]
## My VPN server private IP address ##
Address = 192.168.10.1/24
 
## My VPN server port ##
ListenPort = 51194
 
## VPN server's private key i.e. /etc/wireguard/privatekey ##
PrivateKey = eEvqkSJVw/7cGUEcJXmeHiNFDLBGOz8GpScshecvNHU
 
## Save and update this config file when a new peer (vpn client) added ##
SaveConfig = true

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

步骤5设置UFW防火墙规则

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

{Hyman@mum-vpn:~ }$ sudo ufw allow 51194/udp

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

步骤6启用并启动WireGuard服务

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

{Hyman@mum-vpn:~ }$ sudo systemctl enable wg-quick@wg0

启动服务,执行:

{Hyman@mum-vpn:~ }$ sudo systemctl start wg-quick@wg0

获取服务状态,运行:

{Hyman@mum-vpn:~ }$ sudo systemctl status wg-quick@wg0

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

{Hyman@mum-vpn:~ }$ sudo wg
{Hyman@mum-vpn:~ }$ sudo ip a show wg0

步骤7 Wireguard VPN客户端配置

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

{Hyman@debian-10-vpn-client:~ }$ sudo sh -c "echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list"
{Hyman@debian-10-vpn-client:~ }$ sudo apt update

在Linux桌面上安装Wireguard,运行:

{Hyman@debian-10-vpn-client:~ }$ sudo apt install wireguard

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

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

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

{Hyman@debian-10-vpn-client:~ }$ sudo nano /etc/wireguard/wg0.conf
## OR ##
{Hyman@debian-10-vpn-client:~ }$ sudo vim /etc/wireguard/wg0.conf

追加以下指令:

[Interface]
## This Desktop/client's private key ##
PrivateKey = uJPzgCQ6WNlAUp3s5rabE/EVt1qYh3Ym01sx6oJI0V4
 
## Client ip address ##
Address = 192.168.10.2/24
 
[Peer]
## Debian 10 server public key ##
PublicKey = qdjdqh2pN3DEMDUDRob8K3bp9BZFJbT59fprBrl99zM
 
## set ACL ##
AllowedIPs = 192.168.10.0/24
 
## Your Debian 10 LTS server's public IPv4/IPv6 address and port ##
Endpoint = 172.105.112.120:51194
 
##  Key connection alive ##
PersistentKeepalive = 20

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

{Hyman@debian-10-vpn-client:~ }$ sudo systemctl enable wg-quick@wg0
{Hyman@debian-10-vpn-client:~ }$ sudo systemctl start wg-quick@wg0
{Hyman@debian-10-vpn-client:~ }$ sudo systemctl status wg-quick@wg0

允许桌面客户端和Debian服务器通过VPN连接(对等)

我们需要配置服务器端对等VPN选项,并允许桌面客户端计算机与服务器之间的连接。
让我们回到Debian 10 LTS服务器并编辑wg0.conf文件,以添加Peer信息,如下所示(在服务器上执行`commands'框):

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

追加以下配置:

[Peer]
## Desktop/client VPN public key ##
PublicKey = 2H8vRWKCrddLf8vPwwTLMfZcRhOj10UBdc0j8W7yQAk=
 
## client VPN IP address (note  the /32 subnet) ##
AllowedIPs = 192.168.10.2/32

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

{Hyman@mum-vpn:~ }$ sudo systemctl start wg-quick@wg0

步骤8验证

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

{Hyman@debian-10-vpn-client:~ }$ ping -c 4 192.168.10.1
{Hyman@debian-10-vpn-client:~ }$ sudo wg
## try to ssh into server using our VPN connection ##
{Hyman@debian-10-vpn-client:~ }$ ssh [email protected]

步骤9防火墙配置

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