Tecnolgía Utilizada


Creación de Máquinas Virtuales (Servidores)

MaadiX utiliza varias tecnologías en el proceso de creación y configuración de los servidores.
Se trata de tecnologías muy consolidadas, utilizadas por grandes organizaciones, universidades y empresas para el control remoto de otros dispositivos de manera automatizada.

Esto permite a grandes organizaciones no tener que efectuar configuraciones e instalaciones de forma manual entrando en cada máquina de su red, ahorrando así tiempo y recursos, además de eliminar el riesgo asociado con el error humano.

MaadiX ha adaptado la manera en que se implementan estas tecnologías, para beneficiarse de estas ventajas en un entorno en el que los ordenadores remotos son independientes y toman decisiones. De esta forma, al contrario de lo que ocurre en una empresa u organización, Maadix pierde el control remoto sobre los servidores que crea, pero sigue disponible en el caso de que un cliente solicite una nueva instalación.

Actúa como un repositorio que además proporciona todas las instrucciones y los comandos necesarios para instalar y configurar las aplicaciones. Terminada la tarea, el servidor cliente cierra la comunicación con el repositorio de MaadiX, que ya no puede acceder.

Las tecnologías utilizadas son básicamente las siguientes;

  • OpenNebula: solución para crear nubes y administrar la virtualización. OpenNebula orquesta el almacenamiento, la red, los servicios de virtualización, así como el control y la seguridad de los servicios desplegadoss. [+ info]
  • Ansible: plataforma para configurar y administrar computadoras. Se comunica con los nodos vía SSH y puede ejecutar numerosas tareas de instalación y configuración. Por esto está categorizado como una herramienta de orquestación. En MaadiX se utiliza solo al momento de instanciar los servidores de los que viene sucesivamente eliminado. [+ info]
  • Puppet: herramienta diseñada para administrar la configuración de sistemas de forma declarativa. En MaadiX, Puppet actúa como si fuera un repositorio. Los nodos (servidores de los clientes) solicitan a este repositorio el software que desean y Puppet se encarga de que la configuración deseada se lleve a cabo. Puppet utiliza un paradigma de programación declarativo: se "declaran" un conjunto de condiciones indicando qué es lo que se desea obtener, sin necesidad de detallar los comandos específicos del sistema operativo [+ info]

Este esquema es una simplificación del proceso de creación de los servidores en MaadiX

Cómo funciona Maadix

¿Qué incluyen los servidores instanciados con Maadix?

En los servidores se instala Debian 8.4 (jessie) 3.16.0-4-amd64 y se virtualizan utilizando KVM como hypervisor. Los recursos que se asignan son variables, dependiendo de las necesidades del usuario (CPU, RAM, espacio en disco).

A parte de las aplicaciones que los usuarios pueden elegir instalar, hay una serie de software y servicios que se instalan por defecto. Aquí hay un listado de los principales:

  • Apache 2.4.10
  • MySQL 5.5.54
  • Let's Encrypt
  • PostFix 2.11.3
  • DoveCot 2.2.13
  • Fail2ban 0.8.13
  • SSH 6.7
  • OpenLDAP 2.4.40
  • Monit

Además se instala el panel de control para poder administrar los servicios y las aplicaciones. Se trata de una herramienta desarrollada por MaadiX y que permite la gestión de usuarios, permisos, dominios, cuentas VPN, instalaciones y actualizaciones desde un entorno gráfico.

Las tareas que se pueden llevar a cabo a través del panel de control son tareas avanzadas, que normalmente requieren altos privilegios en el sistema. Sin embargo, por cuestiones de seguridad, el panel de control no tiene estos privilegios. ¿Cómo funciona?

Todos los servidore tienen instalado OpenLdap. El directorio LDAP contiene datos sobre usuarios, dominios, cuentas de correo electrónico y aplicaciones

El panel de control es la interfaz gráfica para administrar este directorio, y el sistema sacará del mismo la información necesaria para su configuración. De esta forma, el panel de control no necesita los privilegios necesarios para escribir directamente esta información en el sistema.

Autentificación

La autentificación de los usuarios se lleva a cabo a través del módulo pam_ldap para servicios como OpenVpn, SSH y Apache o dovecot SASL para el servidor de correo. El sistema buscará el usuario en el directorio LDAP comprobando que las credenciales sean correctas y que tenga autorización para el servicio solicitado. De esta manera el control sobre los accesos permitidos en el sistema se centraliza y simplifica además de protegerse a través de un canal de transmisión seguro entre el servidor LDAP y los diferentes servicios con SSL (Secure Socket Layer).

Autentificación de usuarios para los servicios en MaadiX

Dominios

Para los dominios activados desde el panel de control se creará la configuración de Apache necesaria para que puedan ser accesibles desde cualquier navegador. El sistema preguntará periódicamente al directorio LDAP cuáles dominios tienen que estar habilitados y creará los virtual hosts correspondiente de manera automática. Por razones de seguridad siempre se activa el protocolo https para cada dominio o subdominio y se redirigen todas las peticiones a este protocolo por el puerto 443.

Creación vhosts de apache  para dominios en Maadix