Zimbra is an open source alternative for Microsoft Exchange Server

Zimbra is the first enterprise-grade open source alternative for Microsoft Exchange Server. Read on to find out how to set up your own open source collaboration and email server and finally wave goodbye to Microsoft Exchange…

This article originally appeared in issue 94 of Linux User & Developer magazine. Subscribe and save more than 30% and receive our exclusive money back guarantee – click here to find out more.

Email and collaboration servers are vital to any organisation, whether small or medium in size. ‘Collaboration services’ is an umbrella term used to refer to services which help people inside an organisation to communication. These services include email, calendars, chat etc. Traditionally organisations used to pay hefty licence fees for Microsoft Exchange Server to enable these services – not to mention the vendor lock and the ecosystem lock that come as part of Exchange. Vendor lock means only Microsoft will be able to support Exchange and it decides when the licence support goes away. Ecosystem lock means it only runs on Windows servers and the client support is partial towards Microsoft-based clients only.

Meet Zimbra, an open source collaboration server which provides support for services like email, calendars, wiki, web, instant messaging etc. Zimbra Open Source Edition is completely free and can even be compiled on your own if you like. Like many other open source packages (such as Red Hat Linux), Zimbra also maintains commercial versions of its software with extra features such as Microsoft Outlook support, iPhone sync support, clustering and high-availability support, and technical support.  This tutorial covers Zimbra Open Source Edition.

Please Note
The following changes can alter your system behaviour. Therefore it is recommended that you use a test machine or better yet a virtual machine (using VMware workstation or VirtualBox) to test out these steps. Proceed with caution if you are using your main machine for this tutorial. If you are performing these steps on a virtual machine, make sure that you are using the ‘Bridged Networking’ mode. This will enable the virtual machine to participate directly on the network as if it were a physical machine.

Ubuntu 10.04 LTS 64-bit (Server version is supported, desktop version will also work but not supported by Zimbra.) This tutorial uses Ubuntu 10.04 LTS Desktop System.

sysstat: this is a collection of tools for system monitoring:

$ sudo apt-get install sysstat

BIND DNS server: BIND is a DNS server package. This is required to install a DNS server on our Ubuntu box:

$ sudo apt-get install bind9

Network information: You should have the following information handy about your network. The following lists the required information and the assumed values for this tutorial…

Local IP Address:
Netmask :
DNS Server (Private): (Same as the local IP address, as we will be installing a DNS server on the same machine)
Gateway: (Internet gateway, or the Router IP address)
DNS Server (Public): (Google Public DNS Server)
Hostname: ludzserver
Fully qualified hostname: ludzserver.lud.com
Domain name: lud.com

Zimbra Open Source Edition installer: Download the Zimbra Open Source Edition here. For this tutorial we are using file zcs-6.0.8_GA_2661.UBUNTU10_64.20100820044159.tgz which is meant for Ubuntu 10.04 LTS.

Preparing for Installation

Configuring the network settings
It is recommended that you use the static network setting for the server. Perform the following steps to set up the static network settings on your server…
1. Remove network-manager: network-manager is known to cause to problems in a server environment.
2. Edit the network interface file to look like following:
@config file: /etc/network/interfaces

auto lo eth0
iface lo inet loopback
iface eth0 inet static


Note that if you are not using eth0 as the network device name, you should replace it with the correct network device name.

3. Set up the DNS client:
We will be configuring our Zimbra system to also act as a DNS server.

@config file: /etc/resolv.conf


At this point, the internet connection will be lost on your system as we have yet to configure the DNS server.

4. Apply the changes:

$ sudo /etc/init.d/networking restart

*Reconfiguring network interfaces… [OK]

Run the following command to verify the network settings:

$ ifconfig

Configure the hostname
Chances are that you have already set up a hostname for your system. But for a correct Zimbra setup we will need a fully qualified hostname. Let’s set it up now. Edit the following files:


Add the following lines
@config_file:/etc/resolv.conf localhost.localdomain localhost ludzserver.lud.com  ludzserver

Restart the system to apply the changes.

Setting up the DNS Server
Setting up the DNS Server correctly is a crucial step in ensuring a proper Zimbra Server installation.

Setting up the DNS forward address: This will enable the communication between the DNS server and the ISP’s DNS.


options {
 directory “/var/cache/bind”;
 query-source address * port 53;
 forwarders {;
 auth-nxdomain no;    # conform to RFC1035

Restart the DNS server. Now you should be able to connect to the internet.

$ /etc/init.d/bind9 restart

Set up the internal zone:
Let’s set up our internal network DNS zone. Append the following lines:


zone “lud.com”  {
 type master;
 file “/etc/bind/db.lud.com”;

zone “1.168.192.in-addr.arpa” {
 type master;
 file “/etc/bind/db.1.168.192”;

‘zone “1.168.192.in-addr.arpa” ’ represents the reverse zone. You must insert the net address in the inverse order. For example, 192.168.1.x reverse zone will be 1.168.192.in-addr.arpa. Create the following files:

@config_file: /etc/bind/db.lud.com

; BIND data file for lud.com
$TTL    604800
@       IN      SOA     mail.lud.com. admin.lud.com. (
 070725         ; Serial
 604800         ; Refresh
 86400         ; Retry
 2419200         ; Expire
 604800 )       ; Negative Cache TTL
@      IN      NS      mail
 IN      MX      10 mail
 IN      A
mail   IN      A

@config_file: /etc/bind/db.1.168.192

@               IN      SOA     mail.lud.com. admin.lud.com. (
 1       ; Serial
 8H      ; Refresh
 2H      ; Retry
 4W      ; Expire
 1D)     ; Minimum TTL
 NS      mail.lud.com.
x                       PTR     localhost.

Modifying the hosts file
Append the following lines:


1 mail.lud.com       mail

Reboot the system to apply the changes.Verify the changes using the nslookup command…

$ nslookup lud.com
Name:    lud.com

Running the Zimbra Server installer
Perform the following steps to install Zimbra Collaboration Server:

$ tar xvfz zcs*
$ cd zcs*
$ sudo ./install.sh

1. The installer will give you a warning about using it on an unsupported system. Ignore this warning and type Y.
2. Type Y in response to licence agreement.
3. Now it will check for the necessary prerequisites. Make sure it passes the check for all the prerequisites, including the suggested prerequisites. If something is missing, enter N and rerun the installer after installing the necessary packages.
4. The installer will now prompt for components to install. Accept the default values.
5. The installer will prompt you with the list of packages to be installed. Enter Y to continue. The installer will now install the necessary packages. This may take some time.
6. After the package installation, the installer will complain with the following error:

DNS ERROR resolving ludzserver.lud.com
It is suggested that the hostname be resolveable via DNS


Press Enter to change the domain name and enter just lud.com as the hostname. The installer should report with the following message:

MX: mail.lud.com (

The installer will now present you with the detailed installation menu. You can use this menu to customise the installation of Zimbra Server. For this tutorial we will keep most of the things as default here. To continue you will need to create an admin password. To create this, select 3 then select 4. Enter a password for the admin user. You also have an option to select a default password. After entering the password, enter ‘r’ to go back. As the final step, press ‘a’ to apply config, then select YES. Accept the default config file. Now as the final step (this time for real), type Yes to continue with the system modification.

The installer will now perform a series of steps to finish up the server installation.

After configuration you will be asked to notify Zimbra of your installation. It is highly recommended that you do notify it of your installation as this helps Zimbra to prioritise the platform support for the product.

Now the installer will try to start the servers and do some post-installation tasks. Upon completion, press Enter to exit the installation program.

As an optional step you can configure the web interface to HTTPS, which provides an extra layer of security. To do so, perform the following steps:

$ sudo su - zimbra
$ zmtlsctl https

Reboot the system. Wait for some time as the servers take little bit of time in startup. Congratulations, you have installed Zimbra Server successfully!

Administrating and using Zimbra Collaboration Server
Due to the scope of this article we cannot go into detail here. Most of the administration is done via an easy-to-use web interface. In this part of the tutorial we will look at the following:
1. Accessing the Zimbra administration console
2. Creating a new user
3. Accessing Zimbra Server as a user

Accessing the Zimbra administration console
The Zimbra administration console provides the central interface for managing the Zimbra server. You can access the Zimbra administration console by pointing your browser to the following location:

https://<server ip address>:7071

In this case it is
Enter the username as admin@lud.com and the password that you have created during the installation.

Creating a new user
Perform the following steps in order to create a new user…
1. Log into Zimbra administration console.
2. Go to Accounts using left navigation bar.
3. Select New>Account.
4. The New Account wizard will open (Fig 1 – page 35). Enter the necessary details and continue with the wizard. After filling in all the necessary information, click Finish. You will be greeted with a confirmation screen. The new user is now created.

Accessing Zimbra web/user interface (webmail, calendar etc)
You can access the Zimbra web interface by pointing your browser to the server address. In this case it would be After logging in, you will be presented with a familiar-looking interface for email, calendar, contacts and many other services. (Fig 2)
Zimbra is a powerful enterprise-grade replacement for the Microsoft Exchange Server. You can develop your own extensions for Zimbra called Zimlets. If that is not enough, complete Zimbra source code, including all of its components, is at your disposal to tweak and optimise. It goes without saying that this is something you would never get from Microsoft.


Zimbra Desktop
Access your Zimbra server both online and offline
Zimbra Desktop is a Mozilla Prism-based cross-platform desktop product that provides a Microsoft Outlook-like interface (but way better than Microsoft Outlook) for managing email, calendar, contacts, files and documents in the cloud, yet having them locally accessible when on the go. Zimbra Desktop not only works with Zimbra servers but it can also work with Gmail, Microsoft Exchange, IMAP and POP services. Zimbra Desktop also supports social networking: it supports Facebook and Twitter services. You can obtain Zimbra Desktop here.

Zimbra Desktop in Action

Zibra extensions system: Zimlets

One of the powerful features of Zimbra Server that sets it apart from the competition is its extensibility. Zimbra extensions are called Zimlets. They provide an easy-to-use way to customise and extend Zimbra. Zimlets are based on a set of Web 2.0 technologies with messaging and collaboration support. Zimlets enable the mash-up of various web technologies that can directly interact with the content or work with the Zimbra system. Based on the user interaction type, Zimlets are divided into following types…

Content Zimlets: As the name suggests, Content Zimlets allow you to integrate a functionality directly into the content, such as text with Zimbra Collaboration objects. For example, based on a regular-expression-based search we can identify a particular type of text (such as URL or email address) and provide custom right-click events (such as saving it to the address book).
Extension Zimlets: Extension Zimlets extend the Zimbra client functionality. These Zimlets work by adding or modifying the various user interface aspects of Zimbra Client. Depending upon where the Zimlet is hooking itself in the client, its extensions are divided into the following types…

Panel Zimlets:
These Zimlets appear on the lower left of the Zimbra Client interface. Panel Zimlets respond to different UI events, such as mouse clicks (single, double or right clicks) and object drops.
Tab Zimlets: Tab Zimlets create new application tabs in the Zimbra interface. These tabs represent fully functional modules inside the Zimbra Client interface.
Integrated Zimlets: Integrated Zimlets extend the common user interface elements of the Zimbra Client interface. They can add or modify existing functionalities into the UI elements.
You can use Zimbra Gallery to search and download Zimlets and Themes created by the Zimbra developer community. If you decide to build a Zimbra extension, you can publish it here and get it downloaded and reviewed by thousands of other Zimbra developers and users.

Posted in Ubuntu

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Rodel Sales is a freelance I.T Professional . Start blogging on May 2013 to share my technical skills to other I.T professionals, and collect imperative guide from the internet world.
Blog Archieve
June 2013
« May   Jul »
%d bloggers like this: