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.

PAQUETES DEB/RPM

Instalación mediante Paquetes DEB/RPM.

La opción más sencilla para tener operativa nuestra propia plataforma FWCloud en cuestión de unos pocos minutos es utilizar los paquetes DEB o RPM disponibles en nuestro repositorio PackageCloud.

Para una distribución basada en paquetes DEB com Ubuntu o Debian tan solo tenemos que ejecutar los siguientes comandos:

curl -s https://packagecloud.io/install/repositories/SOLTECSIS/FWCloud/script.deb.sh?any=true | sudo bash

sudo apt -y install nodejs npm mariadb-server

sudo apt -y install fwcloud-api fwcloud-ui

Y para una distribución basada en paquetes RPM como Fedora o Rocky el proceso es muy similar:

curl -s https://packagecloud.io/install/repositories/SOLTECSIS/FWCloud/script.rpm.sh?any=true | sudo bash

sudo dnf -y remove firewalld

sudo dnf -y install nodejs mariadb-server

sudo systemctl enable mariadb && sudo systemctl start mariadb

sudo dnf -y install fwcloud-api fwcloud-ui

El primer comando sirve para añadir nuestro repositorio PackageCloud a la distribución Linux en la cual deseamos instalar FWCloud. Los siguientes comandos instalan los paquetes necesarios.

Es importante tener en cuenta que no es obligatorio instalar Node.js mediante los paquetes oficiales para la distribución Linux, podemos instalarlo también a mano para disponer de la última versión de Node.js.

En relación al motor de bases de datos podemos utilizar tanto MySQL como MariaDB.

Una vez completado el proceso de instalación de los paquetes lo único que tenemos que hacer para acceder a nuestra instancia FWCloud es utilizar un navegador con los siguientes datos:

URL: https://IP_SERVIDOR:3030

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-API y FWCloud-UI.

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

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.

DOCKER COMPOSE

Instalación mediante Docker Compose.

Cada vez que publicamos una nueva versión de los distintos módulos que componen FWCloud se genera automáticamente la correspondiente imagen Docker dentro de nuestra cuenta en DockerHub

Esto permite ejecutar FWCloud de un modo muy sencillo como una aplicación Dockerizada. Para facilitar el uso de la versión Dockerizada de FWCloud hemos creado un fichero Docker Compose en nuestro repositorio GitHub fwcloud-docker

Por lo tanto, si tiene Docker y Docker Compose instalados, tan solo tiene que ejecutar la siguiente secuencia de comandos para empezar a utilizar FWCloud:

$ curl -k -s https://raw.githubusercontent.com/soltecsis/fwcloud-docker/main/docker-compose.yml -o ./docker-compose.yml && docker-compose up

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

URL: https://localhost:3030

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

Para actualizar los contenedores Docker cuando haya disponibles nuevas versiones de FWCloud, tan solo tenemos que utilizar la siguiente secuencia de comandos:

$ docker-compose down && docker-compose pull && docker-compose up