Pesquisa de site

WireGuard - Um túnel VPN rápido, moderno e seguro para Linux


WireGuard é uma implementação de VPN moderna, segura, multiplataforma e de uso geral que usa criptografia de última geração. Ele pretende ser rápido, mais simples, mais enxuto e mais funcional que o IPsec e pretende ter melhor desempenho que o OpenVPN.

Ele foi projetado para uso em diversas circunstâncias e pode ser implantado em interfaces incorporadas, roteadores de backbone totalmente carregados e supercomputadores; e é executado nos sistemas operacionais Linux, Windows, macOS, BSD, iOS e Android.

Leitura recomendada: 13 melhores serviços VPN com assinatura vitalícia

Apresenta uma interface extremamente básica, porém poderosa, que pretende ser simples, tão fácil de configurar e implantar quanto o SSH. Seus principais recursos incluem uma interface de rede simples, roteamento de chave criptográfica, roaming integrado e suporte a contêineres.

Observe que no momento em que este artigo foi escrito, ele estava em forte desenvolvimento: algumas de suas partes estão trabalhando para uma versão 1.0 estável, 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 de 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 seguinte comando apropriado para suas distribuições Linux, como segue.

Instale 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

Instale 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

Instale 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

Instale o WireGuard no Fedora

sudo dnf install wireguard-tools

Instale 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

Instale o WireGuard no Ubuntu

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

Instale 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 for concluída em ambos os nós, você poderá reinicializar seus nós ou adicionar o módulo wireguard do kernel do 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

Em seguida, você precisa criar uma interface de rede (por exemplo, wg0) para wiregaurd 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 anexadas nos peers e seus endereços IP, use o seguinte comando IP.

ip ad

Em seguida, atribua a chave privada para cada ponto à interface de rede wg0 e abra 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 nenhum argumento para recuperar a configuração das interfaces WireGuard nos pares. Em seguida, crie seu túnel VPN wireguard da seguinte maneira.

O peer (chave pública), ips permitidos (máscara de rede/sub-rede) e endpoint (ip público:porta) são do peer 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

Testando o túnel VPN WireGuard entre sistemas Linux

Depois que o túnel VPN wireguard for criado, execute ping no peer oposto usando o endereço da interface de rede wireguard. Em seguida, execute o utilitário wg mais uma vez para confirmar um handshake 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

Por enquanto é isso! WireGuard é uma solução VPN moderna, segura, simples, porém poderosa e fácil de configurar para o futuro. Está passando por um forte desenvolvimento, portanto, 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.