Guia de Configuração de Obfuscação XOR para o Protocolo OpenVPN em um Servidor SoftEther VPN
SoftEther é uma solução de VPN versátil que oferece suporte a vários protocolos, incluindo OpenVPN, WireGuard, L2TP/IPsec, SSTP e muito mais. Neste guia, vamos nos concentrar em configurar o OpenVPN com obfuscação XOR em um servidor SoftEther VPN, usando a ferramenta vpncmd
, que atualmente é a única forma de controlar as configurações específicas de XOR.
Nota: Este guia presume que você já tenha um servidor SoftEther VPN funcional em modo autônomo (com pelo menos um Virtual Hub e um usuário) e que esteja familiarizado com operações básicas de linha de comando no Linux.
O que é obfuscação XOR?
A obfuscação XOR aplica uma operação bit a bit XOR aos pacotes de rede usando uma máscara ou chave pré-definida. Embora isso não melhore a segurança da mesma forma que a criptografia tradicional, ajuda a esconder os padrões característicos do tráfego OpenVPN frente a sistemas de DPI. Se a sua rede local ou seu provedor de internet bloqueia ou limita ativamente conexões VPN padrão, a obfuscação XOR pode ajudar a contornar essas restrições.
Em outras palavras, a obfuscação XOR funciona como um disfarce simples para seus dados. Semelhante a um código básico que reorganiza partes de uma mensagem, ela altera os dados de maneira reversível usando uma chave fixa. Esse processo não protege os dados como uma criptografia robusta faria, mas oculta os padrões específicos que os sistemas de monitoramento procuram, fazendo com que o tráfego pareça menos um VPN padrão.
Para usar obfuscação XOR com OpenVPN, tanto o servidor quanto o cliente OpenVPN devem estar configurados (e em alguns casos, aplicados patches) para oferecer suporte ao recurso. No macOS, por exemplo, pode-se usar o Tunnelblick, pois ele oferece suporte nativo à obfuscação XOR.
Passo 1: Gerar uma Máscara de Obfuscação
A máscara de obfuscação XOR (às vezes chamada de chave ou senha) é uma string usada para realizar a operação XOR bit a bit em seus pacotes VPN. Ela pode ser uma string aleatória ou até mesmo baseada em palavras, mas para melhor disfarce, considere usar uma string longa e complexa. Você pode usar qualquer gerador de tokens para criar uma chave aleatória extensa.
Importante: A máscara de obfuscação XOR deve corresponder tanto no servidor SoftEther VPN quanto em qualquer cliente OpenVPN que se conecte usando a obfuscação XOR.
Passo 2: Habilitar e Configurar as Definições de XOR no OpenVPN do SoftEther
Antes de configurar a obfuscação XOR para o OpenVPN, certifique-se de ter direitos de administrador no servidor VPN. Primeiro, inicie a ferramenta vpncmd
, escolha a opção #1 e efetue login como Administrador:
./vpncmd
Depois de conectado, use ProtoOptionsSet
para configurar os parâmetros do protocolo OpenVPN. Abaixo está um conjunto de comandos para ativar a obfuscação XOR, definir a máscara de obfuscação e ajustar as configurações básicas do OpenVPN. Execute cada comando individualmente:
ProtoOptionsSet openvpn /NAME=Enabled /VALUE=true
ProtoOptionsSet openvpn /NAME=Obfuscation /VALUE=true
# Substitua 'YourObfuscationMask' pela string aleatória gerada
ProtoOptionsSet openvpn /NAME=ObfuscationMask /VALUE="YourObfuscationMask"
# Verifique se seu servidor tem algum listener TCP que possa ser usado
ListenerList
# Se a lista estiver vazia, crie um listener TCP em uma porta escolhida (ex.: 443)
ListenerCreate 443
# Ou se já existir, certifique-se de que esteja habilitado e em "Listening":
ListenerEnable 443
Passo 3: Criar uma Configuração de Cliente OpenVPN com Obfuscação XOR
Agora é hora de criar um arquivo de configuração do OpenVPN para seu aplicativo cliente. Abaixo está um modelo de configuração de cliente OpenVPN. Copie-o para o ambiente do seu cliente (por exemplo, como client.ovpn
) e ajuste conforme necessário.
Importante: verifique se o seu software cliente (por exemplo, Tunnelblick) oferece suporte à diretiva scramble obfuscate
e, no geral, à obfuscação XOR. Abaixo estão alguns exemplos de clientes OpenVPN compatíveis com XOR:
Um exemplo de configuração de cliente OpenVPN que utiliza obfuscação XOR para se conectar ao seu servidor SoftEther pode ser o seguinte:
dev tun
proto tcp
remote 111.112.113.114 443
cipher AES-256-GCM
auth SHA384
nobind
client
verb 3
auth-user-pass
# Linha crucial que ativa a obfuscação XOR no lado do cliente.
# A máscara deve corresponder àquela configurada no servidor SoftEther
# via o comando ProtoOptionsSet.
scramble obfuscate 1e8aee72s63f49fjf910skj14d3d0defd40f91y2ehdkfa04cb1
<ca>
-----BEGIN CERTIFICATE-----
EludGVybmV0IFNlY3VyaXR5IFJlc2Vh...........
CgdNbOhdjsnvzqvHu7Ur/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
</ca>
Explicação das Linhas Principais:
Importante: certifique-se de que a sua configuração VPN corresponda exatamente às configurações do servidor. Se tiver dúvidas, você pode executar o comando a seguir para gerar uma configuração OpenVPN padrão (que você pode então editar para incluir sua linha scramble obfuscate
):
OpenVpnMakeConfig
Você pode inserir sua linha scramble obfuscate
no arquivo gerado para ativar a obfuscação XOR.
Tudo pronto!
Ao ativar a obfuscação XOR no seu servidor SoftEther VPN e configurar a diretiva scramble obfuscate
no cliente OpenVPN, você consegue camuflar o tráfego OpenVPN. Isso pode ajudar a contornar bloqueios ou limitações baseadas em DPI. Lembre-se de que a obfuscação XOR não substitui a criptografia robusta; ela apenas oculta a assinatura característica dos pacotes OpenVPN.
Se você encontrar problemas de conexão, verifique se:
Quando todos os parâmetros estiverem configurados corretamente, seu túnel OpenVPN deverá se conectar com sucesso usando obfuscação XOR, ajudando você a contornar mecanismos básicos de filtragem de tráfego.