Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Passo a passo para configurar WireGuard VPN no Rocky Linux 9

16 min de leitura  ·  Guia técnico

WireGuard VPN no Rocky Linux 9 é uma solução de tunelamento seguro baseada em criptografia moderna que opera diretamente no kernel do Linux, oferecendo desempenho superior ao OpenVPN com configuração significativamente mais simples. Para configurar o WireGuard do zero no Rocky Linux 9, siga estes passos:

  1. Instalar o WireGuard e as ferramentas necessárias via DNF
  2. Gerar os pares de chaves pública e privada do servidor
  3. Criar o arquivo de configuração /etc/wireguard/wg0.conf
  4. Liberar a porta UDP 51820 no firewalld e ativar IP forwarding
  5. Iniciar e habilitar o serviço wg-quick@wg0 com systemctl
  6. Configurar o peer cliente e verificar o túnel com wg show

Pré-requisitos para configurar WireGuard VPN no Rocky Linux 9

  • Sistema operacional: Rocky Linux 9 (mínimo) com acesso root ou sudo
  • Acesso SSH: conexão ativa ao servidor — veja como acessar em Acessando servidores VPS Linux da AviraHost
  • IP público fixo: o servidor precisa de um endereço IP público acessível pelos clientes
  • Porta UDP 51820 disponível e não bloqueada por firewall externo
  • DNF atualizado: repositórios EPEL habilitados (o WireGuard está disponível no repositório base do Rocky Linux 9)
  • Permissão para modificar sysctl: necessário para ativar IP forwarding
  • Um segundo dispositivo (cliente) com WireGuard instalado para testar o túnel

Instalando o WireGuard no Rocky Linux 9

O pacote wireguard-tools está disponível diretamente nos repositórios base do Rocky Linux 9, sem necessidade de adicionar repositórios externos. O módulo do kernel já está incluído no kernel padrão da distribuição a partir da versão 5.6, o que simplifica bastante a instalação comparado a distribuições mais antigas.

Antes de instalar, atualize os pacotes do sistema para garantir que você está usando as versões mais recentes:

sudo dnf update -y

Em seguida, instale o WireGuard:

sudo dnf install wireguard-tools -y
Output esperado:
Installed:
  wireguard-tools-1.0.20210914-1.el9.x86_64

Complete!

Verifique se o módulo do kernel está carregado:

sudo modprobe wireguard
lsmod | grep wireguard
Output esperado:
wireguard             118784  0
curve25519_x86_64      36864  1 wireguard
libchacha20poly1305    16384  1 wireguard
ip6_udp_tunnel         16384  1 wireguard
udp_tunnel             28672  1 wireguard

Se o módulo aparecer na listagem, o kernel suporta WireGuard nativamente e você pode prosseguir para a geração das chaves.

Gerando chaves criptográficas para o servidor e o cliente

A criptografia assimétrica do WireGuard utiliza o algoritmo Curve25519 para troca de chaves, o que garante sigilo perfeito para frente (PFS) sem a complexidade de uma PKI tradicional. Cada peer — servidor e cliente — precisa de um par de chaves próprio: uma chave privada (que nunca deve ser compartilhada) e uma chave pública (que é trocada entre os peers).

Crie o diretório de configuração e defina permissões restritivas:

sudo mkdir -p /etc/wireguard
sudo chmod 700 /etc/wireguard

Gere o par de chaves do servidor:

wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
Output esperado (exemplo — suas chaves serão diferentes):
# server_public.key conterá algo como:
8J3kLmN9pQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvW=

Proteja a chave privada do servidor:

sudo chmod 600 /etc/wireguard/server_private.key

Agora gere o par de chaves do cliente (pode ser feito no próprio servidor para depois transferir ao cliente):

wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key
sudo chmod 600 /etc/wireguard/client_private.key

Anote os valores de ambas as chaves públicas — você precisará delas nos arquivos de configuração:

sudo cat /etc/wireguard/server_public.key
sudo cat /etc/wireguard/client_public.key

Criando o arquivo de configuração do servidor WireGuard

O arquivo wg0.conf define a interface VPN do servidor, incluindo o endereço IP interno do túnel, a porta de escuta e os peers autorizados. O endereço 10.0.0.1/24 é uma escolha comum para a interface do servidor dentro da rede privada do túnel.

Crie o arquivo de configuração:

sudo nano /etc/wireguard/wg0.conf

Insira o seguinte conteúdo, substituindo os valores das chaves pelos gerados anteriormente:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = COLE_AQUI_A_CHAVE_PRIVADA_DO_SERVIDOR

# Habilita NAT para que os clientes acessem a internet pelo servidor
PostUp = firewall-cmd --zone=public --add-masquerade
PostDown = firewall-cmd --zone=public --remove-masquerade

[Peer]
# Cliente 1
PublicKey = COLE_AQUI_A_CHAVE_PUBLICA_DO_CLIENTE
AllowedIPs = 10.0.0.2/32

Salve o arquivo com Ctrl+O e saia com Ctrl+X. Defina permissões restritivas no arquivo de configuração:

sudo chmod 600 /etc/wireguard/wg0.conf

O campo AllowedIPs = 10.0.0.2/32 no bloco [Peer] instrui o servidor a aceitar pacotes apenas do IP 10.0.0.2 vindos deste peer específico. Para adicionar mais clientes no futuro, basta adicionar novos blocos [Peer] com chaves públicas e IPs diferentes (10.0.0.3/32, 10.0.0.4/32, etc.).

Configurando o firewalld e o IP forwarding no Rocky Linux 9

O roteamento de pacotes entre a interface VPN e a internet requer que o kernel encaminhe pacotes entre interfaces de rede — funcionalidade conhecida como IP forwarding. Sem ela, os clientes conseguem se conectar ao servidor, mas não conseguem acessar recursos além do próprio servidor.

Ative o IP forwarding de forma permanente editando o sysctl:

sudo nano /etc/sysctl.d/99-wireguard.conf

Adicione as seguintes linhas:

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

Aplique as configurações imediatamente:

sudo sysctl --system
Output esperado (trecho relevante):
* Applying /etc/sysctl.d/99-wireguard.conf ...
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

Agora libere a porta UDP 51820 no firewalld:

sudo firewall-cmd --permanent --add-port=51820/udp
sudo firewall-cmd --reload
Output esperado:
success
success

Verifique se a porta foi adicionada corretamente:

sudo firewall-cmd --list-ports
Output esperado:
51820/udp

O masquerade (NAT) já está sendo gerenciado pelos comandos PostUp e PostDown no arquivo wg0.conf, que ativam e desativam o masquerade automaticamente quando a interface sobe ou desce.

Iniciando o serviço WireGuard e verificando o túnel

Com a configuração do servidor concluída, o próximo passo é iniciar a interface VPN usando o wg-quick, que é o utilitário responsável por ler o arquivo wg0.conf e configurar a interface de rede automaticamente, incluindo rotas e regras de firewall definidas nos campos PostUp/PostDown.

Inicie a interface WireGuard:

sudo wg-quick up wg0
Output esperado:
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] firewall-cmd --zone=public --add-masquerade

Habilite o serviço para iniciar automaticamente após reboot:

sudo systemctl enable wg-quick@wg0
Output esperado:
Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /usr/lib/systemd/system/[email protected].

Verifique o status da interface:

sudo wg show
Output esperado:
interface: wg0
  public key: 8J3kLmN9pQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvW=
  private key: (hidden)
  listening port: 51820

peer: CHAVE_PUBLICA_DO_CLIENTE
  allowed ips: 10.0.0.2/32

Enquanto nenhum cliente tiver se conectado, o campo latest handshake não aparecerá. Ele surgirá após o primeiro handshake bem-sucedido com um peer.

Configurando o cliente WireGuard para conectar ao servidor

A configuração do peer cliente segue a mesma estrutura do servidor, mas com os papéis invertidos: a chave privada usada é a do cliente, e o bloco [Peer] aponta para o servidor. O campo Endpoint deve conter o IP público do servidor Rocky Linux 9 e a porta 51820.

No dispositivo cliente (Linux, Windows, macOS ou Android), crie o arquivo de configuração:

[Interface]
Address = 10.0.0.2/24
PrivateKey = COLE_AQUI_A_CHAVE_PRIVADA_DO_CLIENTE
DNS = 1.1.1.1

[Peer]
PublicKey = COLE_AQUI_A_CHAVE_PUBLICA_DO_SERVIDOR
Endpoint = IP_PUBLICO_DO_SERVIDOR:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

O campo AllowedIPs = 0.0.0.0/0, ::/0 redireciona todo o tráfego IPv4 e IPv6 pelo túnel VPN — útil para uso como VPN de privacidade. Se quiser apenas acessar recursos da rede interna do servidor, substitua por 10.0.0.0/24.

O PersistentKeepalive = 25 envia um pacote keepalive a cada 25 segundos, mantendo o túnel ativo mesmo atrás de NAT.

No cliente Linux, inicie a conexão com:

sudo wg-quick up wg0

Após alguns segundos, verifique o handshake no servidor:

sudo wg show
Output esperado (com cliente conectado):
peer: CHAVE_PUBLICA_DO_CLIENTE
  endpoint: IP_DO_CLIENTE:PORTA_EFEMERA
  allowed ips: 10.0.0.2/32
  latest handshake: 5 seconds ago
  transfer: 1.23 KiB received, 648 B sent

Se o campo latest handshake mostrar um tempo recente, o túnel está funcionando corretamente. Você pode testar a conectividade com um ping:

ping 10.0.0.1

Problemas comuns e como resolver

Sintoma: wg-quick up wg0 falha com "RTNETLINK answers: Operation not supported"

Causa: O módulo do kernel WireGuard não está carregado ou o kernel em uso é muito antigo para suportá-lo nativamente.
Solução: Execute sudo modprobe wireguard e verifique a saída. Se retornar erro, confirme a versão do kernel com uname -r — o Rocky Linux 9 usa kernel 5.14+, que inclui WireGuard nativamente. Se o módulo não carregar, reinstale o kernel padrão com sudo dnf reinstall kernel e reinicie o servidor.

Sintoma: Handshake nunca ocorre — cliente fica aguardando conexão indefinidamente

Causa: A porta UDP 51820 está bloqueada no firewall do servidor ou o IP público/porta no campo Endpoint do cliente está incorreto.
Solução: Verifique se a porta está liberada com sudo firewall-cmd --list-ports. Confirme o IP público do servidor com curl ifconfig.me. Teste a conectividade UDP externamente com nc -u IP_DO_SERVIDOR 51820 a partir do cliente. Se houver um firewall externo (painel de controle do provedor), libere a porta UDP 51820 também nele.

Sintoma: Clientes conectam ao túnel mas não conseguem acessar a internet

Causa: IP forwarding está desativado ou o masquerade (NAT) não foi configurado corretamente.
Solução: Verifique o IP forwarding com sysctl net.ipv4.ip_forward — deve retornar 1. Confirme que o masquerade está ativo com sudo firewall-cmd --query-masquerade. Se retornar no, ative manualmente com sudo firewall-cmd --zone=public --add-masquerade --permanent && sudo firewall-cmd --reload. Reinicie a interface com sudo wg-quick down wg0 && sudo wg-quick up wg0 para que os comandos PostUp sejam reexecutados.

Sintoma: Serviço wg-quick@wg0 não inicia após reboot

Causa: O serviço não foi habilitado no systemd ou há um erro de sintaxe no arquivo wg0.conf.
Solução: Verifique se o serviço está habilitado com sudo systemctl is-enabled wg-quick@wg0. Se retornar disabled, execute sudo systemctl enable wg-quick@wg0. Para verificar erros de configuração, rode sudo wg-quick up wg0 manualmente e observe a saída. Erros de sintaxe no wg0.conf aparecem como mensagens de erro explícitas.

Sintoma: Erro "resolvconf: command not found" ao executar wg-quick

Causa: O campo DNS no arquivo de configuração requer o utilitário resolvconf, que não está instalado por padrão no Rocky Linux 9.
Solução: Instale o pacote com sudo dnf install openresolv -y ou remova temporariamente o campo DNS do arquivo de configuração se não precisar de resolução DNS pelo túnel. Após instalar o openresolv, reinicie a interface.

Perguntas frequentes sobre WireGuard VPN no Rocky Linux 9

O WireGuard é mais rápido que o OpenVPN?

Sim, o WireGuard utiliza um código-base muito menor e criptografia moderna (ChaCha20, Curve25519), o que resulta em menor latência e maior throughput em comparação ao OpenVPN. Ele opera diretamente no kernel do Linux, eliminando a sobrecarga de processos em espaço de usuário. Isso torna o WireGuard especialmente vantajoso em conexões com alta taxa de transferência ou em dispositivos com recursos limitados de CPU.

Preciso abrir alguma porta no firewall para o WireGuard funcionar?

Sim. O WireGuard usa UDP por padrão, geralmente na porta 51820. Você precisa liberar essa porta no firewalld ou iptables do servidor para que os peers consigam se conectar. Sem essa liberação, o handshake não ocorre e o túnel não é estabelecido. Lembre-se também de verificar se há firewalls externos no painel do seu provedor de VPS que possam estar bloqueando a porta.

Como verificar se o túnel WireGuard está ativo no Rocky Linux 9?

Execute o comando wg show como root. Ele exibe os peers conectados, o endpoint, a última vez que houve handshake e os bytes transferidos. Se o campo latest handshake mostrar um tempo recente (segundos ou poucos minutos atrás), o túnel está funcionando corretamente. Você também pode usar ip addr show wg0 para confirmar que a interface está ativa com o IP configurado.

O WireGuard mantém a conexão após reinicialização do servidor?

Apenas se você habilitar o serviço com systemctl enable wg-quick@wg0. Sem isso, a interface VPN não sobe automaticamente após reboot. O arquivo de configuração em /etc/wireguard/wg0.conf é lido pelo wg-quick na inicialização do serviço. Verifique o status com systemctl status wg-quick@wg0 após um reboot para confirmar que o serviço iniciou corretamente.

É possível usar o WireGuard para rotear todo o tráfego do cliente pela VPN?

Sim. No arquivo de configuração do peer cliente, defina AllowedIPs = 0.0.0.0/0, ::/0 para redirecionar todo o tráfego IPv4 e IPv6 pelo túnel. No servidor, ative o IP forwarding com net.ipv4.ip_forward = 1 no sysctl e configure NAT com masquerade no firewalld. Sem o masquerade ativo no servidor, os pacotes dos clientes chegarão à internet com o IP interno do túnel (10.0.0.x), que não é roteável publicamente, e as respostas não retornarão ao cliente.

Conclusão

Configurar o WireGuard VPN no Rocky Linux 9 é um processo direto que resulta em uma solução de tunelamento segura, eficiente e de fácil manutenção. Para garantir que sua instalação esteja funcionando corretamente e de forma segura, mantenha estes pontos em mente:

  • Proteja as chaves privadas: mantenha permissão 600 nos arquivos server_private.key e wg0.conf — uma chave privada exposta compromete toda a segurança do túnel
  • Habilite o serviço no systemd: execute systemctl enable wg-quick@wg0 para garantir que o túnel suba automaticamente após qualquer reinicialização do servidor
  • Monitore os handshakes regularmente: use wg show periodicamente para verificar se os peers estão ativos e se há transferência de dados — um handshake parado por mais de 3 minutos pode indicar problema de conectividade

Para aprofundar seus conhecimentos em otimização do ambiente Linux onde o WireGuard está rodando, consulte também as Dicas de Otimização de Servidores Linux da AviraHost.

Leia também

Precisa de ajuda com WireGuard VPN no seu servidor?

Configurar e manter uma VPN segura exige um servidor com recursos adequados e suporte técnico confiável. Os planos de VPS da AviraHost oferecem Rocky Linux 9 pré-instalado, acesso root completo e suporte especializado para que você possa focar na configuração sem se preocupar com a infraestrutura.

Conheça os planos de VPS da AviraHost

  • 0 Os usuários acharam isso útil
  • WireGuard, VPN, Rocky Linux, AviraHost, segurança, redes, servidor
Esta resposta foi útil?

Artigos Relacionados

Guia Completo: Como escolher o melhor plano de hospedagem para o seu site

Escolher o plano de hospedagem ideal para o seu site é fundamental para garantir seu bom...

Lista Prática: 5 Vantagens de ter SSL gratuito no seu site

Ter um certificado SSL no seu site não é apenas uma questão de segurança, mas também uma...

Comparativo: Hospedagem de sites vs. VPS: qual é a melhor opção?

Quando se trata de escolher entre hospedagem compartilhada ou VPS, as opções variam de acordo...

Dicas de Otimização de Servidores Linux

Dicas de Otimização de Servidores Linux Servidores Linux são amplamente utilizados por sua...

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online...