WireGuard – Um Túnel VPN Rápido, Moderno e Seguro para Linux

WireGuard é uma implementação moderna, segura, multiplataforma e de propósito geral de VPN que utiliza criptografia de ponta. Seu objetivo é ser rápido, mais simples, mais enxuto e mais funcional do que IPsec e pretende ser mais eficiente do que OpenVPN.

É projetado para ser utilizado em várias circunstâncias e pode ser implantado em interfaces embarcadas, roteadores de backbone totalmente carregados e supercomputadores; e roda nos sistemas operacionais Linux, Windows, macOS, BSD, iOS e Android.

Leitura Recomendada: 13 Melhores Serviços de VPN com Assinatura Vitalícia

Apresenta uma interface extremamente básica, porém poderosa, que visa ser simples, tão fácil de configurar e implantar quanto o SSH. Suas principais características incluem uma interface de rede simples, roteamento de chaves criptográficas, roaming integrado e suporte a contêineres.

Observe que, no momento da redação, está em intenso desenvolvimento: algumas de suas partes estão caminhando para um lançamento estável 1.0, enquanto outras já estão lá (funcionando bem).

Neste artigo, você aprenderá como instalar e configurar o WireGuard no Linux para criar um túnel VPN entre dois hosts Linux.

Ambiente de Teste

Para este guia, nossa configuração (nome do host e IP público) é a seguinte:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

Como Instalar o WireGuard em Distribuições Linux

Faça login em ambos os nós e instale o WireGuard usando o comando apropriado para suas distribuições Linux conforme abaixo.

Instalar o WireGuard no RHEL 8

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
$ sudo yum copr enable jdoss/wireguard
$ sudo yum install wireguard-dkms wireguard-tools

Instalar o WireGuard no CentOS 8

$ sudo yum install epel-release
$ sudo yum config-manager --set-enabled PowerTools
$ sudo yum copr enable jdoss/wireguard
$ sudo yum install wireguard-dkms wireguard-tools

Instalar o WireGuard no RHEL/CentOS 7

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ sudo yum install wireguard-dkms wireguard-tools

Instalar o WireGuard no Fedora

$ sudo dnf install wireguard-tools

Instalar o WireGuard no Debian

# echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
# printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
# apt update
# apt install wireguard

Instalar o WireGuard no Ubuntu

$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard

Instalar o WireGuard no OpenSUSE

$ sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
$ sudo zypper install wireguard-kmp-default wireguard-tools

Configurando um Túnel VPN WireGuard Entre Dois Hosts Linux

Quando a instalação do wireguard estiver completa em ambos os nós, você pode reiniciar seus nós ou adicionar o módulo wireguard do kernel Linux usando o seguinte comando em ambos os nós.

$ sudo modprobe wireguard
OR
# modprobe wireguard

Em seguida, gere chaves públicas e privadas codificadas em base64 usando o utilitário wg em ambos os nós conforme mostrado.

---------- On Node 1 ---------- 
$ umask 077
$ wg genkey >private_appserver1

---------- On Node 2 ----------
$ umask 077
$ wg genkey >private_dbserver1
$ wg pubkey < private_dbserver1
Generate Keys on Both Nodes

Em seguida, você precisa criar uma interface de rede (por exemplo, wg0) para o wireguard nos pares conforme mostrado abaixo. Em seguida, atribua endereços IP à nova interface de rede criada (para este guia, usaremos a rede 192.168.10.0/24).

---------- On Node 1 ---------- 
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.1/24 dev wg0

---------- On Node 2 ----------
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.2/24 dev wg0

Para visualizar as interfaces de rede conectadas nos pares e seus endereços IP, use o seguinte comando IP.

$ ip ad
View Network Interfaces with IP Addresses

Em seguida, atribua a chave privada de cada par à interface de rede wg0 e ative a interface conforme mostrado.

---------- On Node 1 ---------- 
$ sudo wg set wg0 private-key ./private_appserver1
$ sudo ip link set wg0 up

---------- On Node 2 ----------
$ sudo wg set wg0 private-key ./private_dbserver1
$ sudo ip link set wg0 up

Agora que ambos os links estão ativos, cada um com chaves privadas associadas a eles, execute o utilitário wg sem argumentos para recuperar a configuração das interfaces WireGuard nos pares. Em seguida, crie seu túnel VPN WireGuard da seguinte forma.

O par (chave pública), allowed-ips (rede/máscara de sub-rede) e ponto de extremidade (ip público:porta) são do par oposto.

----------  On Node1 (Use the IPs and Public Key of Node 2) ---------- 
$ sudo wg
$ sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  On Node2 (Use the IPs and Public Key of Node 1) ----------
$ sudo wg
$ sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930
Create Wireguard VPN Tunnel Between Linux Machines

Testando o Túnel VPN WireGuard Entre Sistemas Linux

Assim que o túnel VPN WireGuard for criado, faça ping no par oposto usando o endereço da interface de rede WireGuard. Em seguida, execute o utilitário wg mais uma vez para confirmar um aperto de mão entre os pares, conforme mostrado.

---------- On Node 1 ----------
$ ping 192.168.10.2
$ sudo wg

---------- On Node 2 ----------
$ ping 192.168.10.1
$ sudo wg
Test Wireguard VPN Tunnel Between Linux Machines

É isso por enquanto! O WireGuard é uma solução VPN moderna, segura, simples, porém poderosa e fácil de configurar para o futuro. Está passando por um intenso desenvolvimento, portanto, é um trabalho em andamento. Você pode obter mais informações, especialmente sobre seu funcionamento interno e outras opções de configuração, na página inicial do WireGuard.

Source:
https://www.tecmint.com/wireguard-secure-vpn-tunnel-for-linux/