Zentyal is hiring (C/C++ developers for Samba4/OpenChange)

Zentyal is seeking to hire a results driven and autonomous software C/C++ developers, motivated to work in a start-up environment and to become part of an open source company.

You will be actively involved into Zentyal products -OpenChange and Samba projects-, digging into the internals, answering escalated customers requests and participating in pushing the full solution to enterprise level. Also, you will take part in discussions and proof of concept developments related to scalability, high availability and best efficiency scenarios.

Check Zentyal careers website for more information, or ping us in IRC!

Zentyal 3.0 released!

Yesterday, Zentyal 3.0 was released. This new major version brings a lot of new stuff:

  • base distro updated to Ubuntu 12.04 LTS,
  • new users module with Kerberos integration, probably the easiest way to deploy a Ubuntu based SSO solution,
  • new samba module with Samba4, giving administrators a Windows 2003/2008 server replacement using Ubuntu and still having a easy to use graphical interface. This module can work both as a standalone server or join an existing Active Directory as an additional controller,
  • new HTTP proxy module, based on Squid and Dansguardian allowing to deploy a transparent or authenticated (with Kerberos/Samba4) proxy. This new version allow you to define browsing policies based on subnets, groups, time or any combination of them,
  • new thin clients module based on LTSP,
  • new UPS management module based on NUT,
  • and many many small improvements and bugfixes! see full changelog and release announcement.

Congratulations to all Zentyal team!


To install Zentyal 3.0 on top of Ubuntu 12.04 follow the steps in the installation guide to add our PPA and apt-get install it!

What about the Precise status? We have uploaded the core packages but users, samba and squid modules are still waiting for FFe approval, so if you are part of the release team, please, help us!

Getting started with Zentyal development

On Zentyal we are pleased to announce that starting today and during the following weeks will be publishing a serie of posts on Zentyal development. These posts are an update of the old eBox module development guide and will replace this one at the end.


This tutorial is meant to be an easy-to-follow guide for developing new Zentyal modules and extending the features of the existing ones.

We will show you the necessary steps to implement a full-fledged Zentyal module, using an incremental development approach.

The Zentyal framework has a clear goal: make life easier for those developers and system integrators who want to create an UI to manage Linux services integrated with other services using the same technology. We want developers to focus only on adding functionality with the service their modules manage. The framework tries hard to keep you away from messing with HTML, CGIs, the interaction between the different modules and so on.


You should be familiar with a programming language. Although modules are written in Perl, the data structures and syntax should be easily understood by newcomers.

We will start building and running the code, for that you will need a machine running Ubuntu Lucid. We strongly recommend the use of virtual machines for Zentyal development. You can use VirtualBox with a clean Zentyal 2.1 (development version) installation to start up. The reason to work with an already installed Zentyal environment is to avoid solving dependency problems when installing packages with dpkg. It’s always a good practice to use the snapshot capabilities to keep a clean environment where to go back.

Learning to build from source

One of the first steps to get involved with the project development is to be able to build the software from the source. You can download the Zentyal source code from our Subversion repository. Let’s see how to fetch Zentyal source and build everything from scratch.

First install some basic development tools:

sudo apt-get install --no-install-recommends
subversion autoconf automake gettext dpkg-dev devscripts cdbs liberror-perl

Then you have to fetch trunk which is the main development branch. You will also have to download the scripts directory too:

mkdir ~/zentyal ; cd ~/zentyal
svn co http://svn.zentyal.org/zentyal/trunk/
svn co http://svn.zentyal.org/zentyal/scripts/

Now add the zentyal-package script to your PATH:

mkdir ~/bin ; cd ~/bin
ln -s ~/zentyal/scripts/zentyal-package .

After spawning a new shell to add the new bin directory to your PATH, if you go to the trunk directory, you will be able to start building the Zentyal packages:

cd ~/zentyal/trunk
zentyal-package common
zentyal-package core
zentyal-package software
zentyal-package network
zentyal-package services
zentyal-package objects
zentyal-package firewall

… and so on. Now you only need to copy the packages to the virtual machine and install them. If you don’t have these modules already installed you will have to deal with the missing depends:

scp debs-ppa/*.deb user@zentyal-dev:
ssh user@zentyal-dev
sudo dpkg -i --force-all *.deb

You can find all Zentyal modules inside the main directory::

$ ls -1 main/

When you start working on your own module, please let the Zentyal Developers and other community members know what you are working on. This is good thing to do in order to avoid overlapping (different people working on similar project) as well as to get feedback and help when necessary. Simply start a new thread in the Zentyal Forum when you start your project and post the advances in the same thread or alternatively, send an e-mail to the public Zentyal Development mailing list.

Zentyal talk at FOSDEM

This year Zentyal will be present at FOSDEM. FOSDEM is the Free and Open Source Software Developers’ European Meeting held in Brussels on the 5th and 6th of February.

At FOSDEM most of the talks are grouped by topics in different ‘devrooms’. Our talk will be held in the CrossDistro devroom on Sunday 5th, starting at 10.30 a.m.

First of all we will introduce the audience to Zentyal, project aims and the community. Then we will go through a quick overview of Zentyal features and existing modules to configure and manage the different network services.

We also want to show to the people what makes Zentyal different to other similar solutions and why it rocks, highlighting these points that make you fall in love with it.

Then the talk will evolve from the release cycle presentation, the roadmap for the next release to what we do to assure QA on a software like Zentyal that integrates many different components.

One of the things we want to show to the audience is the kind of problems we encounter doing this integration, not only between the components, but also with the service configuration and management that the distro does.

After all this, we will get into a quick introduction to a Zentyal module code, showing how easy it is to define a configuration frontend, write configuration files and manage the service daemons.

To finish the usual Q&A ending under time constraints, but if you want to discuss further or just meet the Zentyal team, we’ll be hanging around, so come and join us for the beers ;)!

Improving service integration in eBox

After exekias published a few days ago a post on eBox new feature: bridged mode, I also wanted to share with you the latest improvements I’ve been doing on service integration. One of the things I love about eBox is how it does, not only configure the services but can make them work together.

Modules can tell eBox which TCP/UDP ports are used, which is called Services. These services are used by the Firewall module and the Traffic Shaping module to create rules, which are automatically updated if the service changes the port configuration. ebox-webserver and ebox-jabber now register themselves on Services.

eBox Services

Also modules can tell the Certification Authority if they need a key pair and certificate for secure communications. This way all your services use certificates signed by the CA providing authentication and avoiding MITM attacks. ebox-jabber and ebox-radius use Service Certificates.

eBox Service Certificates

A new feature on the Web Server module is the SSL support and what is really exciting, you can define multiple SSL Virtual Hosts using only one IP address. How does this work ? Web Server is tightly integrated with the CA, and asks it to create a certificate with a Subject Alternative Name (known as UCC on MS Exchange) for each virtual host. Deploying all your websites with SSL is as easy as making a couple of clicks!

eBox Web Server

But we wanted to go one step further and make the Webmail module be able to automatically deploy the webmail over one of these virtual hosts, awesome isn’t it ?

eBox Webmail

That was all on service integration but I don’t want to lose the opportunity to announce that ebox-jabber has been rewritten using the new MVC framework and moving away from the old CGI and templates system. This new version changes the Jabber server, we were using jabberd2 which worked fine but didn’t have all the features we would like to see on a Unified Communications Server. ejabberd has been our choice because it’s already included in Ubuntu and gives us the power to extend this module with new features and further integration with eBox Users and Groups.

eBox Jabber

All these improvements are available on eBox 1.5 beta, you will find instructions on how to install eBox in the Installation Guide and we will be pleased to read your feedback in the Beta Testing forum.

New ebox-radius module available

Since I came back from Dublin I had pending to release the new ebox-radius module. This new module for eBox Platform 1.2 brings integration of eBox LDAP users with FreeRADIUS allowing the deployment of WPA/WPA2 EAP wireless authentication using eBox. In fact is very simple as seen on the screenshot, you can choose whether all the users are able authenticate or just a group of them and the NAS clients that can query the RADIUS server.


This module is still in beta, but packages for Hardy are available from my PPA so you can try it in your eBox 1.2, a version for eBox 1.3 will be released very soon. FreeRADIUS packages where self builded because of #266299, I hope this can be fixed very soon, see Debian, EAP, and the OpenSSL and GPL incompatibility.

If you give it a try, please give us feedback on the forum or the mailing lists.