Firezone, una excelente opción para crear VPNs basadas en WireGuard

Si quieres crear un servidor VPN déjame decirte que existe una excelente opción de la cual te puedes apoyar para poder lograr tu cometido y es que el proyecto Firezone estÔ desarrollando un servidor VPN para organizar el acceso a los hosts en una red interna aislada de los dispositivos de los usuarios ubicados en redes externas.

El proyecto tiene como objetivo lograr un alto nivel de seguridad y simplificar el proceso de implementación de VPN.

Sobre Firezone

El proyecto estÔ siendo desarrollado por un ingeniero de automatización de seguridad de Cisco, quien intentó crear una solución que automatiza el trabajo con la configuración del host y elimina los problemas que tenían que enfrentarse al organizar el acceso seguro a las VPC en la nube.

Firezone actúa como una interfaz tanto para el módulo del kernel WireGuard como para el subsistema del kernel netfilter. Crea una interfaz WireGuard (llamada por defecto wg-firezone) y una tabla netfilter y agrega las rutas apropiadas a la tabla de enrutamiento. Otros programas que modifican la tabla de enrutamiento de Linux o el firewall de netfilter pueden interferir con el funcionamiento de Firezone.

Se puede pensar en Firezone como una contraparte de código abierto para OpenVPN Access Server, construido sobre WireGuard en lugar de OpenVPN.

WireGuard se utiliza para organizar canales de comunicación en Firezone. Firezone también tiene una funcionalidad de firewall incorporada que usa nftables.

En su forma actual, el firewall estÔ limitado mediante el bloqueo del trÔfico saliente a hosts o subredes específicos en redes internas o externas, esto es debido a que Firezone es un software beta, por lo cual de momento solo se recomienda su uso limitando el acceso de la red a la interfaz de usuario web para evitar exponerla a la Internet pública.

Firezone requiere un certificado SSL vĆ”lido y un registro DNS coincidente para ejecutarse en producción, el cual puede ser generado y administrador por la herramienta que ofrece Let’s Encrypt para generar un certificado SSL gratuito.

Por la parte de la administración, se menciona que esta se realiza a través de la interfaz web o en el modo de línea de comando usando la utilidad firezone-ctl. La interfaz web estÔ construida sobre la base de Admin One Bulma.

Actualmente, todos los componentes de Firezone se ejecutan en el mismo servidor, pero el proyecto se desarrolla inicialmente con un ojo en la modularidad, y en el futuro se planea agregar la capacidad de distribuir componentes para la interfaz web, VPN y firewall en diferentes hosts.

Los planes también mencionan la integración de un bloqueador de anuncios basado en DNS, soporte para listas de bloqueo de host y subredes, la capacidad de autenticarse a través de LDAP / SSO y capacidades adicionales de administración de usuarios.

De las caracterĆ­sticas que se menciona de Firezone:

  • RĆ”pido: usa WireGuard para ser 3-4 veces mĆ”s rĆ”pido que OpenVPN.
  • Sin dependencias: todas las dependencias estĆ”n agrupadas gracias a Chef Omnibus.
  • Sencillo: tarda unos minutos en configurarse. Administre a travĆ©s de una API CLI simple.
  • Seguro: funciona sin privilegios. HTTPS aplicado.
  • Cookies encriptadas.
  • Cortafuegos incluido: utiliza nftables de Linux para bloquear el trĆ”fico de salida no deseado.

Para la instalación, se ofrecen paquetes rpm y deb para diferentes versiones de CentOS, Fedora, Ubuntu y Debian, cuya instalación no requiere dependencias externas, ya que todas las dependencias necesarias ya estÔn incluidas usando el kit de herramientas Chef Omnibus.

Para funcionar, solo necesita una distribución de Linux que cuenta con un kernel de Linux no anterior a 4.19 y un módulo de kernel compilado con VPN WireGuard. Según el autor, el inicio y la configuración de un servidor VPN se pueden realizar en solo unos minutos. Los componentes de la interfaz web se ejecutan bajo un usuario sin privilegios y el acceso solo es posible a través de HTTPS.

Firezone consta de un único paquete de Linux distribuible que el usuario puede instalar y administrar. El código del proyecto estÔ escrito en Elixir y Ruby, y se distribuye bajo la licencia Apache 2.0.

Finalmente si estÔs interesado en poder conocer mÔs al respecto o quieres seguir las instrucciones de instalación, puedes hacerlo desde el siguiente enlace.