WireGuard

Según la Wikipedia “ WireGuard es una aplicación de software libre y de código abierto y un protocolo de comunicación que implementa técnicas de red privada virtual (VPN) para crear conexiones seguras punto a punto en configuraciones enrutadas o puenteadas. Se ejecuta como un módulo dentro del núcleo Linux y tiene como objetivo un mejor rendimiento que los protocolos de tunelización IPsec y OpenVPN.2​ Fue escrito por Jason A. Donenfeld y se publica bajo la segunda versión de la GNU General Public License (GPL).3​ El sitio web oficial describe el protocolo como un trabajo en progreso. ”

Para mi , una manera sencilla y segura de implementar una solución vpn en un entorno de IT. Cierto es que tiene sus limitaciones e inconvenientes a la hora de monitorizar las conexiones, pero en la mayoría de los casos, sobre todo como solución personal, PYMES y si no se requiera mucha complicaciones es lo mas fácil de integrar con la mayoría de las plataformas actuales ( Windows, Linux, Android, AiOs, BSD, etc ). Es importante tener una serie de conceptos claros antes de plantearnos el despliegue. Documentación en la red tenemos para aburrir y elegir tanto para configurar en muy distintas plataformas. Al ser una VPN descentralizada entre pares el concepto de cliente servidor es un poco particular.

Aclarando temas

¿Cómo funciona WireGuard VPN?

Como ya hemos comentado WireGuard es un protocolo VPN descentralizado peer-to-peer (entre pares). No requiere un servidor, WireGuard abre directamente un túnel entre dos hosts. Lo que se puede considerar un servidor WireGuard es simplemente un host en el que se ha realizado configuraciones de conexión para varios clientes (peers).

Su funcionamiento es muy parecido al delas conexiones Ssh Secure Shell (SSH): los usuarios (peers) generan claves públicas con y realizan un intercambian entre ellos. Con a ellas se identifican y encriptan sus comunicaciones.

A parte las claves (llaves en Ssh), de cada peer se tiene que configurarse diferentes parámetros de red. En los peers se vinculan los rangos de direcciones IP permitidos con las claves públicas. El trafico qe no cumpla las condiciones indicadas en la configuración se descartan. Por defecto utiliza protocolo UDP.

Al ser muy parecidos los conceptos al intercambio de llaves de Ssh es sencillo prender a utilizarlo. Pero es importante tener claro como funciona. Por este motivo publicado unas notas en mis laboratorios comentando los ficheros de configuración, dado que guías de implementación tenemos muchísimas. Aquí dejo un par de Links útiles.

Links