1.2. ¿Qué es eBox?

eBox es una plataforma para el desarrollo y despliegue de servicios relacionados con la seguridad y trabajo en grupo para una red local. Es configurable a través de un interfaz web que integra todos los servicios de una manera consistente y fácil de usar. El objetivo es que pueda ser usada por personas no expertas.

eBox está orientada a instalarse sobre una máquina dedicada, todas las tareas de configuración son realizadas a traés de la interface web de eBox. Esto significa que la configuración de los servicios subyacentes es unidireccional: los módulos eBox generan ficheros de configuración, en algunos casos sobreescriben ficheros del sistema (aunque esto tiende a ser evitado en la medida de lo posible) y cambios a mano sobre esos ficheros no son detectados por eBox. Esto simplifica la implementación y uso del paquete pero tiene la desventaja de que los desarrolladores deben tener cuidado si usan su propio sistema para pruebas.

El diseño de eBox es modular, los nuevos módulos que proporcionan nuevos servicios y funcionalidades pueden ser desarrollados independientemente del paquete base. eBox simplifica el despliegue de nuevos módulos y la actualización de los ya existentes mediante un módulo de gestón de software, el cual es también a su vez independiente del paquete base eBox.

El sistema está basado en Linux y ha sido desarrollado sobre Debian, como hay algún "debianismo" sobre algún módulo, no se ofrece soporte sobre otras distribuciones Linux. Portar eBox a otras distribuciones Linux debería ser sencillo sobre otros sistemas operativos Unix como OpenBSD puede tomar un poco mas de trabajo pero debería seguir siendo factible.

eBox está basada en unos pocos paquetes de software, los cuales son usados para diferentes propósitos:

Linux 2.6

eBox hace uso de algunas características ofrecidas por el kernel, algunas de ellas están disponibles sólo en la serie 2.6. Entre esas caraterísticas están netfilter (para el firewall), 802.1q (para VLANs) e ipsec.

perl y mod_perl

Todos los módulos eBox están implementados en perl, el interfaz web corre sobre mod_perl por razones de rendimiento.

mason

mason es un sistema de plantillas para perl, es usado para generar HTML para la interfaz de usuario basada en web y para generar ficheros de configuración.

apache

El interfaz web es servido por apache, nosotros usamos habitualmente el paquete debian apache-perl.

gconf

eBox almacena su configuración mediante gconf2 y la librería de bindins de perl.

sudo

Apache se ejecuta como usuario no privilegiado, todos los módulos eBox usan sudo para ejecutar comandos que necesitan ser ejecutados como root.

El paquete base de eBox ofrece una framework de desarrollo para nuevos módulos. Usando esta framework los módulos obtienen automáticamente características como backups de configuración y el descarte de los cambios efectuados en la configuración antes de se guardados. Todas las características disponibles para los desarrolladores de módulos serán explicados en detalle en los próximos capítulos.