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

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

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

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

É 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/