O WireGuard é um aplicativo que permite estabelecer uma rede virtual privada (VPN) segura, conhecida por sua simplicidade e facilidade de uso. Ele usa protocolos e algoritmos criptográficos comprovados para proteger os dados. Originalmente projetado para o kernel do Linux, ele pode ser implantado no Windows, macOS, BSD, iOS e Android.
Esta configuração de VPN do WireGuard usa o Ubuntu 20.04.
Instalando o WireGuard Server no Ubuntu Linux
Faça login via SSH no servidor Linux, depois de fazer login, verifique se a máquina está atualizada executando o seguinte comando:
sudo apt-get update && sudo apt-get upgrade
Agora, instale o WireGuard executando o seguinte comando:
sudo apt-get install wireguard
Configuração do encaminhamento de IP
Para que a VPN funcione, precisamos habilitar o encaminhamento de pacotes, só assim poderemos nos conectar por meio do servidor Wireguard. Para isso, precisamos editar o arquivo /etc/sysctl.conf:
sudo nano /etc/sysctl.conf
remova o "#" do comando a seguir:
net.ipv4.ip_forward=1
Depois disso, execute o seguinte comando para aplicar as alterações:
sysctl -p
A seguinte mensagem será exibida:
Geração de chaves públicas e privadas
O WireGuard funciona criptografando a conexão usando um par de chaves criptográficas. O par de chaves é usado passando a chave pública para a outra parte, que pode então criptografar sua mensagem de modo que ela só possa ser descriptografada com a chave privada correspondente. Para proteger a comunicação bidirecional, cada lado deve ter suas próprias chaves públicas e privadas, pois cada par fornece apenas uma comunicação unidirecional.
Antes de gerar o par de chaves, vá para a seção
dwg sudo cd /etc/wireguard
Defina a permissão para esse diretório:
umask 077
Para gerar um par de chaves, digite o seguinte comando:
wg genkey | tee private.key | wg pubkey > public.key
Definindo a configuração do servidor
Para começar a configurar o servidor WireGuard, vá para a pasta /etc/wireguard e crie o arquivo wg0.conf
sudo nano /etc/wireguard/wg0.conf
Adicione as seguintes diretivas ao arquivo de configuração:
[Interface]
PrivateKey = <contents-of-server-privatekey>
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = <contents-of-client-publickey>
AllowedIPs = 10.0.0.2/32
Copie a chave privada que geramos anteriormente e cole-a na PrivateKey.
Da mesma forma, temos que gerar um par de chaves para o cliente, copiar a chave pública do cliente e colá-la em PublicKey.
Para copiar o valor da chave, execute o seguinte comando:
sudo cat /etc/wireguard/public.key
sudo cat /etc/wireguard/private.key
Inicie o WireGuard e faça-o começar na inicialização
Agora estamos prontos para iniciar o servidor. Para iniciar o WireGuard, usamos o wg-quick e especificamos o nome da nova interface:
wg-quick up wg0
Se a configuração estiver perfeita, você verá a seguinte tela,
Para verificar o status do servidor WireGuard, digite:
wg show
Parabéns, iniciamos com sucesso o servidor WireGuard!