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.