Raspberry Pi + Twingate Acceso Remoto Zero Trust

He estado usando OpenVPN desde hace mucho tiempo y es una sulución que me ha funcionado bien, lo tengo funcionando para algunas cosas con una Raspberry Pi 1 Model B que solo tiene 256 MB de RAM, se fabricó en el 2012, a pesar de sus limitaciones siempre me ha funcionado bien, los mejores $1,000 pesos que invertido en hardware, el ROI es increíble.

Pero quería probar una solución moderna y encontré dos opciones twingate y tailscale, son muy similares y ambas ofrecen una experiencia de acceso remoto basada en el modelo Zero Trust, pero Twingate te permite hasta 5 usuarios gratis, mientras que Tailscale solo te da 3 usuario gratis, así que me decidí por Twingate, tal vez después haga un post sobre Tailscale para que puedan comparar, pero ambas son excelentes opciones y operan muy similar.

Primero un pequeño recordatorio del modelo Zero Trust que es un paradigma que se ha vuelto muy popular especialmente con el aumento del trabajo remoto y la necesidad de acceder a recursos internos de forma segura desde cualquier lugar. El modelo Zero Trust se basa en el principio de “nunca confiar, siempre verificar”, lo que significa que no se asume que ningún usuario o dispositivo es confiable por defecto, incluso si están dentro de la red corporativa. En su lugar, se requiere una autenticación y autorización estrictas para cada acceso a recursos, lo que ayuda a proteger contra amenazas internas y externas.

Con VPN tradicionales, una vez que un usuario se conecta a la red, tiene acceso a todos los recursos disponibles, lo que puede ser riesgoso si el dispositivo del usuario está comprometido o si el usuario tiene malas intenciones. En cambio, con el modelo Zero Trust, cada solicitud de acceso se evalúa de forma individual, y solo se otorga acceso a los recursos específicos que el usuario necesita para realizar su trabajo.

Ok, una vez aclarado el concepto de Zero Trust, vamos a lo que realmente importa, cómo configurar Twingate en una Raspberry Pi para tener acceso remoto seguro a tu red de casa u oficina.

  1. Primero necesitas una Raspberry Pi con Raspbian OS instalado y configurado. Asegúrate de que tu Raspberry Pi esté conectada a tu red local y tenga acceso a Internet. Los modelos soportados por Twingate son Raspberry Pi 3B, y superiores.

  2. Luego, ve al sitio web de Twingate y regístrate para obtener una cuenta gratuita. Después de registrarte, necesitas estos tres elementos:

    • Define una red remota o remote network, que es básicamente la red a la que quieres acceder de forma remota. Por ejemplo si en casa tienes un servidor que quieres acceder desde fuera de tu red, esa sería tu remote network.
    • Crea un conector, que es el componente que se instala en tu red local y permite que Twingate se conecte a tus recursos internos de forma segura. En este caso, el conector se instalará en tu Raspberry Pi.
    • Token de acceso (Access Token) y token de actualización (Refresh Token), que son credenciales que necesitarás para configurar el conector en tu Raspberry Pi y permitir que se autentique con el servicio de Twingate.
  3. Para instalar el conector en tu Raspberry Pi, puedes usar el siguiente comando en la terminal de tu Raspberry Pi, asegúrate de reemplazar los valores de <TU_ACCESS_TOKEN>, <TU_REFRESH_TOKEN> y <TU_SUBDOMINIO> con la información correspondiente de tu cuenta de Twingate:

curl "https://binaries.twingate.com/connector/setup.sh" | sudo TWINGATE_ACCESS_TOKEN="<TU_ACCESS_TOKEN>" TWINGATE_REFRESH_TOKEN="<TU_REFRESH_TOKEN>" TWINGATE_URL="https://<TU_SUBDOMINIO>.twingate.com" bash
  1. Una vez que hayas ejecutado el comando, el conector se instalará en tu Raspberry Pi y se conectará a tu cuenta de Twingate. Ahora puedes configurar tus recursos internos y asignar permisos de acceso a los usuarios que necesiten acceder a esos recursos de forma remota.

Con eso básicamente ya tienes configurado Twingate en tu Raspberry Pi y puedes acceder a tu red de casa u oficina de forma segura desde cualquier lugar, desde tu Laptop, desde tu celular, desde otra red, etc. Recuerda que el modelo Zero Trust te permite controlar exactamente qué recursos pueden ser accedidos por cada usuario, lo que aumenta significativamente la seguridad de tu red.

El conector puede ser una computadora o incluso un contenedor dentro de una computadora de tu red, no necesariamente tiene que ser una Raspberry Pi, pero se me hace una buena opción porque en casa se va muy seguido la luz y al ser una Raspberry Pi al regresar la energía se vuelve a conectar automáticamente, además de que es un dispositivo de bajo consumo y bajo costo, así que es una excelente opción para este tipo de configuraciones.

Si tengo un poco de tiempo despues les haré el video con los pasos.