Guia de Configuração do WireGuard em um Servidor SoftEther VPN

SoftEther é uma solução de VPN sofisticada e multiprotocolo que oferece suporte a uma ampla variedade de protocolos VPN, incluindo WireGuard, OpenVPN, L2TP/IPsec, SSTP e outros. Neste guia, focamos em configurar o WireGuard em um Servidor SoftEther VPN usando a ferramenta vpncmd – atualmente o único método suportado para configurar o WireGuard no SoftEther.

Observação: Este guia é destinado a usuários avançados que estejam familiarizados com interfaces de linha de comando e configuração manual de servidores.

Pré-requisitos

Antes de começar, certifique-se de que:

  • Você possui um Servidor SoftEther VPN em execução e atualizado, instalado em uma máquina Linux. Este guia utiliza a SoftEther Version 5.02 Build 5185 no Ubuntu.
  • O servidor está operando em modo standalone (isto é, não é um controlador de cluster nem um membro de cluster), pois conexões WireGuard só podem ser estabelecidas em um servidor standalone.
  • Você tem acesso administrativo ao servidor SoftEther e possui a ferramenta vpncmd instalada localmente ou em modo remoto.
  • Você tem um hub virtual configurado que será usado para a conexão dos clientes WireGuard.

Passo 1: Configurar a Porta UDP para WireGuard

Certifique-se de que você tem privilégios de administrador no servidor VPN antes de configurar a conexão WireGuard. Inicie a ferramenta vpncmd, selecione a opção #1 e faça login como Administrador:

./vpncmd

Para verificar se seu servidor SoftEther está escutando em uma porta UDP, execute o seguinte comando:

PortsUDPGet

Se nenhuma porta UDP estiver ativa, adicione uma usando o comando abaixo. Você pode definir qualquer número de porta, desde que não entre em conflito com outras portas em seu servidor Linux:

PortsUDPSet 51820

Observação: Você pode especificar várias portas simultaneamente separando-as por vírgulas. Verifique se essas portas não estão bloqueadas pelo firewall ou iptables do seu servidor.

Passo 2: Definir o Gateway Padrão e Sub-rede para WireGuard

Como o WireGuard não oferece suporte a DHCP (que depende de mensagens de broadcast, não funcionais em um túnel VPN ponto a ponto), cada peer deve ter um endereço IP configurado manualmente (estático) para garantir a criptografia e o roteamento adequados. Acesse seu hub virtual e configure o gateway padrão e a máscara de sub-rede que seus clientes WireGuard com IP estático irão utilizar:

Hub myhub
SetStaticNetwork /GATEWAY=192.168.1.1 /SUBNET=255.255.255.0

Substitua 192.168.1.1 e 255.255.255.0 pelo gateway IP e máscara de sub-rede apropriados — use os mesmos parâmetros que o servidor DHCP do hub fornece aos clientes conectados. Verifique se o hub foi configurado corretamente, executando o comando:

OptionsGet myhub

Passo 3: Habilitar o Protocolo WireGuard

Embora o suporte ao WireGuard geralmente venha habilitado por padrão, confirme sua ativação com o seguinte comando:

ProtoOptionsSet wireguard /NAME=enabled /VALUE=true

Passo 4: Gerar e Atribuir Chaves de Usuário

O WireGuard usa pares de chaves X25519 para comunicação segura. Você pode gerá-las usando a ferramenta vpncmd ou uma ferramenta externa. No exemplo abaixo, as chaves são geradas via vpncmd.

Saia do vpncmd e reabra-o, selecionando a opção #3 para entrar no modo Tools. Em seguida, execute o comando abaixo para gerar um par de chaves:

GenX25519

A ferramenta gerará um par de chaves – uma Private Key e uma Public Key. Copie e armazene-as com segurança. Se você tiver vários hubs ou usuários que necessitam de conexão WireGuard, gere pares de chaves separados para cada um.

Depois de gerar as chaves, faça login no vpncmd novamente como administrador e atribua a Public X25519 key de cada usuário ao hub apropriado:

WgkAdd "WFPFO/s8UXD6HNH+2P2UjfbkUP8BFITa7TXKculvDUk=" /HUB=myhub /USER=myuser

Substitua WFPFO/s…ulvDUk=, myhub e myuser pela sua chave pública, nome do hub e nome de usuário correspondentes. Certifique-se de que este usuário já exista no hub especificado.

Agora, verifique se as chaves WireGuard foram adicionadas corretamente com o seguinte comando:

WgkEnum

Passo 5: Criar um Arquivo de Configuração de Cliente WireGuard

A seguir, apresentamos um arquivo de configuração de exemplo. Copie-o para um editor de texto e substitua os marcadores pelos seus valores reais, que explicaremos a seguir:

[Interface]
PrivateKey = WFPFO/s8UXD6HNH+2P2UjfbkUP8BFITa7TXKculvDUk=
Address = 192.168.1.15/32
DNS = 9.9.9.9,149.112.112.112

[Peer]
PublicKey = pbnWflgIl4CUqYkgZKrtQg/jMAyytyS/AufEt4OAq3Y=
PresharedKey = s/8eDb4r6BUtAMZEY8a+VC4Qs4HYzUJVqD8YzSNFzuk=
AllowedIPs = 0.0.0.0/0
Endpoint = 150.151.152.153:51820
PersistentKeepalive = 21

[Interface]

  • PrivateKey: Insira a private key do par de chaves X25519 gerado no Passo 4.
  • Address: Atribua um endereço IP estático no seu hub para este usuário. Certifique-se de que o IP esteja dentro da rede estática e sub-rede definidas no Passo 2. O WireGuard exige que o IP termine com /32 para indicar um único host.
    Observação: Se seu hub virtual for gerenciado por um servidor DHCP, é recomendável reservar um pool de IPs estáticos separado apenas para conexões WireGuard, evitando conflitos de endereço IP.
  • DNS: Especifique os servidores DNS usados pela sua rede. Neste exemplo, são configurados os servidores da Quad9.

[Peer]

  • PublicKey: Insira a public key do seu servidor. Primeiro, obtenha a private key do servidor com o comando:
    ProtoOptionsGet wireguard
    Copie a private key e depois execute, no modo Tools do vpncmd, o comando:
    GetPublicX25519 YourServerPrivateKey
    Substituindo YourServerPrivateKey pela private key real do seu servidor.
  • PresharedKey: Obtenha a preshared key executando:
    ProtoOptionsGet wireguard
  • AllowedIPs: Configurar AllowedIPs = 0.0.0.0/0 direciona todo o tráfego IPv4 pelo túnel VPN, tornando o peer VPN o gateway padrão.
  • Endpoint: Especifique o endereço IP do seu servidor e a porta UDP (definida no Passo 1) em vez de 150.151.152.153:51820.
  • PersistentKeepalive: Definir como 21 faz com que o cliente envie um pacote de keepalive a cada 21 segundos, garantindo que a conexão permaneça ativa, especialmente para peers atrás de NAT ou firewalls.

Definindo a porta UDP, configurando o gateway padrão e a sub-rede, habilitando o protocolo WireGuard, gerando e atribuindo chaves e criando o arquivo de configuração do cliente, você deverá ser capaz de estabelecer uma conexão segura com seu hub virtual SoftEther via WireGuard. Após conectar, verifique se seu tráfego está sendo roteado através do túnel WireGuard para seu servidor SoftEther.

FAQ

SoftEther VPN é um VPN gratuito e de código aberto que oferece suporte a vários protocolos (SSL-VPN, L2TP/IPsec, OpenVPN, SSTP, WireGuard) para conectividade segura e multiplataforma. Seu design eficiente e criptografia robusta proporcionam alto desempenho e acesso remoto confiável para usuários domésticos e empresas.
WireGuard é um protocolo VPN moderno, de alto desempenho e com forte criptografia. O SoftEther permite configurar conexões WireGuard através da ferramenta vpncmd em servidores standalone.
Inicie o vpncmd em modo administrador, verifique as portas UDP com o comando ‘PortsUDPGet’ e defina uma porta (por exemplo, ‘PortsUDPSet 51820’) para habilitar conexões WireGuard.
Porque o WireGuard não oferece suporte a DHCP (que depende de broadcasts), cada IP de cliente deve ser atribuído estaticamente. Usar /32 garante roteamento preciso e seguro.
Use o modo Tools do vpncmd para executar o comando ‘GenX25519’ e gerar pares de chaves X25519; em seguida, atribua a public key ao hub com o comando ‘WgkAdd’.
Primeiro, obtenha a private key do servidor com ‘ProtoOptionsGet wireguard’, depois gere a public key correspondente com o comando ‘GetPublicX25519’ no modo Tools do vpncmd.
Verifique se a porta UDP está configurada corretamente, se os endereços IP estáticos correspondem às configurações de rede do hub SoftEther, se as chaves foram geradas/atribuídas corretamente e se o servidor está em modo standalone.
Evitar configurar incorretamente as portas UDP, esquecer-se dos requisitos de rede estática para WireGuard, utilizar pares de chaves incorretos e executar o servidor em modo de cluster em vez de standalone.