Zimbra Integration With Samba - Ubuntu Based (Similar To AD And Exchange)

Version 1.0
Author: Mohamed Ghaleb <Mohamed_Ghaleb [at] msn [dot] com> (English and German only please)

This tutorial shows how to configure Zimbra Collaboration Server (ZCS) and Samba to act as a primary domain controller (PDC) that uses LDAP as a centralized database for authenticating users on Linux and Windows desktops. 

It should enable you then to seamlessly integrate Zimbra into a corporate network based on Open Source server software. You can then use Zimbra Admin GUI to manage Samba accounts, groups and domains.

Before we start I want to say first that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!

Now you will need to have a DNS server before doing any step, if you don't have a DNS server you can have a look on that tutorial.

What you will need:

Why did I use Ubuntu 6.06 LTS? unfortunately so far Zimbra provides a package for Ubuntu 6.06 LTS and not 8.04, you can download Zimbra source from other community groups which is modified to be installed on Ubuntu 8.04 but I just preferred to go with the officially supported version, for samba it doesn't really matter as it's a different server but I used 6.06 also in this tutorial.


Steps 1 to 5 need to be done on both servers Zimbra and Samba!

1 - Basic OS Installation

I won't go through this part in deep details but all what we need to do here is to install Ubuntu 6.06 LTS, basic installation with nothing on it, it's important to make sure you have the correct IP configuration during the installation so that the sources.list file (used by apt-get) will be correctly configured, other wise we will need to configure it manually.

A small tip: if you see the following screen before your IP configuration then you have already passed the IP configuration it's recommended to press <Go Back> and choose configure network manually.

After that carry on with the installation normally and make sure you have an internet connection configured.


2 Enable The root Account

After the reboot you can log in with your previously created username (e.g. administrator). Because we have to run all the steps from this tutorial as root user, so we will enable the root account now.


sudo passwd root

and give root a password. Afterwards we will switch to root by running



3 Install The SSH Server (Optional)

apt-get install ssh

From now on you can use an SSH client such as PuTTY and connect from your workstation to your Ubuntu server and follow the remaining steps from this tutorial.


4 Make sure the Network configuration is OK

The IP Address below will depend on which server you are installing, my sample below is for my Zimbra server.
vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static

Please make sure your network configuration are set correctly, feel free to change that based on your network configuration.

Then restart your network:

/etc/init.d/networking restart

Then edit /etc/hosts. Make it similar to this depending on your hostname and IP:

vi /etc/hosts localhost.localdomain localhost zimbra.tm.local zimbra

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Now run

echo zimbra.tm.local > /etc/hostname
/etc/init.d/hostname.sh start

Afterwards, run

hostname -f

Both should show zimbra.tm.local now.

You need to redo Step 4 with the Samba Server.

5 - Edit /etc/apt/sources.list and update your installation

Edit /etc/apt/sources.list. Comment out or remove the installation CD from the file and make sure that the universe and multiverse repositories are enabled. It should look like this:

vi /etc/apt/sources.list
# deb cdrom:[Ubuntu-Server 6.06.2 _Dapper Drake_ - Release i386 (20080110.1)]/ dapper main restricted

#deb cdrom:[Ubuntu-Server 6.06.2 _Dapper Drake_ - Release i386 (20080110.1)]/ dapper main restricted

deb http://de.archive.ubuntu.com/ubuntu/ dapper main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ dapper main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ dapper-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ dapper-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu/ dapper universe
deb-src http://de.archive.ubuntu.com/ubuntu/ dapper universe

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://de.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
# deb http://security.ubuntu.com/ubuntu dapper-security universe
# deb-src http://security.ubuntu.com/ubuntu dapper-security universe

Note: You don't need to enable the universe repository on the Zimbra server, however it's required on the Samba server.

Then run

apt-get update

to update the apt package database and

apt-get upgrade

to install the latest updates (if there are any) then reboot.


Steps 6 and 7 to be done on Zimbra server!

6 - Install Zimbra

We have first to download Zimbra:
wget http://files.zimbra.com/downloads/5.0.6_GA/zcs-5.0.6_GA_2313.UBUNTU6.20080522130240.tgz

We need then to install the requirements:

apt-get install libidn11 fetchmail libpcre3 libgmp3c2 libexpat1 libxml2 libstdc++6 libstdc++5 openssl libltdl3 perl curl libtie-ixhash-perl

Decompress the installation files:

tar -xvf zcs-5.0.6_GA_2313.UBUNTU6.20080522130240.tgz

Go into the source directory and start the installation:

cd zcs-5.0.6_GA_2313.UBUNTU6.20080522130240

You can then go on with the defaults EXCEPT for the following:

Note: Now let's say the server where you want to install zimbra is called ZIMBRA.TM.LOCAL so the server hostname is ZIMBRA and the domain is TM.LOCAL, for some reason zimbra installation thinks that your domain name is called ZIMBRA.TM.LOCAL which is not true, so it will contact the DNS asking for ZIMBRA.TM.LOCAL MX record which doesn't exist, you should only have MX record for TM.LOCAL, and thus during the installation you will get the following message:

zimbra installation

DNS ERROR resolving MX for zimbra.tm.local
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes]

So yes we will go ahead and press Enter to change the domain name, you will then get the following:

Create Domain: [zimbra.tm.local]

You will have to type your real domain name which in our case tm.local and press Enter, and if your DNS is correctly configured you wont see any other DNS errors.

Then you have to change the admin password, so when you see the following message:

Address unconfigured (**) items (? - help)

Type in 3 and press Enter.

Select, or 'r' for previous menu [r]

Type in 4 and press Enter.

Now you need to enter a new password for [email protected], I will configure my password to be howtoforge.

After typing your password press Enter, you will get the following:

Select, or 'r' for previous menu [r]

Press Enter to get:

Select from menu, or press 'a' to apply config (? - help)

Now type a to apply changes and press Enter, everything else should then go with the defaults and the logical answers.

Ok now Zimbra is up and running, for testing you can try to access: (change the IP to meet your server's IP) and log in with admin and the password you have configured during the installation (in our case howtoforge is the password).

Now you need to note down what is the LDAP password as we will need it during Samba installation, during Zimbra installation a user called zimbra is created, most of the zimbra commands can only be executed under the zimbra user, to switch to the zimbra user run the following as root.

su zimbra

To get the ldap password run the following as zimbra user:
zmlocalconfig -s zimbra_ldap_password

You should then get the following:

zimbra_ldap_password = 6Rf8hUwL

So your password is 6Rf8hUwL, it is a random password so you may get it differently.

Share this page:

Suggested articles

2 Comment(s)

Add comment


By: Matey

Our Mail Server (a Xen virtual server) was acting up yesterday. We could send email internally and also receive email from external source but if anyone outside of our company would send an email to any of us, No One could get that email?!

I Looked in all the log files and  all over the Net for the similar problem but any way the problem was not related to DNS or DHCP But the CLAM (The anti virus/virus-checking program). CLAMD was taking up too much memory.

The problem was due to lack of memory assigned to the Virtual machine changed the Config files on the Host Server (for the guest/mail server) and Reconfigured Clamd to be a little less dumb and every thing was working fine.

Just wanted to share since the log files did not indicate any thing clearly. It just said  ;


 "messages in queue: 76
messages in queue but not yet preprocessed: 0 "
 so u get an idea that every thing was processed lol 


By: rickofborg

This might be an obvious question, but why have two separate servers? Couldn't you do it all on one server? I would like to know if I could do one server that had DHCP, DNS, SAMBA, and Zimbra, all one server.