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 Name | DNS Record Type | Value |
mail.wachid.web.id | A | 192.168.200.100 |
wachid.web.id | MX | mail.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.
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.
On successful login, you will see the below Zimbra dashboard.
Here, you can receive, send messages and chat using Zimbra. To configure and manage the Zimbra server, go to the Admin console.
You can also access Admin Console directly at https://<domain_or_serverip]:7071
6. Adding user accounts and Domains
Input admin as username and password set during installation.
To add new user account, click on “Add Account“. Fill all required details for a new user.
The newly added account can be viewed under the manage tab.
Mail server processes can be checked like below.
Adding new domain
Add a new domain under “Set up Domain” section.
Enter domain name and other configurable settings for a new domain.
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.
- Install Zimbra Mail Server on CentOS 8 | RHEL 8
- Monitor Zimbra Server with Grafana, Influxdb and Telegraf
- How To Restore Zimbra LDAP database from Backup