EBox

eBox Platform is an open source distribution and development framework, based on the Linux operating system, intended to manage services in a computer network.

It offers a layer of abstraction and management, accessible through a simple web interface, and also a simplified development environment for new features or customization.

eBox is licensed under GPL and started as an open-source, collaborative project of two companies. It also takes part on Morfeo Project. On 16th November 2006 eBox was officially approved as a NEOTEC project, receiving public funds from the CDTI (a Spanish public organisation, under the Ministry of Industry, Commerce and Tourism) to complete the development of version 1.0.

Ubuntu Gutsy Gibbon Tribe 3 featured eBox as "network services control tool".

Overview

Features

eBox Platform features are:

  • Open source
    • Linux kernel
    • Debian GNU/Linux operating system
    • Free software based services
  • User friendly
    • Easy to use graphical frontend
    • High level abstraction of networking and workgroup services
    • Context aware help, warning and error reporting
    • Internationalization and multilanguage support
    • eBox Platform Live-CD
  • Efficient management
    • Integration
      • Centralized configuration storage system, exporting and importing to XML format
      • Transactional configuration changes
      • Log registry incorporated
    • Automation
    • Backup
    • Component based installation and update

Services

  • Networking
    • High level objects
    • Firewall and router
      • Filtering
      • Redirection
      • VLAN support
      • Multi-gateway with load balancing
      • Traffic shaping
    • Email server
    • Instant messaging
    • Web Proxy
      • Cache
      • Content filtering
    • Virtual Private Network (VPN)
    • Services
      • Network autoconfiguration
      • Date and clock synchronization
  • Workgroup
    • Shared directory
    • Shared authentication including Windows' primary domain controller
    • Shared storage (NAS)
    • Shared printers

Development

eBox Platform uses an open source model, with all the source code available for its users.

Design

eBox is a web application using Apache webserver with mod_perl as foundation and Mason components as building blocks, mainly written in object oriented Perl, with some Javascript for visual improvements.

Its design incorporates modern programming techniques as::

  • Design patterns: an Observer design pattern is used mainly to integrate different modules across eBox Platform. E.g. each service reports about which ports it needs to be open. Besides this, a Singleton holds global configuration and behaviour details.
  • Presentation and logic decoupling: user interface uses CSS and Ajax, and include several Mason components, as a generic table used to configure services. Program logic is held inside library packages and CGI-like code.
  • Fault tolerance: errors and warnings are managed through software exceptions, flowing from core to its handling routine.

It also offers debugging facilities, integrating the layout of the execution stack of the Perl 5 interpreter.

Each service's process is monitored so if it dies, it is respawned automatically.

Open Source Components

eBox is built upon common Open Source components:

  • Apache
    • Webserver
  • mod_perl
    • CGI engine
  • OpenLDAP
    • Shared users and groups
  • OpenSSL
    • Cryptography
  • Netfilter/iptables
    • Firewall
    • NAT
  • BIND
    • Domain name server
  • Squid
    • Web proxy-cache
  • DansGuardian
    • Content filtering
  • Postfix
    • Mail server
  • Jabberd
    • Instant Messaging
  • Ntpd
    • Clock and date synchronization
  • OpenVPN
    • Virtual Private Network
  • Samba
    • Shared storage
    • Primary Domain Controller for Windows clients
  • Common Unix Printing System (CUPS)
    • Shared printers
  • Advanced Packaging Tool (APT)
    • Software installation and upgrade

The main programming language used is the Open Source Perl, on top of Mason engine.

Documentation uses Docbook-XML to generate HTML pages. API reference uses NATURAL Docs.

eBox Platform Live CD is built using Morphix. The whole distribution uses Debian and Debian Installer for non-live media.

Community

Main eBox community work and support takes place at eBox users' mailing lists, with an English speaking and a Spanish speaking one.

eBox's inclusion on Ubuntu Gutsy Gibbon was preceded by some comments at Ubuntu Forums community .

There is also a very active group of Linkstation users which succedeed in porting eBox to PowerPC.

Documentation

  • Installation guide: holds instructions about different installation methods like CD and Debian packages, and how to get source code and run eBox from scratch
  • User's guide: aimed at software users, introduces some concepts and terminology, and explain different services and use cases
  • Developer's guide: targeted at software developers and translators, it explains basic API, module backend, component interaction, web fronted and includes a small example about how to build a sample module from the ground up
  • API reference: class and method's description and parameters

See also

  • Iptables
  • Postfix
  • Jabber
  • OpenVPN
  • Squid
  • DansGuardian
  • DHCP
  • NTP
  • OpenLDAP
  • Samba (software)
  • Common Unix Printing System

es:EBox de:EBox