the capacity of one person or thing to react with or affect another in some special way, as by attraction or the facilitation of a function or activity.

Installation of zimbra 8.06 Collaboration Server Open Source on a hyper-v vm

Posted on | April 10, 2014 | Comments Off on Installation of zimbra 8.06 Collaboration Server Open Source on a hyper-v vm

Installation of zimbra 8.06 Collaboration Server Open Source on a hyper-v vm

March 2014 – ken lombardi

Well – I thought I would jot down some notes while I was installing ZCS – Open Source on a Hyper-V cluster. Single server installation.

In the short time since this installation we have all been confronted with the Heartbleed exploit so right up front I am going to say – make sure when you are done check the version of openssl that you are running.

openssl version -a

You will want to take a look at the build date – make sure it is equal to or greater than April 7 of 2014

I hope this helps someone get this pretty straight forward installation up and running. What a great email server.

Here goes.

First I built vm with 4gb ram and 20gb hd
Set network card to vlan2 (adjust to your needs) – we use vlans to manage ip space – if you are doing this on your local box or? you most likely won’t be using vlans. YMMD
Installed ubuntu 12.04
Only included open ssh server in addition to core components (see note above – confirm safe version when done)

I set a static ip during installation

192.168.x.2 gw
Set name servers to 192.168.x.3
(of course all of these types of things need to be changed to meet your needs)

– why does it take sooooo long to install? –

Logged in as me

sudo su (yeah I know we are supposed to sudo each command but I am old and what’s the worst thing that could happen? – so just remember as you look at the commands during the installation – unless I specify otherwise I am running them in an elevated state – as root)

apt-get update
apt-get upgrade

wait awhile for this to finish – good to go


set hostname to zimbra2b
(again edit to suit your needs – we own that domain so I just used it for testing)

hostname –fqdn =

I am going to use bind9 instead of dnsmasq (because Chris hates dnsmasq sooooo much)
dnsmasq may be a little lighter weight and easier to config – but maybe you want to use this computer as a full fledged DNS server for your domain(s) as well as a mail server…

apt-get install bind9


Now edit /etc/bind/named.conf.options
Add the forwarder dns server ip address – I used and changed to default directory to “/etc/bind”
I used vi – you use the editor of your choice. This is what it looked like when I was done.

options {
directory “/etc/bind”;

// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0’s placeholder.
forwarders {;
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };

Now add a zone to named.conf.local

klombardi@zimbra2b:/etc/bind# vi named.conf.local

// Do any local configuration here

// Consider adding the 1918 zones here, if they are not used in your
// organization
// include “/etc/bind/zones.rfc1918”;

zone “” {
type master;
file “”;

You can store your zone files where ever you want – if you are going to do lots with bind you might want to change the location – your call. I was lazy and just put them in with the other config files. Note that in the named.conf.options you can change this directory

Then create the data file

vi /etc/bind/

Here is the content of mine

root@zimbra2b:/etc/bind# more

; BIND data file for local
$TTL 604800
@ IN SOA (
2014032702 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN A 192.168.x.99 IN NS IN MX 10
zimbra2b IN A 192.168.x.99

Keep in mind that there are lots of ways to do this…try whatever works for you.
What’s the worst thing that could happen? – You will have to fix it.

Then I edit the /etc/network/interfaces to put the name server ip for this machine in 1st place. I used because I know that I am going to be moving this box to a different IP when it is put into service.

root@zimbra2b:/etc# more 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
# dns-* options are implemented by the resolvconf package, if installed

You may want to hand edit the /etc/resolv.conf file by hand to reflect this change.
Now reset the bind9 service

root@zimbra2b:/etc# service bind9 restart

you could use
/etc/init.d/bind9 restart

Here are some places for background…


Now you will want to test your configuration…missed semi-colons can cause ‘issues’
(ok – so I missed a semi-colon, oh yeah, and a period, oh yeah and some letters)

root@zimbra2b:/etc/bind# dig mx

; <<>> DiG 9.8.1-P1 <<>> mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29296 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ; IN MX ;; ANSWER SECTION: 604800 IN MX 10 ;; AUTHORITY SECTION: 604800 IN NS ;; Query time: 3 msec ;; SERVER: ;; WHEN: Fri Mar 28 17:04:15 2014 ;; MSG SIZE rcvd: 89

You may want to check DNS resolution for someplace out in the real internet too.


Now go to zimbra and download the zcs file for ubuntu


This is the file that I downloaded.

Extract this (de-tar?) this file.

root@zimbra2b:/home/mydirectory# tar -xvf zcs-8.0.6_GA_5922.UBUNTU12_64.20131203103702.tar

Cd down into the zcs-8.0.6_GA_5922.UBUNTU12_64.20131203103702 directory and execute the file

(remember that the name of the file you download from zimbra may have a different name)


Checking for prerequisites…
FOUND: netcat-openbsd-1.89-4ubuntu1
FOUND: sudo-1.8.3p1-1ubuntu3.6
FOUND: libidn11-1.23-2
FOUND: libpcre3-8.12-4
MISSING: libgmp3c2
FOUND: libexpat1-2.0.1-7.2ubuntu1.1
FOUND: libstdc++6-4.6.3-1ubuntu5
MISSING: libperl5.14

Checking for suggested prerequisites…
MISSING: pax does not appear to be installed .
FOUND: perl-5.14.2
MISSING: sysstat does not appear to be installed.
MISSING: sqlite3 does not appear to be installed.


The suggested version of one or more packages is not installed.
This could cause problems with the operation of Zimbra.


I had to stop here and install the missing prerequisites… listen to some music.
It sure is nice that it checks and lets you know….up front (try to spell the packages right)

You can do them one at a time or all at once…your choice.

apt-get install libgmp3c2 libperl5.14 pax sysstat sqlite3

For some reason I insist on sqllite3 or sql-lite3 or anything but the right spelling. I suppose I could copy and paste…

Once all that is done run the installation script again. Install all of the items you need (I install them all thinking that someday I will use ldap and radius)

– why does it take sooooo long? – I need to get faster computers, eh?

This is what you should see (this may change over time but I have no control over that)


Main menu

1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create:
******* +Admin Password UNSET
+Anti-virus quarantine user:
+Enable automated spam training: yes
+Spam training user:
+Non-spam(Ham) training user:
+SMTP host:
+Web server HTTP port: 80
+Web server HTTPS port: 443
+Web server mode: https
+IMAP server port: 143
+IMAP server SSL port: 993
+POP server port: 110
+POP server SSL port: 995
+Use spell check server: yes
+Spell server URL:
+Configure for use with mail proxy: FALSE
+Configure for use with web proxy: FALSE
+Enable version update checks: TRUE
+Enable version update notifications: TRUE
+Version update notification email:
+Version update source email:

4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-logger: Enabled
7) zimbra-spell: Enabled
8) Default Class of Service Configuration:
r) Start servers after configuration yes
s) Save config to file
x) Expand menu
q) Quit

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


Note that the admin password needs to be set. Press 3 and the appropriate sub choice.
Enter your password – I’ve noticed this has an issue with certain special characters? anyone else?


CONFIGURATION COMPLETE – press ‘a’ to apply
Select from menu, or press ‘a’ to apply config (? – help) s

Save config in file: [/opt/zimbra/config.48847]
Saving config in /opt/zimbra/config.48847…done.

*** CONFIGURATION COMPLETE – press ‘a’ to apply
Select from menu, or press ‘a’ to apply config (? – help) a
Save configuration data to a file? [Yes] yes
Save config in file: [/opt/zimbra/config.48847]
Saving config in /opt/zimbra/config.48847…done.
The system will be modified – continue? [No] yes
Operations logged to /tmp/zmsetup.03282014-182540.log
Setting local config values…done.
Initializing core config…Setting up CA…done.
Deploying CA to /opt/zimbra/conf/ca …done.
Creating SSL zimbra-store certificate…done.
Creating new zimbra-ldap SSL certificate…done.
Creating new zimbra-mta SSL certificate…done.
Installing mailboxd SSL certificates…done.
Installing MTA SSL certificates…done.
Installing LDAP SSL certificate…done.
Initializing ldap…done.
Setting replication password…done.
Setting Postfix password…done.
Setting amavis password…done.
Setting nginx password…done.
Creating server entry for…done.
Setting Zimbra IP Mode…done.
Saving CA in ldap …done.
Saving SSL Certificate in ldap …done.
Setting spell check URL…done.
Setting service ports on…done.
Adding to zimbraMailHostPool in default COS…done.
Setting zimbraFeatureTasksEnabled=TRUE…done.
Setting zimbraFeatureBriefcasesEnabled=FALSE…done.
Setting MTA auth host…done.
Setting TimeZone Preference…done.
Initializing mta config…done.
Setting services on…done.
Creating domain…done.
Setting default domain name…done.
Creating domain…already exists.
Creating admin account…done.
Creating root alias…done.
Creating postmaster alias…done.
Creating user…done.
Creating user…done.
Creating user…done.
Setting spam training and Anti-virus quarantine accounts…done.
Initializing store sql database…done.
Setting zimbraSmtpHostname for…done.
Configuring SNMP…done.
Setting up syslog.conf…done.
Starting servers…done.
Installing common zimlets…
Finished installing common zimlets.
Restarting mailboxd…done.
Creating galsync account for default domain…done.

You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Server.
The only information that will be transmitted is:
The VERSION of zcs installed (8.0.6_GA_5922_UBUNTU12_64)

Notify Zimbra of your installation? [Yes] yes
Notifying Zimbra of installation via

Notification complete

Setting up zimbra crontab…done.

Moving /tmp/zmsetup.03282014-182540.log to /opt/zimbra/log

Configuration complete – press return to exit

Incase you forget the password you created for the zimbra admin login

root@zimbra2b:/opt/zimbra/bin# ./zmprov sp somepassword

I’ve noticed that this has some issues with certain special characters. I should pay more attention next time and write it up.


Now you can go to a browser and point it at the ip address you assigned.


Login with the admin/password combo and start setting things up.
YAY for Zimbra!

Thank you 2bridges Technologies for letting me write and post these things (and work on such great projects)


Comments are closed.

  • About

    This website is supported by Ken Lombardi @ analogman consulting.
    phone: 253.two.two.two-7626
    email: ken@analogman'dot'org
    tweet: analogmanorg

  • Admin