Configuración On Premise

Arquitectura

Esta guía le ayudará a instalar su propia infraestructura de Pandora RC. Para familiarizarse con la aplicación y la arquitectura de eHorus consulte “Introducción a Pandora RC”.

La documentación hace referencia en todo momento a eHorus, que es el antiguo nombre de Pandora RC. Por compatibilidad y para minimizar los errores, no se han modificado paths, nombres de archivos, ficheros de configuración, etcétera, por lo que se seguirá usando el nombre antiguo a nivel técnico.

Visión general

A continuación se muestra un esquema general de la arquitectura y el flujo de datos de Pandora RC, así como los puertos en los que escuchan los diferentes servicios.

  1. Provisión y mensajes de actualización de estado.
  2. Conexión del agente al servidor de Pandora RC.
  3. Autenticación de clientes y agentes a través del API del directorio (ver 7).
  4. Conexión del cliente (navegador web) al portal.
  5. Llamadas al API del directorio.
  6. Conexión del cliente (JavaScript) al servidor de Pandora RC.
  7. Autenticación de clientes y agentes a través del API del directorio (ver 3).
  • Pandora RC Agent: Software que se instala en el equipo remoto y permite al acceso a éste, disponible para MS Windows®, GNU/Linux® y Mac OS X®.
  • Pandora RC Server: Gestiona las conexiones entre los equipos remotos (Pandora RC Agent) y los usuarios (Pandora RC Client).
  • Pandora RC Client: Aplicación JavaScript que se conecta al servidor de Pandora RC y permite interactuar con el equipo remoto. Se ejecuta a través de una interfaz WEB en un navegador.

  • Pandora RC Portal: Aplicación web que permite gestionar equipos remotos, usuarios, grupos, y ejecutar Pandora RC Client.

  • Pandora RC Directory: Gestiona los datos de la aplicación y el control de acceso a los equipos remotos. Se comunica con el resto de elementos mediante una API REST.
  • MySQL Server: Almacena los datos del directorio y el portal.

Provisión de agente

El agente se conecta por HTTPS al directorio y recibe su clave de eHorus, un HASH de autenticación, y un servidor de Pandora RC (ver el apartado Asignación de Servidores) si no se ha especificado uno en el fichero de configuración, es decir, si eh_address está comentado.

Conexión de agente

  • El agente se conecta al servidor de Pandora RC y envía la clave y el HASH.
  • El servidor valida la clave y el HASH a través del API del directorio. Si no son válidas, cierra la conexión. En caso contrario, el agente se asocia a la clave de eHorus suministrada.

Conexión de cliente

  • El usuario inicia sesión en el portal. Selecciona el agente al que desea conectarse y el navegador descarga el cliente (JavaScript).
  • El cliente se conecta al servidor y envía la clave del agente y un token de autenticación proporcionado por el portal.
  • El servidor valida la clave y el token de autenticación a través del API del directorio. Si no son válidos, cierra la conexión. En caso contrario, el cliente se conecta al agente de Pandora RC especificado.

Balanceo de servidores

El balanceo de servidores está disponible a partir de la versión 1.1.0 del agente de Pandora RC, siempre que eh_balancing esté a 1 en el fichero de configuración.

  • El agente se conecta por HTTPS al directorio y recibe un nuevo servidor(*) que reemplazará al actual (ver el apartado Asignación de Servidores).
  • El agente conecta a su servidor de Pandora RC asignado.

(*) Puede recibir más de un servidor para mantener una cache local que utilizará la próxima vez que lo necesite.

Asignación de servidores

Tanto en la provisión como en el balanceo, la asignación de servidores se realizará de una de las siguientes maneras:

  • Por zonas: Si el usuario asignado al agente tiene asignada una zona, se seleccionarán uno o varios servidores al azar que pertenezcan a dicha zona (las zonas son etiquetas asignadas de forma manual por el administrador, no tienen por qué corresponder a una misma zona geográfica).
  • Por geolocalización: Si el usuario asignado al agente no tiene asignada una zona, se seleccionarán uno o varios servidores al azar que pertenezcan a la región geográfica más cercana al agente (actualmente, la resolución es a nivel de país).
  • Servidor por defecto: Si el resto de estrategias fallan, se asignará el servidor que el administrador haya configurado por defecto en el portal de eHorus.

Requisitos previos

Idealmente, dispondrá de tres hosts para instalar el directorio, el portal y el servidor de Pandora RC con al menos 4 GB de RAM. Si lo desea puede utilizar un host adicional para la base de datos del directorio.

Para entornos con menos de 100 agentes, es posible instalar todos los componentes en un único servidor siempre que se eviten conflictos entre los puertos de los distintos componentes. Se recomienda que tenga al menos 4 GB de memoria RAM.

Ninguno de los componentes de Pandora RC hace un uso intensivo de la CPU.

Antes de comenzar la instalación asegúrese de haber obtenido los siguientes ficheros:

ehorus-directory-1.0.0.tgz
ehorus-portal-1.0.0.tgz
ehorus-server-1.0.0.tgz

Se utilizará como ejemplo la versión 1.0.0, si su versión es distinta ajuste los comandos que se muestran en esta guía según sea necesario. Por ejemplo:

tar zxvf ehorus-directory-1.0.1.tgz

en vez de:

tar zxvf ehorus-directory-1.0.0.tgz.

La instalación de los distintos componentes de eHorus se llevará a cabo sobre un sistema CentOS versión 7, Rocky 8 o RHEL 8. Si utiliza otro sistema operativo puede que el resultado no sea el esperado.

Todos los comandos se ejecutarán con el usuario root.

También deberá haber recibido un número de identificación necesario para obtener su licencia de Pandora RC.

Además, deberá disponer de certificados X.509 válidos para cifrar las comunicaciones entre el directorio, el portal y el servidor.

En caso de duda contacte con su proveedor de licencia de Pandora RC.

Instalación de Node.js y NGINX

Pandora RC Directory y Pandora RC Portal necesitan el entorno Node.js para ejecutarse. En ésta guía se utiliza el servidor web NGINX para acceder a dichas aplicaciones.

En los hosts del directorio y el portal, ejecute los siguientes comandos:

yum install -y epel-release
yum install -y gcc-c++ make nginx nodejs npm
npm install --global yarn
npm install --global pm2

Instalación de MariaDB

En el hosts del directorio, ejecute los siguientes comandos:

yum -y install mariadb-server mariadb
systemctl start mariadb
systemctl enable mariadb

A continuación se procede a crear la base de datos de eHorus:

echo "CREATE DATABASE ehorus;" | mysql -u root

A continuación sustituya la cadena STRONG PASSWORD por una contraseña fuerte y cree el usuario ehorus:

echo "GRANT ALL PRIVILEGES ON *.* TO 'ehorus'@'localhost' \
IDENTIFIED BY 'STRONG PASSWORD' WITH GRANT OPTION;" | mysql -u root
echo "FLUSH PRIVILEGES;" | mysql -u root

Por último, configure una contraseña para el usuario root de MariaDB (consulte la documentación de MariaDB en caso de duda):

mysql_secure_installation

Instalación del directorio de eHorus

Ejecute los siguientes comandos:

mkdir -p /etc/ehorus /var/log/{ehorus-directory,ehorus-directory-clean-db}

Descomprima el fichero ehorus_server_1.0.0.tgz:

tar zxvf ehorus-directory-1.0.0.tgz

Instale las dependencias del directorio:

yum groupinstall -y 'Development Tools'
yum install -y npm
mv package /opt/ehorus_directory
cd /opt/ehorus_directory
yarn install

Cree la base de datos del directorio (necesitará la contraseña que utilizó al crear el usuario ehorus en la base de datos):

cd /opt/ehorus_directory
cat db/schema/1-tables.sql | mysql -u ehorus -p ehorus
cat db/schema/2-rows.sql | mysql -u ehorus -p ehorus

Genere dos cadenas aleatorias para la configuración del directorio. Por ejemplo, utilizando el siguiente comando:

cat /dev/urandom | tr -c -d A-Za-z | fold -w 16 | head -1
cat /dev/urandom | tr -c -d A-Za-z | fold -w 16 | head -1

Cree el fichero /etc/ehorus/ehorus-directory.pm2.json con el siguiente contenido, sustituyendo cada instancia de la cadena '1234567890' por una cadena aleatoria distinta generada en el paso anterior. El valor de JWT_SECRET será necesario más adelante para instalar el portal. Sustituya USER@DOMAIN por una dirección de correo electrónico válida que Pandora FMS asociará con su licencia de Pandora RC:

{
  "apps": [
    {
      "name": "ehorus-directory",
      "script": "server.js",
      "cwd": "/opt/ehorus_directory",
      "env": {
        "NODE_ENV": "development",
        "PORT": 3000,
        "JWT_SECRET": "1234567890",
        "EKID_SECRET": "1234567890",
        "DB_CONF_PATH": "/etc/ehorus/ehorus-directory.db-config.json"
      },
      "env_production": {
        "NODE_ENV": "production"
      },
      "error_file": "/var/log/ehorus-directory/stderr.log",
      "out_file": "/var/log/ehorus-directory/stdout.log",
      "merge_logs": true,
      "min_uptime": "20s",
      "max_restarts": 20,
      "max_memory_restart": "200M",
      "autorestart": true,
      "restart_delay": 0
    },
    {
      "name": "ehorus-directory-clean-db",
      "script": "clean-db.js",
      "cwd": "/opt/ehorus_directory/tools",
      "env": {
        "DB_CONF_PATH": "/etc/ehorus/ehorus-directory.db-config.json"
      },
      "args": "-i",
      "error_file": "/var/log/ehorus-directory-clean-db/stderr.log",
      "out_file": "/var/log/ehorus-directory-clean-db/stdout.log",
      "merge_logs": true,
      "min_uptime": "20s",
      "max_restarts": 20,
      "max_memory_restart": "100M",
      "autorestart": true,
      "restart_delay": 1
    }
  ]
}

Cree el fichero /etc/ehorus/ehorus-directory.db-config.json con el siguiente contenido. Sustituya la cadena STRONG PASSWORD por la contraseña que utilizó al crear el usuario ehorus en la base de datos:

 {
   "host": "127.0.0.1",
   "user": "ehorus",
   "password": "STRONG PASSWORD",
   "port": 3306,
   "database": "ehorus",
   "debug": false
 }

Cree el fichero /etc/ehorus/ehorus-directory.smtp-config.json con el siguiente contenido. Introduzca los parámetros correctos para su servidor SMTP (consulte la documentación de Nodemailer para más información):

 {
   "debug": false,
   "logger": false,
   "host": "127.0.0.1",
   "port": 465,
   "auth": {
     "user": "USERNAME",
     "pass": "PASSWORD"
   }
 }

Para instalar el servicio, ejecute el siguiente comando:

pm2 start --env production /etc/ehorus/ehorus-directory.pm2.json
pm2 startup
pm2 save

Copie el certificado del host y el fichero de clave pública en /etc/ehorus/ehorus_directory.crt y /etc/ehorus/ehorus_directory.key respectivamente.

Para configurar NGINX cree el fichero /etc/nginx/conf.d/ehorus_directory.conf con el contenido que se muestra a continuación. Sustituya la cadena FQDN por el nombre de dominio completo del host. Consulte la documentación de NGINX se desea personalizar la configuración:

 upstream ehorus_directory {
     server 127.0.0.1:3000;
 }
 
 server {
     listen       443 ssl;
     server_name  FQDN;
 
     # Add Strict-Transport-Security to prevent man in the middle attacks
     add_header Strict-Transport-Security "max-age=31536000";
 
     ssl_certificate /etc/ehorus/ehorus_directory.crt;
     ssl_certificate_key /etc/ehorus/ehorus_directory.key;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_prefer_server_ciphers on;
     ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
 
     location / {
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection 'upgrade';
         proxy_set_header Host $host;
         proxy_cache_bypass $http_upgrade;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $remote_addr;
         proxy_pass http://ehorus_directory;
         proxy_redirect off;
     }
 }

Por último, reinicie NGINX:

service nginx restart

Instalación del portal de eHorus

Ejecute los siguientes comandos:

mkdir -p /etc/ehorus /var/log/ehorus-portal

Descomprima el fichero ehorus_server_1.0.0.tgz:

tar zxvf ehorus-portal-1.0.0.tgz

Instale las dependencias del portal:

mv package /opt/ehorus_portal
cd /opt/ehorus_portal
yarn install
yarn run build

Genere una contraseña aleatoria para el usuario ehorus-api a crear a continuación:

cat /dev/urandom | tr -c -d A-Za-z | fold -w 48 | head -1

Cree el usuario ehorus-api en la aplicación, que utilizarán el portal y el servidor para hacer peticiones al directorio. Sustituya la cadena FQDN por el nombre de dominio completo del directorio y STRONG PASSWORD por la contraseña generada en el paso anterior:

LOGIN_TOKEN=$(curl -s --data "username=admin&password=admin" 'https://FQDN/login' | python -c 'import sys, json; print json.load(sys.stdin)["token"]')
curl -s -H "Authorization: JWT $LOGIN_TOKEN" --data "name=ehorus-api&password=STRONG PASSWORD&fullname=ehorus-api&[email protected]" 'https://FQDN/api/users'

En el host del directorio (éste es el único comando que deberá ejecutar fuera del host del portal) ejecute el siguiente comando. Necesitará la contraseña que utilizó al crear el usuario ehorus en la base de datos:

echo 'UPDATE users SET level="admin" WHERE user="ehorus-api"' | mysql -u ehorus -p ehorus

De vuelta al host del portal, genere un JSON Web Token para hacer peticiones desde el portal al directorio. Sustituya la cadena FQDN por el nombre de dominio completo del directorio y STRONG PASSWORD por la contraseña generada anteriormente para el usuario ehorus-api:

LOGIN_TOKEN=$(curl -s --data "username=ehorus-api&password=STRONG PASSWORD" 'https://FQDN/login' | python -c 'import sys, json; print json.load(sys.stdin)["token"]')
curl -s -H "Authorization: JWT $LOGIN_TOKEN" 'https://FQDN/api/token?audience=/users&expires=36000d' | python -c 'import sys, json; print json.load(sys.stdin)["token"]'

Cree el fichero /etc/ehorus/ehorus-portal.pm2.json con el siguiente contenido, sustituyendo __API_SECRET__ por el JSON Web Token generado en el paso anterior, __JWT_SECRET__ por el valor de JWT_SECRET utilizado en la instalación del directorio y __DIRECTORIO__ por el dominio completo del directorio de eHorus:

 {
   "apps": [
     {
       "name": "ehorus-portal",
       "script": "server",
       "cwd": "/opt/ehorus_portal",
       "env": {
         "NODE_ENV": "development",
         "PORT": 3001,
         "API": "https://__DIRECTORIO__",
         "API_SECRET": "__API_SECRET__",
         "JWT_SECRET": "__JWT_SECRET__",
         "MAIL_CONF_PATH": "/etc/ehorus/ehorus-portal.smtp-config.json",
       },
       "env_production" : {
          "NODE_ENV": "production"
       },
       "error_file": "/var/log/ehorus-portal/stderr.log",
       "out_file": "/var/log/ehorus-portal/stdout.log",
       "merge_logs": true,
       "min_uptime": "20s",
       "max_restarts": 20,
       "max_memory_restart": "200M",
       "autorestart": true,
       "restart_delay": 0
     }
   ]
 }

Cree el fichero /etc/ehorus/ehorus-portal.smtp-config.json con el siguiente contenido. Si desea recibir correos de eHorus introduzca los parámetros correctos en la sección smtp para su servidor SMTP (consulte la documentación de Nodemailer para más información):

 {
   "from": "PandoraRC <[email protected]>",
   "smtp": {
     "debug": false,
     "logger": false,
     "host": "127.0.0.1",
     "port": 465,
     "auth": {
       "user": "USERNAME",
       "pass": "PASSWORD"
     }
   }
 }

Para instalar el servicio, ejecute el siguiente comando:

pm2 start --env production /etc/ehorus/ehorus-portal.pm2.json
pm2 startup
pm2 save

Copie el certificado del host y el fichero de clave pública en /etc/ehorus/ehorus_portal.crt y /etc/ehorus/ehorus_portal.key respectivamente.

Para configurar NGINX cree el fichero /etc/nginx/conf.d/ehorus_portal.conf con el contenido que se muestra a continuación. Sustituya la cadena FQDN por el nombre de dominio completo. Consulte la documentación de NGINX se desea personalizar la configuración:

 upstream ehorus_portal {
     server 127.0.0.1:3001;
 }
 
 server {
     listen      80;
     server_name FQDN;
 
     return      301 https://$server_name$request_uri;
 }
 
 server {
     listen      443 ssl;
     server_name FQDN;
 
     # Add Strict-Transport-Security to prevent man in the middle attacks
     add_header Strict-Transport-Security "max-age=31536000";
 
     ssl_certificate /etc/ehorus/ehorus_portal.crt;
     ssl_certificate_key /etc/ehorus/ehorus_portal.key;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_prefer_server_ciphers on;
     ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
 
     location / {
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection 'upgrade';
         proxy_set_header Host $host;
         proxy_cache_bypass $http_upgrade;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $remote_addr;
         proxy_pass http://ehorus_portal;
         proxy_redirect off;
     }
 }

Por último, reinicie NGINX:

service nginx restart

Instalación del servidor de eHorus

Descomprima el fichero ehorus_server-1.0.0.tgz:

tar zxvf  ehorus-server-1.0.0.tgz

Ejecute el instalador:

cd ehorus_server-0.1.0
./ehorus_server_installer --install

A continuación deberá obtener una licencia válida. Para ello, diríjase a este enlace, introduzca el número de identificación que ha recibido de Pandora FMS en el campo Auth Key, y en el campo Request Key (from Pandora RC) el dominio completo del directorio de Pandora RC. Este valor deberá coincidir con el dominio que figure en el certificado X509 que instale en el directorio (por ejemplo directory.pandorafms.com). Por último, haga clic en el botón Generate y guarde en un lugar seguro la licencia que aparecerá en License Key.

Genere un JSON Web Token para hacer peticiones desde el servidor al directorio. Sustituya la cadena FQDN por el nombre de dominio completo del directorio y STRONG PASSWORD por la contraseña generada durante la instalación del portal para el usuario ehorus-api:

LOGIN_TOKEN=$(curl -s --data "username=ehorus-api&password=STRONG PASSWORD" 'https://FQDN/login' | python -c 'import sys, json; print json.load(sys.stdin)["token"]')
curl -s -H "Authorization: JWT $LOGIN_TOKEN" 'https://FQDN/api/token?audience=/stats&expires=36000d' | python -c 'import sys, json; print json.load(sys.stdin)["token"]'

A continuación edite el fichero de configuración /etc/ehorus/ehorus_server.conf y modifique los siguientes parámetros:

license: Borre el carácter de comentario (#) e introduzca la licencia que obtuvo en el paso anterior (no la escriba entre comillas). Por ejemplo:

 license 1234567890

ssl_cert: Path absoluto al certificado X.509 del servidor. Por ejemplo:

ssl_cert /etc/ehorus/ehorus_cert.pem

ssl_key: Path absoluto al fichero de clave del certificado X.509 del servidor. Por ejemplo:

ssl_cert /etc/ehorus/ehorus_key.pem

eh_auth_token: JSON Web Token generado en el paso anterior. Por ejemplo:

eh_auth_token 1234567890

Inicie de forma manual el servidor de eHorus para comprobar que la configuración es correcta:

ehorus_server -f /etc/ehorus/ehorus_server.conf

Detenga el servidor de eHorus y inicielo como un servicio:

service ehorus_server start

Entre en el portal de eHorus https://FQDN del portal/ con el usuario admin (contraseña admin), y haga clic en Servers:

Introduzca la siguiente información:

  • Name: Nombre del servidor. Es meramente descriptivo.
  • Address: En blanco. No es necesaria en instalaciones On Premise.
  • Domain: Dominio completo del servidor de eHorus.
  • Zones: Zona asignada al servidor de eHorus (opcional).

A los agentes de eHorus se les asigna un servidor de eHorus cuando se provisionan (por ejemplo, cuando reciben un nuevo hash del directorio de eHorus).

A partir de la versión 1.1.0, el agente de eHorus puede pedir un nuevo servidor al directorio de eHorus si no puede conectar al servidor que tiene asignado (eh_balancing tiene que estar a 1 en el fichero de configuración del agente).

En ambas situaciones, los servidores se eligen siguiendo la siguiente estrategia:

  • Balanceo basado en zonas: Si el usuario asignado al agente de eHorus pertenece a una zona, se elige un servidor de dicha zona al azar.

  • Balanceo basado en geo-localización: Si el usuario asignado al agente de eHorus no pertenece a ninguna zona, se elige un servidor al azar del país más cercano.
  • Servidor por defecto: Si todo lo demás falla, se devuelve el servidor configurado como default.

Las zonas se gestionan desde la sección zones del portal de eHorus:

Consideraciones adicionales

  • Se recomienda cambiar la contraseña del usuario admin en el portal desde la sección Users.
  • Se recomienda el uso de cortafuegos en todos los hosts. Si ha seguido esta guía, necesitará acceder a los puertos 443 del portal y el directorio y 443 y 8080 del servidor de eHorus.

Existen dos parámetros que se podrán configurar en el entorno para distintos propósitos:

  • Modo desarrollo/producción: se podrá configurar el portal de dos modos: desarrollo y producción. El primer modo es adecuado para tareas de desarrollo y pruebas, de modo que los cambios introducidos en los ficheros del portal tendrán efecto inmediato. Bajo el segundo modo, los cambios introducidos en los ficheros del portal no tendrán efecto a menos que se ejecuten, en orden, los siguientes comandos:
pm2 delete ehorus-portal
pm2 start --env production /etc/ehorus/ehorus-portal.pm2.json
yarn run build

Para pasar a modo producción debemos ejecutar en el portal el siguiente comando:

yarn run build
  • Hash history: este valor deberá ser activado para el correcto funcionamiento del entorno en caso de que tengamos el directorio y el portal en el mismo puerto.

Podremos activar esta característica en el fichero de configuración del portal:

/etc/ehorus/ehorus-portal.pm2.json

Para ello deberemos establecer como 0/1 los valores correspondientes al token de configuración HASH_HISTORY, pudiendo distinguir en cada caso para el modo de desarrollo y el modo producción:

 "env": {
  "NODE_ENV": "development",
   ...
   "HASH_HISTORY": 1
 },
 "env_production" : {
   "NODE_ENV": "production",
   ...
   "HASH_HISTORY": 1
  },
 }

Una vez modificado este valor, se deberá ejecutar en el portal el comando:

npm run build

Primeros pasos

Una vez instalada la infraestructura puede comenzar a instalar los agentes de eHorus en los equipos que quiera administrar de forma remota. Para ello consulte de nuevo la Configuraciones avanzadas.

Anexos

Personalización del portal

Guarde una copia de seguridad de sus personalizaciones, ya que se pueden perder si actualiza el software.

Correos electrónicos

Las plantillas de los correos electrónicos que envía el portal de eHorus se encuentran en el directorio ehorus_portal/server/mailer/templates. Para cada correo electrónico existe una versión en texto plano en el subdirectorio text, y otra en HTML en el subdirectorio html.

Las plantillas se cargan en memoria, por lo que será necesario reiniciar el portal con el comando que se muestra a continuación si se modifican:

pm2 restart ehorus-portal

Las plantillas soportan macros, escritas entre llaves dobles (por ejemplo {{email}}), que el portal de eHorus sustituirá por el valor adecuado antes de enviar un correo electrónico.

Pantalla de bienvenida

  • HTML: /opt/ehorus_portal/server/mailer/templates/html/welcome.html
  • Texto plano: /opt/ehorus_portal/server/mailer/templates/text/welcome.txt

Macros soportadas:

  • {{host}}: Dominio completo del portal de eHorus.
  • {{email}}: Dirección a la que se envía el correo electrónico.
  • {{user}}: Nombre del usuario al que se le envía el correo electrónico.
  • {{name}}: Nombre completo del usuario al que se le envía el correo electrónico.

Reinicio de contraseña

  • HTML: /opt/ehorus_portal/server/mailer/templates/html/password-reset.html
  • Texto plano: /opt/ehorus_portal/server/mailer/templates/text/password-reset.txt

Macros soportadas:

  • {{host}}: Dominio completo del portal de eHorus.
  • {{email}}: Dirección a la que se envía el correo electrónico.
  • {{user}}: Nombre del usuario al que se le envía el correo electrónico.
  • {{name}}: Nombre completo del usuario al que se le envía el correo electrónico.
  • {{token}}: El JSON Web Token utilizado para autorizar la operación de cambio de contraseña.

Cambio de contraseña

  • HTML: /opt/ehorus_portal/server/mailer/templates/html/password-changed.html
  • Texto plano: /opt/ehorus_portal/server/mailer/templates/text/password-changed.txt

Macros soportadas:

  • {{host}}: El dominio completo del portal de eHorus.
  • {{email}}: Dirección a la que se envía el correo electrónico.
  • {{user}}: Nombre del usuario al que se le envía el correo electrónico.
  • {{name}}: Nombre completo del usuario al que se le envía el correo electrónico.

Cambio de correo electrónico

  • HTML: /opt/ehorus_portal/server/mailer/templates/html/email-changed.html
  • Texto plano: /opt/ehorus_portal/server/mailer/templates/text/email-changed.txt

Macros soportadas:

  • {{host}}: El dominio completo del portal de eHorus.
  • {{oldEmail}}: Anterior dirección de correo electrónico.
  • {{email}}: Nueva dirección de correo electrónico.
  • {{user}}: Nombre del usuario al que se le envía el correo electrónico.
  • {{name}}: Nombre completo del usuario al que se le envía el correo electrónico.

Configuración del correo

La configuración para la biblioteca mailer debe ser un archivo JSON con esta forma:

 json
 {
   "from": "PandoraRC <[email protected]>",
   "smtp": {
      // SMTP Transport options
   }
 }

Hay un archivo de configuración por defecto en el directorio mailer (ehorus_portal/server/mailer/config.json). Para utilizar otro archivo, la ruta debe pasarse utilizando la variable de entorno MAIL_CONF_PATH cuando inicie el servidor _eHorus Portal_.

Assets

Si se realizan cambios en los ficheros que se muestran en este apartado ejecute el siguiente comando para que se copien al directorio /opt/ehorus_portal/build:

cd /opt/ehorus
npm run build

Logotipo

Para cambiar el logotipo del portal de eHorus reemplace los siguientes ficheros ehorus_portal/assets/images/logo.png y ehorus_portal/assets/images/logo-grey.png.

CSS

Portal

Los ficheros CSS del portal de eHorus están en el directorio /opt/ehorus_portal/assets/css.

Para los estilos generales utiliza Bulma y para los iconos Font Awesome. Las fuentes se encuentran en el directorio /opt/ehorus_portal/assets/fonts.

También se pueden sobrescribir estilos utilizando un fichero CSS personalizado y modificando el fichero /opt/ehorus_portal/assets/index.html para incluirlo.

Cliente

Los ficheros CSS del cliente de eHorus están en el directorio /opt/ehorus_portal/assets/client/css.

Para los estilos generales utiliza Bootstrap y para los iconos xterm.js. Las fuentes se encuentran en el directorio /opt/ehorus_portal/assets/client/fonts.

También se pueden sobrescribir estilos utilizando un fichero CSS personalizado y modificando el fichero /opt/ehorus_portal/assets/index.html para incluirlo.

URL

Alta de usuarios

La URL para dar de alta a un usuario que se muestra en la pantalla de inicio se puede cambiar colocando en la variable de entorno URL_CREATE_ACCOUNT la URL deseada antes de ejecutar el comando npm run build. Por ejemplo:

cd /opt/ehorus_portal
CREATE_ACCOUNT="https://localhost.localdomain/sign-up" npm run build

Generación de certificados

Si desea generar su propio certificados X.509, genere primero el certificado de la CA:

mkdir /etc/pki/CA/newcerts
mkdir /etc/pki/CA/private
touch /etc/pki/CA/index.txt
echo "01" >> /etc/pki/CA/serial
openssl genrsa -out /etc/pki/CA/private/cakey.pem
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out  /etc/pki/CA/cacert.pem

A continuación instale el certificado de la CA como un certificado raíz de confianza:

 yum install -y ca-certificates
 update-ca-trust force-enable
 cp /etc/pki/CA/cacert.pem /etc/pki/ca-trust/source/anchors/
 update-ca-trust extract

Por último, genere y firme el certificado para eHorus:

openssl genrsa -out ehorus.key
openssl req -new -key ehorus.key -out ehorus.req -days 36000
cat ehorus.req ehorus.key  > ehorus.pem
openssl ca -out ehorus.crt -in ehorus.pem

Para evitar que el portal de eHorus se muestre como una página insegura, consulte la documentación de su navegador para añadir el certificado de la recién creada CA (Véase https://wiki.mozilla.org/CA/AddRootToFirefox y https://wiki.mozilla.org/CA/AddRootToFirefox).

Otros parámetros

Agente

proxy_wpad

El agente de eHorus permite descubrir de forma automática la configuración del proxy utilizando el protocolo WPAD. Para ello hay que especificar la URL del fichero PAC de configuración, o bien auto para buscar dicho fichero por DHCP y DNS:

proxy_wpad <auto|URL>

terminal_export

Lista de definiciones de variables de entorno separadas por semicomas que estarán disponibles desde el terminal:

 terminal_export var1="value1";var2="value2";…

terminal_path

Lista de directorios separados por puntos y coma que se añadirán al PATH del terminal:

terminal_path dir1;dir2;…

Hay que tener cuidado con el caracter \ en MS Windows®, ya que se utiliza para escapar caracteres especiales.Por ejemplo, para c:\foo\bar se deberá escribir c:\\foo\\bar.

terminal_script

Comandos que se enviarán tal cual cuando se lance el terminal. Deben formar un script válido para la shell en la que se vayan a ejecutar (depende del SO en el que corra el agente):

terminal_script <script>

terminal_audit_commands

Si está a 1, se auditarán todos los comandos que introduzca el usuario (puede incluir información sensible como contraseñas).

terminal_audit_commands 1

access_method_override

Permite que el cliente pueda determinar el modo de acceso a las distintas secciones del agente, independientemente de lo que se haya configurado con la opción access_* correspondiente (por ejemplo, podría especificar always para evitar que el terminal pida confirmación al usuario si se ha especificado access_terminal request en el fichero de configuración del agente). Ver extraData.accessMethodOverride en el apartado del cliente.

 access_method_override 1

Cliente

extraData.externalID: <ID>

Si se defina esta propiedad al instanciar el cliente de eHorus, dicho identificador se añadirá a todos los mensajes de auditoría que generen los agentes a los que se conecte. Posteriormente se podrá utilizar para filtrar los mensajes de auditoría.

 extraData.externalID: 1

extraData.accessMethodOverride

Si se defina esta propiedad al instanciar el cliente de eHorus y access_method_override 1 se define en el fichero de configuración del agente, el cliente podrá especificar el modo de acceso (always, request, inform o disable) deseado para los distintos servicios del agente, independientemente de lo que se haya configurado a través de las opciones access_*.

 extraData.accessMethodOverride: 'always'

Documentación de la API

Toda la documentación técnica de la API se encuentra en el directorio, en el fichero de marcas ehorus_directory/README.md.