2 puntos por GN⁺ 2023-08-18 | 1 comentarios | Compartir por WhatsApp
  • Netmaker es una plataforma que conecta dispositivos, nubes, oficinas y entornos edge mediante túneles basados en WireGuard y añade control de acceso granular para ofrecer acceso a red de confianza cero
  • Destaca que es de 10 a 20 veces más rápido que las alternativas gracias a WireGuard en kernel y relays coubicados, y que puede mantener la privacidad de los datos con despliegue on-premise y relays dedicados
  • Sus principales casos de uso son el acceso para equipos remotos, la unión de redes de oficina, la gestión de dispositivos edge, el reemplazo de VPN heredadas, el hosting en infraestructura propia y la conexión de cargas de trabajo de IA distribuidas
  • Con funciones de Mesh VPN, gestión de nodos, enrutamiento de tráfico, ACL y gestión de usuarios, permite operar varias redes virtuales por separado y aplicar OIDC, 2FA y políticas de expiración de sesión
  • Configura WireGuard y las reglas de enrutamiento mediante dashboard, CLI, API y el agente Netclient, lo que permite administrar una red overlay distribuida en el estado deseado

Cómo funciona el networking seguro de Netmaker

  • Netmaker es una plataforma de networking de confianza cero que reduce la complejidad de la configuración de VPN y permite que los equipos se conecten desde cualquier lugar en cuestión de minutos
  • Se enfoca en conectar de forma segura dispositivos, nubes y sitios aprovechando la simplicidad y velocidad de WireGuard
  • Afirma que la usan más de 500 empresas en todo el mundo
  • Tiene tres ventajas clave
    • Velocidad: dice ser de 10 a 20 veces más rápido que las alternativas gracias a WireGuard en kernel y relays coubicados
    • Privacidad: con opciones on-premise y relays dedicados, los datos pueden permanecer en el propio entorno
    • Control: ofrece una plataforma flexible para desplegar, configurar y automatizar redes y endpoints

Principales casos de uso

  • Acceso seguro para equipos remotos

    • Permite que los equipos distribuidos accedan de forma confiable a los recursos de la empresa
    • Se enfoca en reducir la complejidad operativa de las VPN tradicionales
  • Unión de redes de oficina

    • Conecta múltiples ubicaciones con una red segura y de buen rendimiento
    • Puede escalar conforme crece el negocio
  • Gestión de flotas y dispositivos edge

    • Permite desplegar, monitorear y proteger de forma centralizada miles de dispositivos edge distribuidos en distintas ubicaciones
    • Ayuda a automatizar la conectividad y mantener políticas de seguridad consistentes desde un solo dashboard
  • Reemplazo de VPN heredadas

    • Ofrece networking mesh que supera las limitaciones de las VPN existentes
    • Promueve mejor rendimiento, administración más sencilla y seguridad más fuerte
  • Hosting de Netmaker en infraestructura propia

    • El despliegue on-premise permite controlar por completo la infraestructura de red
    • Los datos sensibles pueden mantenerse dentro del propio entorno y cumplir requisitos estrictos de compliance sobre hardware propio
  • Seguridad de red para infraestructura de IA

    • Conecta con seguridad de confianza cero cargas de trabajo de IA distribuidas entre la nube y GPUs on-premise
    • Es adecuado para equipos de ML que ejecutan trabajos de entrenamiento en varios proveedores de nube o en entornos híbridos
    • Incluye usos como transferencia de modelos, entrenamiento distribuido y protección de inferencia a gran escala

Mesh VPN y segmentación de red

  • El diseño multired de Netmaker permite crear varias redes virtuales separadas y administrarlas desde un solo lugar
  • Las empresas B2B pueden gestionar múltiples clientes desde una sola cuenta mientras separan y protegen el tráfico
  • También permite segmentación por caso de uso
    • acceso seguro a internet
    • gestión de dispositivos edge
    • configuración de mesh de servidores en la nube
    • acceso remoto a oficinas

Nodos, enrutamiento y control de acceso

  • Hay tres opciones de cliente VPN para agregar endpoints a la red
    • Instalar netclient como agente headless en Linux, Docker, Windows y Mac para configurar nodos peer-to-peer
    • Integrar dispositivos compatibles con WireGuard, incluidos routers, en la red con archivos de configuración simples de WireGuard
    • Ejecutar Remote Access Client en desktop o móvil para ofrecer una aplicación de acceso remoto para usuarios con autenticación y expiración de sesión
  • El enrutamiento de tráfico y las ACL controlan las rutas y permisos de la red
    • Se puede configurar un nodo como Hub para retransmitir conexiones
    • Se puede configurar un nodo como Forwarder para ofrecer acceso remoto a redes externas como oficinas, nubes o internet
    • Se pueden establecer ACL en la red para definir permisos entre dispositivos e implementar una arquitectura de confianza cero
  • La gestión de usuarios incluye onboarding de usuarios finales, asignación de roles y permisos, y concesión de acceso a la red
    • Puede integrarse con proveedores de autenticación compatibles con OIDC
    • Se puede habilitar 2FA
    • Se pueden configurar reglas de expiración de sesión

Flujo operativo y forma de escalar

  • Los operadores inician sesión en el dashboard o la CLI, crean redes y agregan hosts con Netclient
  • Definen el estado deseado de la red con funciones como Egress, Ingress, Relays y ACL
  • El estado definido se transmite a los agentes Netclient que se ejecutan en dispositivos y servidores
  • Netclient configura WireGuard y las reglas de enrutamiento para alcanzar el estado final deseado
  • Una vez completada la configuración, la red overlay distribuida entra en funcionamiento
  • La plataforma puede incorporar networking de nivel empresarial mediante la API
  • La opción open source está dirigida a personas y equipos pequeños, e incluye uso personal ilimitado y funciones básicas de seguridad

1 comentarios

 
GN⁺ 2023-08-18
Opiniones de Hacker News
  • Publicación relacionada de principios de este año: https://news.ycombinator.com/item?id=35584533
    El autor comparó Yggdrasil, tinc, Tailscale, Zerotier, Netmaker y Nebula, y al final prefirió Yggdrasil. De hecho, esa comparación me hizo revisar Netmaker, y tras usarlo sin problemas para experimentos, terminé prefiriéndolo. Me gustaría que volvieran a cubrir Netmaker
    El proyecto avanza rápido, así que hay que seguir los cambios de configuración en cada release, pero como todavía es una release 0.xx, es algo esperable
    Netmaker es básicamente WireGuard normal con ajustes de rutas y STUN/TURN encima, así que su arquitectura es fácil de entender, y la documentación está escrita pensando en usuarios que hacen self-hosting, lo cual me parece una buena señal

    • Es bueno que la documentación sea para usuarios de self-hosting, pero Netmaker, al momento de escribir esto, no es FOSS: https://github.com/gravitl/netmaker/blob/16d5b5807/LICENSE.txt
    • También quisiera agregar Netbird a esa lista. Después de probar todos los productos anteriores, terminé usando Netbird
      https://netbird.io/
    • Al conectarse a una VPN en entornos donde solo se permite salir por 80/443, como redes corporativas, es común usar relays. Aunque no se usen siempre, pueden usarse en algunas conexiones durante el día, y si hay una vulnerabilidad, una sola conexión podría bastar para comprometer la seguridad
    • Incluso leyendo el README de GitHub, sigue sin quedar claro si el ajuste de rutas proxifica todo el tráfico a través de sus propios servidores
  • La lista de funciones me recordó a Tailscale, así que busqué y encontré esta comparación en el sitio web: https://www.netmaker.io/resources/tailscale-vs-zerotier
    En la tabla comparativa del final, señalan como diferencias frente a Tailscale que no se puede hacer self-hosting (ignorando la existencia de headscale) y que el soporte de WireGuard es limitado. Esto último parece referirse a la configuración predeterminada de Tailscale, donde todos los nodos se conectan entre sí, mientras que NetMaker permite otras configuraciones de red
    Pero con las ACL de Tailscale también se puede reconfigurar la red de la forma deseada, así que no sé si esa crítica sigue siendo válida. La afirmación de que “los datos pasan con bastante frecuencia por servidores relay DERP” también me parece dudosa. Eso solo aplica en redes donde, a pesar de STUN/TURN, no fluye tráfico UDP entre clientes, algo que en la práctica es bastante raro
    Las ventajas que alcanzo a ver son que el plan gratuito de NetMaker es más generoso y que, cuando es posible, usa el módulo de kernel de WireGuard. No sé por qué no destacaron eso

    • Por la comparación, WireGuard ya parece ser la base mínima, y la afirmación de que Netmaker es más rápido por usar WireGuard en el kernel no se cumple en todas las configuraciones de sistema, y en macOS en particular no
      La flexibilidad parece similar a la de Tailscale, y da la impresión de que están comercializando de otra forma casos de uso comunes como gateways de salida/entrada. En Tailscale también se puede definir la topología de red con ACL
      En cuanto al precio, la oferta de Tailscale también es suficiente para la mayoría de los usuarios y sus límites son bastante “soft”. Pago USD 45 al año no porque sea gratis, sino porque quiero sostenibilidad. Estoy buscando razones para cambiar, pero todavía no las encuentro
    • Según entiendo, Tailscale no ofrece un servidor de control self-hosted oficial. Eso parece ser una ventaja de NetMaker
      Eso sí, por lo que veo no tiene una función equivalente a tailnet lock
    • Me da curiosidad si la base de la afirmación de Netmaker de tener 5 veces más rendimiento que Tailscale es el módulo del kernel. No he medido correctamente el rendimiento de Tailscale, pero si no es una diferencia de rendimiento de infraestructura, no veo otra forma clara de sostener esa afirmación
    • Netmaker tiene Client Gateways, que permiten generar y modificar archivos de configuración WireGuard sin procesar. Es muy útil al integrarlo con configuraciones WireGuard personalizadas
      Por ejemplo, puedes crear y editar un archivo de configuración y luego ponerlo en un router para obtener de inmediato una conexión sitio a sitio: https://www.netmaker.io/features/ingress
    • Vale la pena investigar directamente con qué frecuencia se transmite el tráfico por relay en Tailscale. No tengo cifras, pero hubo un usuario con latencia muy alta en Tailscale que, tras analizar el tráfico, descubrió que se estaba retransmitiendo hasta el otro lado del país
      La traversía NAT de Tailscale es excelente, pero sigue siendo un factor a considerar
  • Quizá sea una pregunta tonta, pero me da curiosidad cuál es la ventaja de estos productos frente a configurar directamente un servidor WireGuard normal en algo como OpenBSD. No soy experto en redes, pero configurarlo a mano también fue bastante sencillo. Si estos productos ofrecen más funciones, me gustaría saber cuáles son

    • Si intentas crear una red mesh solo con WireGuard, rápidamente aparece un problema de explosión combinatoria
      Si tienes 10 nodos y quieres agregar un nodo 11, tienes que actualizar los 10 nodos existentes
      Estos proyectos automatizan la configuración de los nodos. Solo configuras el nodo nuevo y el resto de los nodos se enteran de su existencia
    • En resumen, no tienes que configurar WireGuard manualmente y también ayuda a cumplir con varias siglas de cumplimiento normativo
  • ¿No sería mejor que las empresas invirtieran más en mejorar WireGuard y otras soluciones open source?
    No entiendo cómo se puede confiar a otra empresa un servicio de seguridad tan importante como una VPN. ¿Qué pasa si alguien de esa empresa te vende al mejor postor?
    Al decidir si hacerlo internamente o comprarlo, parece que a menudo se olvida que, si no eres dueño de las llaves de la puerta de tu casa, corres el riesgo de que alguien te deje encerrado afuera.

    • La persona que creó WireGuard alguna vez dijo claramente que las funciones de administración como autenticación de usuarios, configuración y ajuste automáticos, y ACL están fuera del alcance del proyecto WireGuard.
      La idea fue mantenerlo lo más simple posible y dejar que terceros construyeran plataformas VPN basadas en WireGuard.
    • Ante la pregunta de cómo confiar a otra empresa un servicio de seguridad VPN importante, hay quienes lo abordan como: mirar el Gartner Magic Quadrant y elegir lo que esté arriba a la derecha.
      Cualquier solución VPN puede tener vulnerabilidades y, si se trata de una misma empresa, la mantendrán actualizada. Muchos firewalls de hardware tienen ASIC para acelerar el tráfico VPN, y puede que se necesite algo así para manejar el volumen de tráfico de una empresa.
    • WireGuard es un protocolo que cifra y transmite bits directamente en la capa L3. Tiene sentido hacer que haga bien una tarea simple.
  • Hay una molestia en WireGuard que todavía no he podido resolver. En el teléfono quiero acceder a mi homelab a través del servidor WireGuard de casa, y enviar el resto del tráfico por una VPN WireGuard externa.
    El rango IP del homelab es algo como 10.10.0.0/24, y la VPN externa usa otro rango, pero a WireGuard no parece gustarle este tipo de configuración.
    La alternativa es enviar todo el tráfico del teléfono a casa y que el router de casa lo saque por la VPN externa, pero como mi internet en casa no es bueno, no quiero que se convierta en un cuello de botella.
    Revisando por encima la documentación de NetMaker, no encontré una parte que muestre claramente cómo configurar la VPN, ni cómo se llama la configuración para hacer bridge entre varias redes WireGuard.

    • Me da curiosidad cómo está tu configuración actual.
      ¿Tienes una sola interfaz/configuración de WireGuard en el teléfono y dos peers? ¿Algo como que el peer WireGuard de casa tenga AllowedIPs en 10.10.0.0/24, y el peer VPN remoto en 0.0.0.0/24?
      También me da curiosidad si intentaste excluir el CIDR del WireGuard de casa de los AllowedIPs de la VPN remota. Es decir, no un solo 0.0.0.0/24, sino varias entradas que excluyan el CIDR local.
    • Debería poder hacerse con dos peers. Pero quizá tengas que definir el enrutamiento explícitamente.
      Para el primer peer es fácil si pones AllowedIPs en 10.10.0.0/8, y el segundo peer necesita más configuración porque debe enrutar todo el resto del tráfico.
      Para un ejemplo que enumera todos los rangos que no son RFC1918, puedes ver esta respuesta: https://serverfault.com/a/304791
      Supongo que habría que poner esos rangos en los AllowedIPs del peer que enruta hacia internet público.
    • Netmaker podría ayudar. Dentro de la red Netmaker 10.10.0.0/24, basta con configurar un Egress Gateway hacia 0.0.0.0/0 como VPN de internet.
      Netmaker maneja las reglas de enrutamiento de otra manera y está hecho para ser compatible con este tipo de configuración. Dicho eso, por experiencia estas configuraciones también suelen ser bastante estables con WireGuard normal, así que me sorprende un poco que tengas ese problema.
    • Si el servidor WireGuard de casa corre en Linux, se puede implementar agregando una segunda tabla de enrutamiento y una política de routing.
    • ¿No podrías mantener una conexión WireGuard permanente entre casa y el servidor WireGuard externo, y que el teléfono se conecte solo al servidor externo?
      Así, el tráfico hacia casa se enruta por la conexión WireGuard de casa, y el resto del tráfico sale directamente desde el servidor externo.
  • Llevo varios meses usando Netmaker y es excelente. Lo uso como gestión de VPN bastión para todos los entornos.
    Lo único que todavía no he logrado es el forwarding completo de 0.0.0.0. Según la documentación es posible, pero no parece ser un caso de uso común, y cuando lo intento siempre se queda colgado. Normalmente tuve que usar sshuttle.
    Fuera de eso, es realmente bueno.

    • Me da curiosidad la configuración de hosting del servidor. ¿Expones el bastión de Netmaker a internet público para todos los VPC y dejas el bastión fuera del VPC?
      Cuando lo configuré me recomendaron eso, pero también consideré poner el bastión dentro del VPC y exponerlo a internet.
    • Cuando usas 0.0.0.0, me da curiosidad si accedes con external clients o si usas el netclient normal.
    • Me da curiosidad si es para una red de oficina o para infraestructura de servidores.
      También me interesa saber si lo comparaste con otros productos y por qué elegiste Netmaker.
    • Sería bueno probar MSS clamping.
  • Netmaker es un producto decente y también cuenta con apoyo de Y Combinator. Al igual que Tailscale, está basado en WireGuard, y parece estar enfocado principalmente en el uso con Kubernetes.
    En mi opinión, es mejor que otras soluciones de networking zero trust porque ofrece juntas ACL integradas, funciones tradicionales de WireGuard/VPN y una superposición mesh P2P con cifrado.
    Zerotier o Tailscale pueden ser más fáciles de manejar, pero NetMaker vale la pena seguirlo de cerca. Conocí al fundador en KubeCon el año pasado; era accesible y buena persona. Si tienes preguntas o inquietudes concretas, puedes contactarlo directamente.

    • Tailscale es bastante bueno.
      Me pregunto cómo habría que conectar las dos redes, tailnet y netmaker-net.
  • Revisando el repositorio de GitHub, me decepcionó bastante que falten archivos _test.go. Es un producto de seguridad, así que me preocupa que pase algo malo.

    • La mayoría de las pruebas se realizan como pruebas de integración en otro repositorio.
  • Me registré en varias herramientas de este tipo y Netmaker me gustó más. Puede que tenga sesgos, pero siento que la forma de configurarlo se presenta de manera fácil de entender.

    • Me da curiosidad cuáles probaste y qué opinión te dejó cada una.
      Yo solo probé un producto que personas en las que confío mencionaron varias veces en HN y en otros lugares, pero me interesan las experiencias de usuarios de HN con otros servicios.
  • Uso Netmaker y netclient dentro de un clúster de Kubernetes para acceder a todos los pods de k8s mediante túneles WireGuard seguros.
    No tengo que preocuparme por certificados SSL para paneles de administración como Longhorn, Pihole, Portainer o Linkerd. Tampoco necesito hacer port forwarding de k8s cada vez que quiero acceder a un servicio específico dentro de la red del clúster.
    Creo que, para un acceso seguro y administrable a la red del clúster, es difícil superar la combinación de Netmaker y Kubernetes.