Nowadays, there is use of emails in almost every sector of our modern economy, everyday!. Finding the right email solution is a critical decision of every System Administrator and IT manager. Zimbra Collaboration is a powerful collaborative software suite bundled with both email server and a web client. It is a good choice if searching for an open source email solution. The most recent stable release of Zimbra is version 9.

In Zimbra 9, the UI interface has been redesigned to be modern and responsive. It is built on Zimbra’s dependable server infrastructure to guarantee good privacy, security, and data sovereignty you expect from Zimbra. This release is highly extensible and flexible by design to ease any integration through third party apps and building your own addons. It also features best-in-class integrations with Dropbox, Slack, and Zoom using Zimlet framework out-of-the-box.

In this article we shall cover a step-by-step installation of Zimbra 9 on CentOS 7 / RHEL 7 / Ubuntu 18.04 Linux systems. The server from which you’re performing the installations should meet minimum hardware requirements outlined below.

  • Memory – Minimum 8GB, recommended 16 GB.
  • CPU – 4-core CPU or 4 vCPUs.
  • Storage space – 10 GB of free hard disk space.
  • DNS Records – FQDN with MX and A DNS-records

In this setup we’ll use the following DNS information for Zimbra 9 setup.

FQDN NameDNS Record TypeValue
mail.wachid.web.idA192.168.200.100
wachid.web.idMXmail.wachid.web.id

We shall kick off the setup with server preparation prior to installing Zimbra 9 on CentOS 7 / RHEL 7 / Ubuntu 18.04.

1. Prepare DNS server

If you have DNS server in place you’ll need to add required A and MX records for the Zimbra Mail Server. For guys without working DNS setup there are helper scripts that enables you to setup Bind DNS server.

Ensure your system is updated;

# Ubuntu
sudo apt update && sudo apt -y full-upgrade
[ -f /var/run/reboot-required ] && sudo reboot -f

# CentOS / RHEL 7
sudo yum -y update
sudo reboot

Install git utility on the system that will be used to pull code from Github repository.

# Ubuntu
sudo apt -y install git

# CentOS / RHEL 7
sudo yum -y install git

We’ve created bash scripts on available on Github repo that can be used to configure DNS server for Zimbra. We can clone the repo using the commands below.

cd ~/
git clone https://github.com/jmutai/scripts.git

Navigate to scripts folder then zimbra in your working directory.

cd scripts/zimbra/

There are scripts for setting up Bind DNS server on both Ubuntu 18.04 & RHEL 7/CentOS 7 server.

$ ls zimbra_bind_setup_*
zimbra_bind_setup_rhel.sh zimbra_bind_setup_ubuntu.sh

Execute the scripts to configure the system like below.

# Ubuntu
$ ./zimbra_bind_setup_ubuntu.sh

# CentOS / RHEL 7
$ ./zimbra_bind_setup_rhel.sh

In the first prompt screen press enter key to start the configuration of Bind DNS server.

Internet connectivity is required for packages installation...

Press key enter to continue <Enter>

You’ll also be asked to input Zimbra domain name, hostname and IP address

Input Zimbra Base Domain. E.g example.com : wachid.web.id
Input Zimbra Mail Server hostname (first part of FQDN). E.g mail : mail
Input Zimbra Server IP Address : 192.168.200.100

Test DNS server works

$ dig A mail.wachid.web.id @127.0.0.1 +short
192.168.200.20

$ dig MX wachid.web.id @127.0.0.1 +short
mail.wachid.web.id.

You can now use configured DNS server in your Zimbra installation – A and MX records are the only configurations required for the setup.

2. Install Zimbra dependency packages

There are few packages that should be installed before you can deploy Zimbra email solution on your CentOS 7 / RHEL 7 or Ubuntu 18.04 Linux system.

We’ve created bash scripts to ease these operations. All you need to do is clone the repository from Github, and run the scripts that does much offloading for you.

Ensure git command line tool is installed on your Zimbra server.

# Ubuntu
sudo apt -y install git

# CentOS / RHEL 7
sudo yum -y install git

Clone the repository with the scripts to be executed.

cd ~/
git clone https://github.com/jmutai/scripts.git

Switch to the scripts/zimbra folder.

cd scripts/zimbra

We have separate scripts for RHEL 7 based and Ubuntu system.

$ ls zimbra_install_prereqs_*
zimbra_install_prereqs_rhel.sh  zimbra_install_prereqs_ubuntu.sh

Run the script matching your OS to install dependency packages on the system.

# Ubuntu
$ ./zimbra_install_prereqs_ubuntu.sh

# CentOS / RHEL 7
$ ./zimbra_install_prereqs_rhel.sh

Input your domain, Mail server hostname and its IP address when asked to provide this information.

Input Zimbra Base Domain. E.g example.com : wachid.web.id
Input Zimbra Mail Server hostname (first part of FQDN). E.g mail : mail
Please insert your IP Address : 192.168.200.100

You’re required to provide server timezone as well, e.g Europe/London

Input your timezone value, example Asia/Jakarta : Asia/Jakarta

If all goes well you’ll get a success message. This is a green light to installing Zimbra 9 on CentOS 7 / RHEL 7 / Ubuntu 18.04.

Necessary pre-reqs satisfied, you can now install Zimbra server..

3. Download Zimbra 9 installation archive

Zimbra 9 is Open Source, but the Zimbra Modern UI and some other components that are part of the Network Edition (which traditionally have not been included in the Open Source Edition) do not use Open Source licenses. For this reason, the installer packages for the Community are not released by Zimbra as of Zimbra 9.

Option 1: Download Zimbra 9 open source build

As an end user, you have the option of building the packages yourself or using pre-built ones. In this guide we’re downloading the ones created by Zextras.

Visit extras builds page to obtain Zimbra 9 OSE build by Zextras.

This image has an empty alt attribute; its file name is zimbra-9-get-build-1024x551.png

Click on “Get the build” and input your details including email address. You should get an email address with direct download links for Zimbra 9 builds.

Direct download links as of this article update are as below.

# Ubuntu 18.04
wget download.zextras.com/zcs-9.0.0_OSE_UBUNTU18_latest-zextras.tgz

# CentOS / RHEL 7
wget download.zextras.com/zcs-9.0.0_OSE_RHEL7_latest-zextras.tgz

Extract the package once downloaded.

# Ubuntu 18.04
tar xvf zcs-9.0.0_OSE_UBUNTU18_latest-zextras.tgz

# CentOS / RHEL 7
tar xvf zcs-9.0.0_OSE_RHEL7_latest-zextras.tgz

Navigate to created directory once the file has been extrated.

cd zcs-9*/

Option 2: Download Zimbra 9 Network Edition

Visit Zimbra Network releases page and provide your details for trial license. For direct access to file go to Downloads page.

# CentOS 7
wget https://files.zimbra.com/downloads/9.0.0_GA/zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312.tgz
tar xvf zcs-NETWORK-*.tgz
cd zcs-NETWORK-9*/

# RHEL 7
wget https://files.zimbra.com/downloads/9.0.0_GA/zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312.tgz
tar xvf zcs-NETWORK-*.tgz
cd zcs-NETWORK-9*/

# Ubuntu 18.04
wget https://files.zimbra.com/downloads/9.0.0_GA/zcs-NETWORK-9.0.0_GA_3924.UBUNTU18_64.20200331010312.tgz
tar xvf zcs-NETWORK-*.tgz
cd zcs-NETWORK-9*/

Proceed with the installation in step 4.

4. Install Zimbra 9 on CentOS 7 / RHEL 7 / Ubuntu 18.04

Start Zimbra 9 installation using ./install.sh command as shown below;

sudo ./install.sh

Agree to software license agreement terms.

Do you agree with the terms of the software license agreement? [N] Y

From list of installation packages select the ones you’ll like to have in your Zimbra Collaboration suite.

Use Zimbra's package repository [Y] y
.....
Select the packages to install

Install zimbra-ldap [Y] ye4ex

Install zimbra-logger [Y] y

Install zimbra-mta [Y] y

Install zimbra-dnscache [Y] n

Install zimbra-snmp [Y] y

Install zimbra-store [Y] y

Install zimbra-apache [Y] y

Install zimbra-spell [Y] y

Install zimbra-memcached [Y] Y

Install zimbra-proxy [Y] y

Install zimbra-drive [Y] Y

Install zimbra-imapd (BETA - for evaluation only) [N] n

Options on Network Edition installation:

Select the packages to install

Install zimbra-ldap [Y]

Install zimbra-logger [Y]

Install zimbra-mta [Y]

Install zimbra-dnscache [Y] n

Install zimbra-snmp [Y]

Install zimbra-store [Y]

Install zimbra-apache [Y]

Install zimbra-spell [Y]

Install zimbra-convertd [Y]

Install zimbra-memcached [Y]

Install zimbra-proxy [Y]

Install zimbra-archiving [N]

Install zimbra-drive [Y]

Install zimbra-imapd (BETA - for evaluation only) [N]

Install zimbra-network-modules-ng [Y]
Install zimbra-connect [Y]

Confirm the settings and proceed with the installation of Zimbra 9 community edition on CentOS 7 / RHEL 7 / Ubuntu 18.04 Linux machine.

zimbra-store package check complete.

Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell
    zimbra-memcached
    zimbra-proxy
    zimbra-drive
    zimbra-chat

The system will be modified. Continue? [N] Y

Configure your domain name as below, this should match configuration in your DNS server.

DNS ERROR resolving MX for mail.wachid.web.id
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] yes
Create domain: [mail.wachid.web.id] wachid.web.id

Set the password for the admin account, select 6, and proceed.

Main menu

   1) Common Configuration:
   2) zimbra-ldap:                             Enabled
   3) zimbra-logger:                           Enabled
   4) zimbra-mta:                              Enabled
   5) zimbra-snmp:                             Enabled
   6) zimbra-store:                            Enabled
        +Create Admin User:                    yes
        +Admin user to create:                 [email protected]
******* +Admin Password                        UNSET
        +Anti-virus quarantine user:           [email protected]
        +Enable automated spam training:       yes
........
Address unconfigured (**) items  (? - help) 6

Set your desired password for the Zimbra Admin user.

Store configuration

   1) Status:                                  Enabled
   2) Create Admin User:                       yes
   3) Admin user to create:                    [email protected]
** 4) Admin Password                           UNSET
   5) Anti-virus quarantine user:              [email protected]
.......
Select, or 'r' for previous menu [r] 4
Password for [email protected] (min 6 characters): [Oup7z6cSJ] Str0ngAdminPssw0rd 

For Network Edition, set License key path:

  25) License filename:          /root/ZCSLicense.xml

After the password has been set, return to the previous menu using r

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

Confirm current settings and continue with the setup.

Main menu

   1) Common Configuration:
   2) zimbra-ldap:                             Enabled
   3) zimbra-logger:                           Enabled
   4) zimbra-mta:                              Enabled
   5) zimbra-snmp:                             Enabled
   6) zimbra-store:                            Enabled
   7) zimbra-spell:                            Enabled
   8) zimbra-proxy:                            Enabled
   9) Default Class of Service Configuration:
   s) Save config to file
   x) Expand menu
   q) Quit

*** 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.15548] 
Saving config in /opt/zimbra/config.15548...done.
The system will be modified - continue? [No] yes
Operations logged to /tmp/zmsetup.20220127-075011.log
.....

Optionally choose to notify Zimbra of the installation.

Notify Zimbra of your installation? [Yes] yes
....
Moving /tmp/zmsetup.20220511-181826.log to /opt/zimbra/log

Configuration complete - press return to exit Press Enter

Once Zimbra server has been installed, check status of all its services using zmcontrol status command executed as Zimbra user.

$ sudo su - zimbra -c "zmcontrol status"
Host mail.computingforgeeks.com
        amavis                  Running
        antispam                Running
        antivirus               Running
        ldap                    Running
        logger                  Running
        mailbox                 Running
        memcached               Running
        mta                     Running
        opendkim                Running
        proxy                   Running
        service webapp          Running
        snmp                    Running
        spell                   Running
        stats                   Running
        zimbra webapp           Running
        zimbraAdmin webapp      Running
        zimlet webapp           Running
        zmconfigd               Running

The version of Zimbra installed can be queried with the command below.

$ sudo su - zimbra -c "zmcontrol -v"
Release 9.0.0_ZEXTRAS_20220209.RHEL7_64_20220207125104 RHEL7_64 FOSS edition.

5. Access the Zimbra 9 Web UI

Zimbra 9 web console is accessible on your web browser using the URL https://IP_Address or https://Domain_name

You will see the below login screen.

Install Zimbra 9 Mail Server on Rocky Linux 8 CentOS 8

On successful login, you will see the below Zimbra dashboard.

Install Zimbra 9 Mail Server on Rocky Linux 8 CentOS 8 1

Here, you can receive, send messages and chat using Zimbra. To configure and manage the Zimbra server, go to the Admin console.

Install Zimbra 9 Mail Server on Rocky Linux 8 CentOS 8 2

You can also access Admin Console directly at https://<domain_or_serverip]:7071

zimbra admin console

6. Adding user accounts and Domains

Input admin as username and password set during installation.

Install Zimbra 9 Mail Server on Rocky Linux 8 CentOS 8 3

To add new user account, click on “Add Account“. Fill all required details for a new user.

Install Zimbra 9 Mail Server on Rocky Linux 8 CentOS 8 4 1

The newly added account can be viewed under the manage tab.

Install Zimbra 9 Mail Server on Rocky Linux 8 CentOS 8 5

Mail server processes can be checked like below.

Install Zimbra 9 Mail Server on Rocky Linux 8 CentOS 8 6

Adding new domain

Add a new domain under “Set up Domain” section.

zimbra add domain 01

Enter domain name and other configurable settings for a new domain.

zimbra add domain 02

We have installed and configured Zimbra 9 on CentOS 7 / RHEL 7 / Ubuntu 18.04 systems in this guide. We hope our process helped you with your setup. For additional information about Zimbra visit official documentation pages.

7. Secure Zimbra 9 installation with Let’s Encrypt SSL

Refer to steps in the guide below to configure Let’s Encrypt SSL on your Zimbra server.

More guides available on Zimbra.

Leave a Reply

Your email address will not be published. Required fields are marked *