Instalación

A continuación vamos a ver lo sencillo que es instalar un sistema FWCloud y como podemos tenerlo totalmente operativo en cuestión de tan solo unos minutos.

Como ya indicamos en la sección descripción, FWCloud está constituido por dos módulos principales, la interfaz de usuario (FWCloud-UI) y el API REST (FWCloud-API) a través de la cual se llevan todas las acciones solicitadas por el usuario.

Formando parte de una instalación standard existen dos módulos adicionales:

  • FWCloud-Websrv: Servidor web para la descarga de FWCloud-UI y proxy para las peticiones a FWCloud-API.
  • FWCloud-Updater: Permite la actualización del resto de módulos. Las peticiones de actualización son reenviadas desde FWCloud-API a FWCloud-Updater.

Cuando un usuario accede a una plataforma FWCloud, lo primero que hace es descargar la interfaz de usuario (FWCloud-UI) utilizando para ello un navegador web (Chrome, Firefox, etc.) y accediendo a la URL de acceso a FWCloud que puede ser, por ejemplo, https://ui.fwcloud.net:3030 (no tiene porque ser un nombre de dominio, puede ser también una dirección IP). Esta URL nos permitirá comunicar con el servidor web FWCloud-Websrv a través del cual se descargará hasta el terminal del usuario la aplicación FWCloud-UI programada en Angular.

Una vez descargada esta aplicación en nuestro navegador web, empezará a ejecutarse mostrándonos la pantalla de login. A partir de este momento, cualquier acción que llevemos a cabo sobre FWCloud-UI (por ejemplo, completar el proceso de login) se llevará a cabo utilizando FWCloud-API, a la cual FWCloud-UI puede acceder de dos maneras diferentes.

 

FWCloud-Install-01
FWCloud-Install-02

Acceso al API en modo directo:

FWCloud-UI se conecta directamente al servidor en donde se está ejecutando el Node para el API a través de la URL del API, por ejemplo, https://api.fwcloud.net:3131

En este modo de acceso es muy importante tener presente que, una vez FWCloud-UI está ejecutándose en nuestro navegador, este tiene que tener acceso directo a la URL del API para poder funcionar correctamente. Es decir, desde nuestro terminal de usuario, tenemos que disponer de acceso a la URL del API para que FWCloud-UI pueda funcionar correctamente.

Como veremos más adelante, esta modalidad de funcionamiento tiene el inconveniente de que precisamos certificados TLS válidos para que el navegador no de problemas a la hora de acceder al API desde la aplicación FWCloud-UI.

FWCloud-Install-03

Acceso al API en modo proxy:

En este modo de acceso al API la interfaz de usuario no conecta directamente al API, lo hace a través del mismo servidor web (FWCloud-Websrv) desde el cual hemos descargado FWCloud-UI.

FWCloud-Websrv actúa como un proxy reenviando todas las URLs que empiecen con /api/ o /socket.io/ hacia FWCloud-API.

Esta modalidad de acceso tiene la ventaja de que no precisamos que el terminal de usuario tenga permisos de acceso directo a la URL del API, con que disponga de acceso al servidor web donde se encuentra FWCloud-UI es suficiente.

Es la opción de instalación por defecto y la que se implanta cuando se utiliza el script FWCloud-Installer para instalar desde cero una nueva plataforma FWCloud.

Por lo tanto, para nuestra instalación FWCloud vamos a tener dos URLs principales:

  • URL de acceso a FWCloud-UI. A través de la cual vamos a poder descargar y ejecutar la interfaz de usuario en nuestro navegador web.

  • URL de acceso a FWCloud-API. Utilizada por FWCloud-UI para llevar a cabo todas las tareas (login, gestión de firewalls, gestión de VPNs, etc.) que es posible hacer con el sistema FWCloud. En el caso de acceso en modo proxy, si el API se está ejecutando en el mismo servidor que el servidor web (FWCloud-Websrv) a través del cual descargamos FWCloud-UI, esta URL puede ser https://localhost:3131.

No es preciso que estas URLs sean nombres de dominio, pueden ser IPs con certificados TLS auto firmados para garantizar la seguridad de las comunicaciones.

No obstante tenemos que tener muy presente que si utilizamos certificados auto firmados el navegador nos presentará un mensaje de advertencia indicando que estamos accediendo a un sitio no seguro y, además, en Firefox la comunicación FWCloud-UI con FWCloud-API en modo directo no funcionará porque el navegador no lo va a permitir debido a sus directivas de seguridad.

Por lo tanto, para el acceso al API en modo directo lo más recomendable es utilizar para ambas URLs nombres de host con sus correspondientes certificados emitidos por una autoridad certificadora válida como pueden ser los certificados gratuitos generados a través de Let’s Encrypt.

En lo que respecta a los modos de acceso al API es más recomendable utilizar el modo proxy, dado que simplifica la interacción con esta desde el terminal de usuario, además que evita problemas con certificados auto firmados, tales como los que hemos comentado para el  navegador Firefox. 

Aclarado todo esto ya podemos pasar a explicar en detalle todo el proceso de instalación.

FWCloud-INSTALLER

Instalación mediante FWCloud-Installer.

FWCloud-Installer es un script shell que nos va a simplificar todo el proceso de instalación y nos va a permitir tener un servidor FWCloud totalmente operativo en cuestión de unos pocos minutos. 

Esta es la lista de distribuciones Linux soportadas por FWCloud-Installer:

  • Ubuntu
  • Debian
  • Red Hat
  • CentOS
  • Fedora
  • OpenSuse

Este script nos va a instalar un servidor FWCloud con las siguientes características:

  • La interfaz de usuario FWCloud-UI será accesible a través del servidor web FWCloud-Websrv.
  • Acceso al API en modo proxy.
  • Certificados TLS autofirmados para FWCloud-Websrv, FWCloud-API y FWCloud-Updater.
  • Acceso a la plataforma FWCloud mediante https y puerto 3030.
  • URL para FWCloud-API: https://localhost:3131
  • FWCloud-API comunicará con FWCloud-Updater mediante la URL: https://localhost:3132

Vamos a descargar FWCloud-Installer directamente desde GitHub utilizando el comando curl, por lo tanto, nos tenemos que asegurar de que este está instalado en nuestro servidor. Por ejemplo, para las distribuciones Linux Ubuntu y Debian, este es el comando que tenemos que utilizar para instalar el comando curl si no lo tenemos ya instalado.

$ sudo apt install curl -y

A continuación podemos ejecutar la siguiente cadena de comandos para ejecutar FWCloud-Installer:

$ curl -k -s https://raw.githubusercontent.com/soltecsis/fwcloud-installer/main/fwcloud-installer.sh -o ./fwcloud-installer.sh && sudo bash ./fwcloud-installer.sh && rm -f ./fwcloud-installer.sh

FWCloud-Installer iniciará el proceso de instalación a lo largo del cual llevará a cabo diversas comprobaciones para verificar que nuestro sistema cumple todos los requisitos para instalar FWCloud: instalará los paquetes necesarios, creará la base de datos, llevará a cabo las configuraciones necesarias, generará los certificados TLS autofirmados, etc.

El script nos planteará algunas cuestiones por si deseamos personalizar nuestra instalación. Por ejemplo, si nuestro servidor se encuentra detrás de un Proxy web, si queremos utilizar certificados TLS, etc.

Por norma general, los valores por defecto para estas cuestiones suelen ser correctos.

Si lanzamos FWCloud-Installer sobre un servidor en el cual existe ya una instalación FWCloud, el script intentará actualizar esta. La actualización es posible realizarla desde la interfaz de usuario, por lo tanto, no es necesario utilizar el script para dicha tarea.

Una vez completado el proceso de instalación de forma satisfactoria se nos presentará un resumen con los datos que tenemos que utilizar para acceder a nuestra plataforma FWCloud recién instalada.

Lo único que tenemos que hacer es utilizar nuestro navegador web para acceder a la URL indicada utilizando los datos de acceso por defecto:

Código de cliente: 1
Nombre de usuario: fwcadmin
Contraseña: fwcadmin

Una vez completada la instalación podemos utilizar el comando systemctl para parar, arrancar o ver el estado de los distintos servicios que forman parte de una plataforma FWCloud: FWCloud-Websrv, FWCloud-API y FWCloud-Updater.

$ sudo systemctl status fwcloud-api
fwcloud-api.service – FWCloud-API
  Loaded: loaded (/etc/systemd/system/fwcloud-api.service; disabled; vendor preset: enabled)
  Active: active (running) since Fri 2019-06-07 14:58:01 UTC; 8s ago
Main PID: 14359 (node)
   Tasks: 11 (limit: 1109)
  CGroup: /system.slice/fwcloud-api.service
          └─14359 /usr/bin/node /opt/fwcloud-api/bin/www

Jun 07 14:58:01 fwcloud-vm systemd[1]: Started FWCloud-API.