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.

Normalmente cuando un usuario accede a un servidor FWCloud, lo primero que hace es descargar la interfaz de usuario utilizando para ello un navegador web (Chrome, Firefox, etc.) y accediendo a la URL de acceso que puede ser, por ejemplo, https://ui.fwcloud.net (no tiene porque ser un nombre de dominio, puede ser también una dirección IP). Esta URL nos llevará a un servidor web (Node.js, Nginx, Apache, etc.) desde el 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.

 

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:3000

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.

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 desde el cual hemos descargado FWCloud-UI.

Para ello se configura el servidor web de tal modo que todas las URLs que empiecen con /api/ o /socket.io/ sean retransmitidas por el propio servidor web al servidor en donde se encuentra ejecutándose el 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.

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

  • 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 a través del cual descargamos FWCloud-UI, esta URL puede ser https://localhost:3000.

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. 

También tenemos que tener presente que podemos tener los dos componentes principales FWCloud-UI y FWCloud-API en servidores distintos, no es preciso que se instalen sobre el mismo servidor.

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 mismo servidor Node.js que se utiliza para FWCloud-API.
  • Acceso al API en modo proxy.
  • Certificados TLS autofirmados.

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

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

$ curl -k -s https://raw.githubusercontent.com/soltecsis/fwcloud-installer/master/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 no existe ya, el motor de bases de datos a instalar (MySQL o MariaDB), el directorio de instalación, etc.

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

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 nuestro servidor FWCloud recién instalado.

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 nuestro servidor FWCloud.

$ 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.