Guía de Configuración de la Ofuscación XOR para el Protocolo OpenVPN en un Servidor SoftEther VPN

SoftEther es una solución VPN versátil que admite múltiples protocolos, entre ellos OpenVPN, WireGuard, L2TP/IPsec, SSTP y más. En esta guía, nos centraremos en configurar OpenVPN con ofuscación XOR en un servidor SoftEther VPN, utilizando la herramienta vpncmd, que en la actualidad es la única manera de gestionar los ajustes específicos de XOR.

Nota: Esta guía asume que ya dispone de un servidor SoftEther VPN funcional en modo autónomo (con al menos un Virtual Hub y un usuario) y que está familiarizado con las operaciones básicas de la línea de comandos en Linux.

Descargo de responsabilidad: la ofuscación XOR no reemplaza la cifración proporcionada por OpenVPN. Más bien, disfraza el tráfico de OpenVPN para que sea menos detectable mediante inspección profunda de paquetes (DPI) u otros mecanismos de filtrado de tráfico.

¿Qué es la ofuscación XOR?

La ofuscación XOR aplica una operación bit a bit XOR a los paquetes de red usando una máscara o clave predefinida. Aunque no fortalece la seguridad de la misma forma que un cifrado completo, ayuda a enmascarar los patrones característicos del tráfico OpenVPN ante sistemas de DPI. Si su red local o su proveedor de internet bloquean o limitan activamente conexiones VPN estándar, la ofuscación XOR puede ayudar a sortear estas restricciones.

En otras palabras, la ofuscación XOR funciona como un disfraz sencillo para sus datos. Del mismo modo que un código básico que reordena partes de un mensaje, modifica los datos de manera reversible a través de una clave fija. Este método no protege los datos como lo haría un cifrado robusto, pero oculta los patrones específicos que los sistemas de monitoreo suelen buscar, haciendo que el tráfico parezca menos un tráfico de VPN convencional.

Para utilizar la ofuscación XOR con OpenVPN, tanto el servidor como el cliente OpenVPN deben configurarse (y en ciertos casos, aplicarse parches) para ofrecer compatibilidad con esta función. Por ejemplo, en macOS puede usarse Tunnelblick, ya que admite la ofuscación XOR de manera nativa.

Paso 1: Generar una Máscara de Ofuscación

La máscara de ofuscación XOR (a veces llamada clave o contraseña) es una cadena que se utiliza para ejecutar la operación XOR bit a bit en los paquetes VPN. Puede ser aleatoria o incluso estar basada en palabras, pero para lograr un mejor disfraz, se recomienda usar una cadena larga y compleja. Puede usar cualquier generador de tokens para crear una clave extensa y aleatoria.

  • Ejemplo: 1e8aee72s63f...y2ehdkfa04cb1
  • Mantenga este valor de forma confidencial y evite reutilizarlo en diferentes contextos si la seguridad o la privacidad son fundamentales.

Importante: La máscara de ofuscación XOR debe coincidir tanto en el servidor SoftEther VPN como en el cliente OpenVPN que use esta función.

Paso 2: Habilitar y Configurar los Ajustes XOR de OpenVPN en SoftEther

Antes de configurar la ofuscación XOR para OpenVPN, asegúrese de tener privilegios de administrador en el servidor VPN. Inicie la herramienta vpncmd, seleccione la opción #1 e inicie sesión como Administrador:

./vpncmd

Una vez dentro, use ProtoOptionsSet para ajustar los parámetros del protocolo OpenVPN. A continuación se muestra un conjunto de comandos para habilitar la ofuscación XOR, establecer la máscara de ofuscación y configurar parámetros básicos de OpenVPN. Ejecútelos uno a uno:


ProtoOptionsSet openvpn /NAME=Enabled /VALUE=true
ProtoOptionsSet openvpn /NAME=Obfuscation /VALUE=true

# Sustituya 'YourObfuscationMask' por la cadena aleatoria que generó
ProtoOptionsSet openvpn /NAME=ObfuscationMask /VALUE="YourObfuscationMask"

# Compruebe si su servidor ya cuenta con algún listener TCP para conectar
ListenerList

# Si la lista está vacía, cree un listener TCP en el puerto deseado (p. ej., 443)
ListenerCreate 443

# O si ya existe, asegúrese de que esté habilitado y en estado "Listening":
ListenerEnable 443

Paso 3: Crear una Configuración de Cliente OpenVPN Ofuscada con XOR

Ahora es momento de elaborar un archivo de configuración de OpenVPN para su aplicación cliente. Abajo encontrará un ejemplo de configuración para un cliente OpenVPN. Cópielo en su entorno de cliente (por ejemplo, como client.ovpn) y ajústelo según sus necesidades.

Importante: verifique que su software cliente (por ejemplo, Tunnelblick) sea compatible con la directiva scramble obfuscate y, en general, con la ofuscación XOR. A continuación algunos ejemplos de clientes OpenVPN que admiten XOR:

Un ejemplo de archivo de configuración de cliente OpenVPN que utiliza la ofuscación XOR para conectarse a su servidor SoftEther sería el siguiente:


dev tun
proto tcp
remote 111.112.113.114 443
cipher AES-256-GCM
auth SHA384
nobind
client
verb 3
auth-user-pass

# Esta línea es crucial para habilitar la ofuscación XOR en el lado del cliente.
# La máscara debe coincidir con la que configuró en el servidor SoftEther
# mediante el comando ProtoOptionsSet.
scramble obfuscate 1e8aee72s63f49fjf910skj14d3d0defd40f91y2ehdkfa04cb1
<ca>
-----BEGIN CERTIFICATE-----
EludGVybmV0IFNlY3VyaXR5IFJlc2Vh...........
CgdNbOhdjsnvzqvHu7Ur/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
</ca>

Explicación de líneas clave:

  • dev tun, proto tcp, remote: Directivas estándar de OpenVPN. «remote 111.112.113.114 443» le indica al cliente que se conecte a la IP del servidor SoftEther en el puerto TCP 443 (ejemplo). Reemplace «111.112.113.114» por la IP de su servidor.
  • cipher AES-256-GCM, auth SHA384: Garantiza cifrado y autenticación sólidos. Estos ajustes deben coincidir con los del servidor SoftEther.
  • scramble obfuscate YourObfuscationMask: La línea esencial que activa la ofuscación XOR en el cliente. La máscara debe ser idéntica a la que configuró en SoftEther.
  • <ca> … </ca>: Inserta el certificado CA del servidor para validarlo.

Importante: asegúrese de que la configuración de su VPN coincida de manera precisa con la configuración del servidor. Si tiene dudas, puede ejecutar el siguiente comando para generar una configuración predeterminada de OpenVPN (que luego podrá editar para incluir la directiva scramble obfuscate):

OpenVpnMakeConfig

Inserte su línea scramble obfuscate en el archivo generado para habilitar la ofuscación XOR.

¡Todo listo!

Al habilitar la ofuscación XOR en su servidor SoftEther VPN y añadir la directiva scramble obfuscate en el cliente OpenVPN, usted podrá camuflar su tráfico OpenVPN. Esto puede ayudar a esquivar bloqueos o limitaciones basadas en DPI. Recuerde que la ofuscación XOR no sustituye a un cifrado robusto; únicamente oculta la firma distintiva de los paquetes OpenVPN.

Si encuentra problemas de conectividad, verifique lo siguiente:

  • Que su servidor SoftEther esté configurado en modo autónomo.
  • Que use un cliente OpenVPN con parche o configurado para admitir la ofuscación XOR (por ejemplo, Tunnelblick con parches Scramble).
  • Que la máscara de ofuscación en el cliente coincida exactamente con la ObfuscationMask del servidor.
  • Que su firewall permita el tráfico en los puertos que haya configurado (por ejemplo, TCP 443 u otro puerto TCP designado).

Cuando todos los parámetros estén correctamente configurados, su túnel OpenVPN debería conectarse con éxito usando la ofuscación XOR, lo que le ayudará a esquivar los mecanismos básicos de filtrado de tráfico.

Preguntas frecuentes

Answer Aplica una operación XOR a los paquetes del VPN usando una máscara secreta, ocultando los patrones de OpenVPN ante sistemas de DPI!
Answer ¡No! Solo disfraza el tráfico para eludir la DPI, pero no reemplaza la seguridad que ofrece el cifrado de OpenVPN!
Answer ¡Sí! El cliente debe admitir la opción scramble obfuscate. Tunnelblick en macOS, openvpn-xor en Linux y otras compilaciones similares incluyen esta función!
Answer Use un generador de tokens o cualquier herramienta que cree cadenas aleatorias para producir una máscara larga y única. Debe coincidir en el servidor y en el cliente!
Answer ¡Sí! La ofuscación XOR solo funciona si el ObfuscationMask es idéntico en ambos lados!
Answer Inicie sesión en vpncmd y use el comando ListenerCreate . Si el listener ya existe, use ListenerEnable para habilitarlo!
Answer AES-256-GCM con autenticación SHA384 es habitual. Asegúrese de que las configuraciones cipher y auth coincidan tanto en el servidor como en el cliente!
Answer ¡Sí! XOR disfraza las firmas habituales de OpenVPN, dificultando la detección o el bloqueo mediante DPI!
Answer Entre las aplicaciones cliente de OpenVPN que admiten XOR se encuentran: Tunnelblick (macOS), openvpn-windows-xor (Windows), openvpn-xor (Linux), VPN Client Pro (Android) y Passepartout (iOS)!