Wireguard para Kubernetes y GUI fáciles de usar



¿Puedo expresar una vez más mi amor por [WireGuard] y esperar que se fusione pronto? Tal vez el código no sea perfecto, pero lo he hojeado y comparado con los horrores que son OpenVPN e IPSec, es una obra de arte.



Linus Torvalds, en la lista de correo del kernel de Linux


Estoy seguro de que muchos ya han oído hablar de Wireguard. Algunos incluso lo sintieron en vivo. Me gustó bastante en producción, tanto en términos de rendimiento como de facilidad de configuración. Sí, no hay un millón de configuraciones misteriosas para todas las ocasiones, como OpenVPN y XFRM + StrongSwan en IPSEC VPN. Es simple y conciso tanto en código como en configuraciones. Todavía no se volverá audaz y torpe. En resumen, una versión tan positiva del escenario de "quemar el legado y escribir todo bien".



Decidí no escribir otra guía sobre "cómo instalé Wireguard", sino compartir algunas utilidades útiles. Algunas con una GUI muy exitosa para mi gusto, que es apropiada para servicios con muchos usuarios. Analizaremos el uso de esta VPN para la comunicación entre nodos en diferentes clústeres de Kubernetes, varias GUI web para la generación y un par de recursos útiles.



¿Por qué es necesario?



La pregunta clave. Una de las cosas más interesantes de él es que es muy productivo. En la mayoría de los casos, hay menos latencia y mayor rendimiento con una carga de CPU igual. Si paga por los recursos gastados o planea alquilar máquinas virtuales teniendo en cuenta las cargas máximas, este tipo de VPN también le permitirá ahorrar dinero. Creo que no es necesario explicar por qué es malo dirigir el tráfico a través de redes abiertas entre nodos individuales.





Fuente: www.wireguard.com/performance



Por otra parte, cabe destacar que se ha incluido en el kernel desde Linux 5.6, y desde la primavera de este año también se ha incluido en la rama principal del kernel de Android, lo que nos otorga una excelente eficiencia energética en teléfonos móviles. ... Aunque, debo decir que antes no tensó particularmente la batería del teléfono.



Kilo - protector de cables para Kubernetes



Muy a menudo, las empresas más grandes que el promedio tienen situaciones en las que necesitan utilizar varias nubes diferentes. Las razones son diferentes: tolerancia a fallas, buena presencia en la región y pings bajos. A veces, los precios son para productos específicos. Por ejemplo, puede ejecutar el frontend y la lógica principal en sus propios servidores y subcontratar tareas que requieren mucha GPU a instancias de AWS.



¿Cómo funciona? Kilo requiere un módulo de kernel wireguard en todos los nodos. Si está utilizando kernels más nuevos que 5.6, entonces el módulo ya estará en la rama principal y no tendrá que finalizar nada. A continuación, el agente kilo, "kg", se ejecuta en cada nodo del clúster, configurando claves públicas y privadas para configurar una VPN. Las reglas de enrutamiento del tráfico entre regiones separadas también se configuran automáticamente. Kilo también puede funcionar junto con otras soluciones de red para clústeres, como Flannel. Al mismo tiempo, kilo proporcionará comunicación entre regiones y Flannel se encargará del tráfico dentro de una ubicación.

Al crear una topología de red, se basa en topology.kubernetes.io/region , pero también puede marcar regiones manualmente.



Requisitos:



  • Kernel 5.6 o módulo de protección de cables separado
  • IP blanca en los nodos, para organizar una conexión directa entre ellos.




Para obtener más detalles, consulte la charla para desarrolladores del año pasado en los foros de Kubernetes en Seúl y la documentación .



wg-gen-web



imagen

Lo que se llama "otro generador de configuración". Pero es muy agradable trabajar con él. La principal diferencia en el enfoque es que el autor no intenta editar la configuración de un servicio en ejecución sobre la marcha, sino que solo proporciona una GUI conveniente para generar reglas. Luego, usted mismo implementa la actualización de las configuraciones a su gusto.



Características clave: genera códigos QR convenientes para clientes móviles y envía todos los datos necesarios para la conexión al correo del cliente. Bueno, acoplado, por supuesto. El repositorio está aquí .



La implementación es bastante simple:



docker run --rm -it -v /tmp/wireguard:/data -p 8080:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest

      
      





Subespacio





Otra GUI para trabajar fácilmente con muchos dispositivos cliente.

Principales características:



  1. Inicio de sesión único con SAML. Puede ir a la cuenta de Google.
  2. Agregue y elimine dispositivos con unos pocos clics
  3. Generación de configuraciones individuales para cada dispositivo. Bueno, el código QR, por supuesto.
  4. Vamos a cifrar HTTPS listo para usar y redireccionarlo automáticamente al puerto 443


Fácil de implementar en VPS. Por cierto, los tenemos. Podemos dormir)

El wireguard debe estar instalado en el servidor y los puertos deben estar abiertos: 80 / tcp, 443 / tcp, 51820 / udp (WireGuard). En este caso, debe eliminar el dnsmasq estándar, ya que se lanzará en el contenedor.

Entonces todo es bastante típico, solo reemplace --env SUBSPACE_HTTP_HOST con su dominio:

# Your data directory should be bind-mounted as `/data` inside the container using the `--volume` flag.
$ mkdir /data

docker create \
    --name subspace \
    --restart always \
    --network host \
    --cap-add NET_ADMIN \
    --volume /usr/bin/wg:/usr/bin/wg \
    --volume /data:/data \
    --env SUBSPACE_HTTP_HOST=subspace.example.com \
    subspacecloud/subspace:latest

$ sudo docker start subspace

      
      





El repositorio está aquí .



En lugar de conclusiones



Si aún no ha probado esta VPN, se la recomiendo. A menudo es capaz de revivir hardware no muy potente, que antes no podía hacer frente bajo carga. Tampoco es muy difícil de configurar. Es cierto que su tarea principal sigue siendo perforar túneles rectos y preconfigurados. No dispone de ninguna configuración dinámica en el sentido habitual. Un precio a pagar por la sencillez y el rendimiento.

Por cierto, si aún no lo sabe, wireguard ya está incluido en la versión beta de RouterOS 7.1 de MikroTik. Puedes probarlo ahora, pero, según mis sentimientos, todavía está húmedo.





Bueno, tradicionalmente puedo invitarte a intentar implementar wireguard en nuestro VPS... Por ejemplo, para envolver parte del tráfico de su red doméstica a Suiza u Holanda. Tenemos muchas ubicaciones diferentes y la política de precios es muy agradable para este tipo de tareas.



Como dije, Wireguard es muy eficiente en recursos, por lo que una configuración mínima con 1 núcleo y 1 GB de RAM será más que suficiente para soportar una gran cantidad de clientes. Los precios también son bastante humanos:














All Articles