La automatización de las tareas de configuración e instalación permite ahorrar tiempo y recursos, además de eliminar el riesgo asociado con el error humano.
Creación de Máquinas Virtuales (Servidores)
MaadiX utiliza diferentes 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.
MaadiX ha adaptado la manera en que se implementan estas tecnologías para beneficiarse de sus 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.
Las tecnologías utilizadas son 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 desplegados. [+ 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].
¿Qué incluyen los servidores instanciados con Maadix?
En los servidores se instala Debian 10 (Buster) 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 se pueden instalar de forma automática desde la interfaz gráfica, hay una serie de software y servicios que se instalan por defecto. Aquí hay un listado de los principales: Apache, MariaDB, Let's Encrypt, PostFix, DoveCot, Fail2ban, SSH. OpenLDAP, Monit...
Además se instala el panel de control que permite administrar los servicios y las aplicaciones. Se trata de una herramienta desarrollada por MaadiX y que permite la gestión de cuentas, permisos, dominios, configuraciones, 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 servidores tienen instalado OpenLDAP. El directorio LDAP contiene datos sobre cuentas de sistema, 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.
Autenticación
La autenticación se lleva a cabo a través del módulo pam_ldap para servicios como OpenVPN, SSH y Apache o a través de dovecot SASL para el servidor de correo. El sistema buscará la cuenta en el directorio LDAP, comprobando que las credenciales sean correctas y que tenga autorización para el servicio solicitado. De esta forma, 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).
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.