Configurando Wireguard en un país con restricciones VPN en internet

Estoy teniendo algunos problemas extraños con la configuración de Wireguard en un país donde todo lo relacionado con VPN se bloquea constantemente.

Resumen

Wireguard funciona aleatoriamente después de jugar con los puertos, y luego deja de funcionar sin que cambie ninguna configuración. Ni siquiera puedo lograr que funcione de manera consistente por un tiempo después de cambiar los puertos. Cuando funciona, tengo un apretón de manos en wg show, cuando no funciona, no obtengo ningún apretón de manos.

Configuración

VPS: VPS de Digitalocean
SO: Debian 10 (Buster)
Cortafuegos: UFW
Despliegue: Docker - imagen linuxserver.io - Enlace

Estoy usando principalmente la plantilla predeterminada docker-compose, cambiando el puerto 51820, que seguramente está bloqueado, por puertos aleatorios como 55555 o 12345.

Todos los puertos relevantes están abiertos a través de UFW. Incluso intenté deshabilitar UFW por completo.

La única explicación que tengo es que, mágicamente, los ISP detectan dinámicamente los puertos que activan Wireguard y los bloquean, lo cual no puedo ni imaginar cómo podría hacerse.

Aquí tienes una muestra de mi wg show

interface: wg0
  clave pública: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  clave privada: (oculta)
  puerto de escucha: 51820

 peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  endpoint: XXX.XXX.XXX.XXX:1727
  ips permitidas: 10.13.13.2/32
  transferencia: 148 B recibidos, 92 B enviados

 peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  ips permitidas: 10.13.13.3/32

 peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  ips permitidas: 10.13.13.4/32

Ten en cuenta que el peer al que intenté conectar tiene endpoint, allowed ips y transfer, pero no handshake
Los detalles de la conexión en el peer muestran datos enviados, pero no recibidos.

Hay dos tecnologías VPN que pueden sobrevivir a DPI.

  1. Shadowsocks - https://shadowsocks.org

Shadowsocks es un proyecto de protocolo de cifrado gratuito y de código abierto, ampliamente utilizado en China para sortear la censura en Internet. Fue creado en 2012 por un programador chino llamado “clowwindy”, y se han desarrollado varias implementaciones del protocolo desde entonces.

  1. Outline - https://getoutline.org

Outline VPN es una herramienta gratuita y de código abierto que despliega servidores Shadowsocks en múltiples proveedores de servicios en la nube. El conjunto de software también incluye software cliente para varias plataformas. Outline fue desarrollado por Jigsaw, una incubadora tecnológica creada por Google.

Solo para aclarar lo que otros solo insinuaron: WireGuard es muy fácil de bloquear, tiene una firma muy obvia y la ocultación no forma parte de su diseño. Si usas WireGuard, tus operadores de red pueden detectarlo. ¿Quieres prueba? Abre wireshark y revisa una conexión: ‘WireGuard’ aparece claramente, sin importar en qué puerto lo pongas.

Si quieres ‘ocultar’ tu tráfico en lugar de simplemente ‘protegerlo’ deberías usar algo como Shadowsocks junto con V2Ray o Cloak. Ten en cuenta que Shadowsocks solo no es seguro tampoco, necesitas uno de esos complementos seguros. Si quieres algo fácil de desplegar, Outline VPN está basado en esta misma tecnología.

Dependiendo de dónde te encuentres en el mundo, la IP objetivo a la que te conectes también puede ser monitoreada y escaneada, sometida a ataques de reproducción, etc., por lo que algunos países terminan bloqueando el tráfico a VPS personales después de un tiempo ‘solo porque sí’. Enrutando tu VPN a través de un CDN puede ayudar con esto. En el caso de Shadowsocks, V2Ray/Cloak, es muy fácil enviar todo el tráfico a través de Cloudflare, lo que probablemente tenga menos listas de bloqueo.

/r/dumbclub, y buena suerte.

Sé que este es un subreddit de autoservicio. Pero, ¿puedes probar algo como ZeroTier, que ofrece un servicio gratuito? Si solo usas VPN para acceder a tu sistema desde fuera de tu red, ZeroTier debería funcionar.

Si quieres, también podrías usar TailScale en lugar de ZeroTier, si quieres usar Wireguard para la VPN.

¿Puedes configurar wireguard en el puerto 443?

por curiosidad: ¿dónde vives?

Empuja todo a través de un stunnel en el puerto 443, deberías estar bien.

Podrías buscar v2ray o shadowsocks

/r/dumbclub

También mira Naiveproxy, trojan-go y Brook

¿Puedes configurar Wireguard para usar el puerto 443, esencialmente VPN (Wireguard) sobre HTTPS?

Ok, esto puede ser una pista extremadamente buena. Ya sé que los ISP aquí hacen un DPI muy pesado, pero no esperaba que Wireguard fuera vulnerable a ello.

¿Alguna sugerencia sobre cómo ofuscar el tráfico de Wireguard? (agregando una nueva madriguera a mis ya existentes, maravilloso)

Gracias por la pista

Bueno, esto parece interesante. Investigaré al respecto. Gracias

Esto fue útil, muchas gracias

Sé sobre TailScale, no lo he probado aún. Pero ya estoy alojando 3 servicios más y pago por un VPS, así que sería genial no tener que dar mi información a un tercero si/cuando pueda.

Estoy considerando desplegar Wireguard para dos propósitos diferentes, el que está en mi VPS sería un VPN de emergencia para sortear restricciones cuando necesite acceder a contenido bloqueado localmente.

Y otro en mi laboratorio casero, que servirá como punto de entrada a mi red local, algo que TailScale no puede hacer hasta donde sé. Puede darme acceso a una sola máquina, pero no a toda la red.

Lo que sé, y todos son bienvenidos a corregirme si me equivoco, es que Inspección Profunda de Paquetes no depende del puerto, por lo que la ofuscación en realidad encripta los paquetes usando un certificado SSL, junto con usar el puerto 443, así que básicamente aparece como tráfico web “normal” https para la DPI

Podría ejecutarlo a través de un subdominio como wg.mydomain.com usando el puerto 443, pero la DPI detectará que estos son paquetes de Wireguard de todas formas.

Digamos que vivo en alguna parte que considera el VPN como algo malvado y la minería de Bitcoin ilegal

Tailscale puede hacer eso, solo tienes que configurar las rutas para que esté disponible. Funciona bien y Wireguard en China no está restringido, solo el que pasa por la pared causa problemas. Lo uso para streaming cuando no estoy en casa usando Emby.

Usar Wireguard para acceder a tu VPS no es realmente viable, Wireguard “funciona” en China, pero no de manera confiable, como has visto, tiene una firma que puede ser vista fácilmente. Las otras tecnologías VPN que usan las personas en China para acceder a contenido externo son solo proxies y no proporcionan la misma protección que una VPN, son más tecnologías anti-censura.

Necesitarías ejecutar un proxy transparente y luego Wireguard debajo de eso para estar seguro de que la conexión a tu VPS es segura, aunque tal vez SSH esté bien, no lo sé. Ya me rendí con los VPS en China, no vale la pena. No te ayudarán cuando no estés en China viajando y cuando vuelvas, la servicio será más difícil de acceder.

Sí, la DPI no se preocupa por los números de puerto.
Busca patrones en el tráfico.

Dependiendo de tu ISP, usar puertos comunes como 53 puede funcionar, pero también puede levantar una bandera roja.
Esto se debe a que algunos ISP/reguladores requieren que se registre el tráfico DNS, DNS es muy pequeño, por lo que tunelizarlo sobre DNS es muy fácil de detectar.
Fuente: He hecho todo lo anterior… y más.

Lo mejor es salir por protocolos conocidos y permitidos (por ejemplo, HTTPS) y tunelizar dentro de eso.

He tenido éxito alojando wg en el puerto 53. DNS también usa UDP, así que quizás tu censor sea ingenuo y simplemente omita cualquier tráfico que pase por allí. Me funcionó dentro de aeropuertos y perímetros empresariales.

OpenVPN en el puerto 43 TCP, para que parezca tráfico HTTPS normal.