Como Configurar e Conectar o Servidor VPN WireGuard no Ubuntu 20.04
WireGuard é uma VPN moderna e de alto desempenho, projetada para criar conexões seguras e criptografadas entre servidores e clientes. Neste tutorial, você vai aprender a instalar o servidor WireGuard no Ubuntu 20.04, gerar pares de chaves para autenticação segura, configurar o firewall e preparar os clientes para se conectarem à VPN. Com este passo a passo detalhado, você poderá montar uma rede privada protegida, garantindo a segurança dos dados e facilitando o gerenciamento de conexões remotas de forma prática e confiável.
Instalação do WireGuard
Instale o pacote WireGuard nos computadores servidor e cliente usando este comando:
Configuração do sistema
Primeiro, você precisa permitir o tráfego UDP de entrada em alguma porta para a conexão VPN.
Permitir o redirecionamento de pacotes de rede no nível do kernel.
Descomente a seguinte linha.
Aplique as alterações.
Criação de pares de chaves públicas e privadas
Use esse comando para gerar chaves e tornar a chave privada acessível somente ao usuário root por motivos de segurança.
sudo chmod 600 /etc/wireguard/server_private.key
Execute a mesma ação no computador do cliente para as chaves client_private.key e client_public.key.
Para ver os valores das chaves, use o comando "cat", por exemplo:
cat /etc/wireguard/server_public.key
Configuração do servidor WireGuard
Crie o arquivo de configuração do WireGuard.
Preencha-o com as seguintes linhas:
[Interface]
PrivateKey = oCH7Z0g+ieQ99KkkR1E5EO22Evs5q75F+ES4O4Oc93E= # The server_private.key value.
Address = 10.5.5.1/24 # Internal IP address of the VPN server.
ListenPort = 61951 # Previously, we opened this port to listen for incoming connections in the firewall.
# Change "enp0s5" to the name of your network interface in the following two settings. This commands configures iptables for WireGuard.
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s5 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s5 -j MASQUERADE
[Peer]
PublicKey = gsgfB29uYjpuFTCjC1+vHr9M7++MHJcG6Eg4rtuTu34= # client_public.key value.
AllowedIPs = 10.5.5.2/32 # Internal IP address of the VPN client.
Salve e feche esse arquivo. Para iniciar o servidor VPN do WireGuard, digite o comando:
Configure a execução automática da interface após a reinicialização do sistema.
Configuração do cliente WireGuard
Você também precisa instalar o "resolvconf" no cliente.
Agora, crie o arquivo de configuração do WireGuard na máquina do cliente.
Preencha-o com as seguintes linhas:
[Interface]
PrivateKey = eLI6PoQf3xhLHu+wlIIME5ullpxxp8U+sYMKHGcv2VI= # The client_private.key value.
Address = 10.5.5.2/24 # IP address of the client's wg0 interface.
DNS = 8.8.8.8
[Peer]
PublicKey = tsGQ8spwOQhpJb4BbhZtunLZEJCcPxUBIaQUpniQ+z4= # The server_public.key value.
AllowedIPs = 0.0.0.0/0 # Traffic for these addresses will be routed through the VPN tunnel. In this example, all addresses are selected.
Endpoint = 82.213.236.27:61951 # Public IP address of our VPN server and port number (ListenPort in the server configuration).
PersistentKeepalive = 25
Salve e feche-o.
Use este comando para estabelecer a conexão VPN:
Para visualizar as informações da conexão, use este comando:
Saída:
public key: gsgfB29uYjpuFTCjC1+vHr9M7++MHJcG6Eg4rtuTu34=
private key: (hidden)
listening port: 58208
endpoint: 82.213.236.27:61951
allowed ips: 0.0.0.0/0
...
FAQ
- Preciso abrir uma porta específica no firewall para o WireGuard?
Sim, você deve permitir o tráfego UDP na porta definida na configuração do servidor (por exemplo, 61951). - Como gerar as chaves pública e privada para o servidor e clientes?
Use o comando wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key no servidor e o equivalente no cliente. - Posso adicionar múltiplos clientes ao WireGuard?
Sim, basta criar uma seção [Peer] no arquivo de configuração do servidor para cada cliente. - Como garantir que o WireGuard inicie automaticamente após reiniciar o servidor?
Execute sudo systemctl enable wg-quick@wg0 no servidor. - É possível usar DNS personalizado no cliente?
Sim, configure o parâmetro DNS no arquivo de configuração do cliente.
Conclusão
Com este tutorial, você pode instalar e configurar o servidor e clientes WireGuard no Ubuntu 20.04, garantindo conexões VPN seguras e confiáveis. Seguindo as boas práticas, como abrir apenas a porta necessária, gerar corretamente os pares de chaves e usar AllowedIPs adequadamente, você mantém a rede protegida e eficiente. A configuração automática de inicialização do WireGuard garante que a VPN esteja sempre ativa, permitindo o gerenciamento remoto seguro de servidores e a conexão de múltiplos clientes de forma confiável.