La creación de redes puede ser un problema molesto para los desarrolladores de software. No me refiero a las redes de área local ni a la navegación por Internet, sino al problema mucho más difícil de las redes de área amplia ad hoc, entrantes.
Suponga que crea un sitio web deslumbrante en su computadora portátil y desea compartirlo con sus amigos o clientes. Puede modificar el firewall en su enrutador para permitir el acceso web entrante en el puerto que usa su sitio web y permitir que sus usuarios sepan la dirección IP y el puerto actuales, pero eso podría crear una vulnerabilidad de seguridad potencial. Además, solo funcionaría si tiene control sobre el enrutador y sabe cómo configurar firewalls para la redirección de puertos.
Alternativamente, puede cargar su sitio web en un servidor, pero ese es un paso adicional que a menudo puede llevar mucho tiempo, y mantener servidores dedicados puede ser una carga, tanto en tiempo como en dinero. Podría activar una pequeña instancia en la nube y cargar su sitio allí, pero ese también es un paso adicional que a menudo puede llevar mucho tiempo, aunque a menudo es bastante económico.
Otra posible solución es Universal Plug and Play (UPnP), que permite que los dispositivos establezcan reglas de reenvío de puertos por sí mismos. UPnP debe estar habilitado en su enrutador, pero solo es seguro si el módem y el enrutador están actualizados y seguros. Si no, crea serios riesgos de seguridad en toda su red. El consejo habitual de los proveedores de seguridad es no habilitarlo, ya que las implementaciones de UPnP en muchos enrutadores siguen siendo peligrosas, incluso en 2023. Por otro lado, si tiene una Xbox en casa, UPnP es lo que usa para configurar su enrutador para juegos multijugador y chat.
Una forma más sencilla y segura es Tailscale, que le permite crear una red virtual cifrada de igual a igual utilizando el protocolo seguro WireGuard sin generar claves públicas ni escribir contraseñas constantemente. Puede atravesar NAT y cortafuegos, dividir subredes, usar UPnP para crear conexiones directas si está disponible y conectarse a través de su propia red de servidores de retransmisión TCP encriptados si UPnP no está disponible.
En cierto sentido, todas las VPN (redes privadas virtuales) compiten con Tailscale. Sin embargo, la mayoría de las otras VPN enrutan el tráfico a través de sus propios servidores, lo que tiende a aumentar la latencia de la red. Un caso de uso importante para las VPN basadas en servidor es hacer que su tráfico parezca que proviene del país donde se encuentra el servidor; Tailscale no ayuda mucho con esto. Otro caso de uso es penetrar los cortafuegos corporativos mediante el uso de un servidor VPN dentro del cortafuegos. Tailscale compite por este caso de uso y, por lo general, tiene una configuración más simple.
Además de Tailscale, la única otra VPN punto a punto es WireGuard, de código abierto y gratuito, sobre la que se basa Tailscale. Wireguard no maneja la distribución de claves y las configuraciones empujadas. Tailscale se encarga de todo eso.
¿Qué es Tailscale?
Tailscale es un servicio VPN punto a punto encriptado basado en el protocolo de código abierto WireGuard. En comparación con las VPN tradicionales basadas en servidores centrales, Tailscale suele ofrecer velocidades más altas y una latencia más baja, y suele ser más fácil y económico de configurar y usar.
Tailscale es útil para los desarrolladores de software que necesitan configurar redes ad hoc y no quieren preocuparse por los cortafuegos o las subredes. También es útil para las empresas que necesitan configurar el acceso VPN a sus redes internas sin instalar un servidor VPN, lo que a menudo puede ser un gasto significativo.
Instalación y uso de Tailscale
Registrarse en un plan Tailscale Personal fue gratis y rápido; Elegí usar mi ID de GitHub para la autenticación. La instalación de Tailscale tomó unos minutos en cada máquina que probé: una MacBook Pro M1, donde la instalé desde la tienda de aplicaciones de macOS; un iPad Pro, instalado desde la App Store de iOS; y un Pixel 6 Pro, instalado desde Google Play Store. La instalación en Windows comienza con una descarga desde el sitio web de Tailscale, y la instalación en Linux se puede realizar mediante un curl
comando y script de shell, o una serie de comandos específicos de distribución.
Puede instalar Tailscale en macOS, iOS, Windows, Linux y Android. Esta pestaña muestra las instrucciones para macOS.
Tailscale usa direcciones IP en el rango 100.xxx y asigna automáticamente nombres DNS, que puede personalizar si lo desea. Puede ver su “tailnet” completo desde el sitio de Tailscale y desde cada máquina que está activa en el tailnet.
Además de ver sus máquinas, puede ver y editar los servicios disponibles, los usuarios de su tailnet, sus controles de acceso (ACL), sus registros, su DNS de tailnet y la configuración de su tailnet.
Una vez que los tres dispositivos estaban ejecutando Tailscale, pude verlos todos en mi página de inicio de sesión de Tailscale. Elegí usar mi ID de GitHub para la autenticación, ya que estaba probando solo para mí. Si estuviera configurando Tailscale para un equipo, usaría la dirección de correo electrónico de mi equipo.
Precios de escala de cola.
Tailscale instala una CLI en computadoras de escritorio y portátiles. No es absolutamente necesario usar esta línea de comando, pero muchos desarrolladores de software la encontrarán conveniente.
Cómo funciona Tailscale
Tailscale, a diferencia de la mayoría de las VPN, establece conexiones punto a punto, también conocida como red de malla, en lugar de una red radial. Utiliza el paquete WireGuard de código abierto (específicamente la variante Go del espacio de usuario, wireguard-go) como su capa base.
Para la distribución de claves públicas, Tailscale utiliza una configuración hub-and-spoke. El servidor de coordinación está en login.tailscale.com. Afortunadamente, la distribución de claves públicas requiere muy poco ancho de banda. Las claves privadas, por supuesto, nunca se distribuyen.
Es posible que esté familiarizado con la generación manual de pares de claves públicas y privadas para usar con ssh
e incluyendo un enlace al archivo de clave privada como parte de su ssh
línea de comando. Tailscale hace todo eso de forma transparente para su red y vincula las claves a cualquier inicio de sesión o credenciales 2FA que elija.
Los pasos del par de claves son:
- Cada nodo genera un par de claves aleatorias pública/privada para sí mismo y asocia la clave pública con su identidad.
- El nodo se pone en contacto con el servidor de coordinación y deja su clave pública y una nota sobre dónde se puede encontrar actualmente ese nodo y en qué dominio se encuentra.
- El nodo descarga una lista de claves públicas y direcciones en su dominio, que otros nodos han dejado en el servidor de coordinación.
- El nodo configura su instancia de WireGuard con el conjunto adecuado de claves públicas.
Tailscale no maneja la autenticación del usuario en sí. En su lugar, siempre subcontrata la autenticación a un proveedor de OAuth2, OIDC (OpenID Connect) o SAML, incluidos Gmail, G Suite y Office 365. Esto evita la necesidad de mantener un conjunto separado de cuentas de usuario o certificados para su VPN.
Ayuda de CLI de Tailscale. En macOS, el ejecutable CLI vive dentro del paquete de la aplicación. Un enlace suave a este ejecutable no parece funcionar en mi MacBook Pro M1, posiblemente porque Tailscale se ejecuta en un entorno limitado.
NAT transversal es un proceso complicado, uno que personalmente intenté superar sin éxito hace una década. NAT (traducción de direcciones de red) es una de las formas en que funcionan los firewalls: la dirección local de su computadora, por ejemplo, 192.168.1.191, se traduce en el firewall, a medida que un paquete va de su computadora a Internet, a su dirección IP pública actual y un número de puerto aleatorio, digamos 173.76.179.155:9876, y recuerda ese número de puerto como suyo. Cuando un sitio devuelve una respuesta a su solicitud, su firewall reconoce el puerto y lo traduce a su dirección local antes de pasarle la respuesta.
Estado de Tailscale, pings de Tailscale a dos dispositivos y pings simples a los mismos dispositivos usando la red nativa. Tenga en cuenta que el ping Tailscale al dispositivo Pixel primero se enruta a través de un servidor DERP (ver más abajo) en Nueva York y luego logra encontrar la conexión LAN.
¿Dónde está el problema? Suponga que tiene dos clientes de cortafuegos que intentan comunicarse de igual a igual. Ninguno puede tener éxito hasta que alguien o algo le diga a ambos extremos qué puerto usar.
Este árbitro será un servidor cuando utilice el protocolo STUN (Session Traversal Utilities for NAT); Si bien STUN funciona en la mayoría de los enrutadores domésticos, lamentablemente no funciona en la mayoría de los enrutadores corporativos. Una alternativa es el protocolo TURN (Traversal Using Relays around NAT), que utiliza relés para sortear el problema de interbloqueo de NAT; el problema con eso es que TURN es un dolor de cabeza para implementar, y no hay muchos servidores de retransmisión TURN existentes.
Tailscale implementa un protocolo propio para esto, llamado DERP (Designated Encrypted Relay for Packets). Este uso del término DERP no tiene nada que ver con ser tonto, pero sugiere que alguien en Tailscale tiene sentido del humor.
Tailscale tiene servidores DERP en todo el mundo para mantener baja la latencia; estos incluyen nueve servidores en los EE. UU. Si, por ejemplo, está tratando de usar Tailscale para conectar su teléfono inteligente desde un parque a su escritorio en su oficina, es muy probable que la conexión se enrute a través del servidor DERP más cercano. Si tiene suerte, el servidor DERP solo se utilizará como canal lateral para establecer la conexión. Si no lo está, el servidor DERP transportará el tráfico WireGuard encriptado entre sus nodos.
Tailscale frente a otras VPN
Tailscale ofrece una guía para revisores. A menudo miro esos documentos y luego hago lo mío porque he estado dando vueltas un par de veces y reconozco cuando una empresa está poniendo testaferros y derribándolos, pero este es algo útil. Aquí hay algunos diferenciadores clave a considerar.
Con la mayoría de las VPN, cuando está desconectado, debe iniciar sesión nuevamente. Puede ser incluso peor cuando su empresa tiene dos proveedores de Internet y tiene dos servidores VPN para manejarlos, porque generalmente tiene que averiguar qué está pasando por ensayo y error o intentando llamar al administrador de la red, que probablemente esté en sus manos. o sus codos en crisis. Con Tailscale (y WireGuard), la conexión simplemente se reanuda. De manera similar, muchos servidores VPN tienen problemas con conexiones inestables como LTE. Tailscale y WireGuard toman la descamación con calma.
Con la mayoría de las VPN, lograr que un usuario ingenuo se conecte por primera vez es un ejercicio de paciencia para el administrador de la red y posiblemente aterrador para el usuario que tiene que “perforar un agujero” en el firewall de su hogar para habilitar la conexión. Con Tailscale es un proceso de cinco minutos que no da miedo en absoluto.
La mayoría de las VPN quieren ser exclusivas. Conectarse a dos concentradores VPN a la vez se considera un pecado capital y una potencial vulnerabilidad de seguridad, especialmente si se encuentran en empresas diferentes. A Tailscale no le importa. WireGuard puede manejar esta situación muy bien incluso con topologías hub-and-spoke, y con las conexiones punto a punto de Tailscale hay una configuración Zero Trust que no expone ninguna vulnerabilidad.
Soluciones a gran escala
Tailscale ha documentado alrededor de una docena de soluciones para casos de uso comunes que se pueden abordar con su red ad hoc. Estos van desde querer codificar desde su iPad hasta ejecutar un servidor privado de Minecraft sin pagar por el alojamiento o abrir su firewall.
Como hemos visto, Tailscale es simple de usar, pero también sofisticado bajo el capó. Es una opción fácil para redes ad hoc y una alternativa razonable a las VPN tradicionales de hub-and-spoke para empresas. La única función VPN común que se me ocurre es que no hacer es falsificar su ubicación para que pueda ver contenido de video restringido geográficamente, pero hay VPN gratuitas que manejan eso.
—
Costo: Planes personales, open source y “amigos y familiares”, gratis. Personal Pro, $48 por año. Equipo, $5 por usuario por mes (prueba gratuita disponible). Business, $15 por usuario por mes (prueba gratuita disponible). Planes personalizados, contacta con ventas.
Plataforma: macOS 10.13 o posterior, Windows 7 SP1 o posterior, Linux (la mayoría de las principales distribuciones), iOS 15 o posterior, Android 6 o posterior, Raspberry Pi, Synology.
Derechos de autor © 2023 IDG Communications, Inc.
Be First to Comment