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.geeksforgeeks.org | A | 192.168.200.20 |
geeksforgeeks.org | MX | mail.geeksforgeeks.org |
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 : geeksforgeeks.org
Input Zimbra Mail Server hostname (first part of FQDN). E.g mail : mail
Input Zimbra Server IP Address : 192.168.200.20
Test DNS server works
$ dig A mail.geeksforgeeks.org @127.0.0.1 +short
192.168.200.20
$ dig MX geeksforgeeks.org @127.0.0.1 +short
mail.geeksforgeeks.org.
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 : geeksforgeeks.org
Input Zimbra Mail Server hostname (first part of FQDN). E.g mail : mail
Please insert your IP Address : 192.168.200.20
You’re required to provide server timezone as well, e.g Europe/London
Input your timezone value, example Africa/Nairobi : Africa/Nairobi
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 Zimbra OSE Builds to obtain Zimbra 9 OSE build by Ian Walker.
Extract the package once downloaded.
tar xvf zcs*.tgz
Navigate to created directory once the file has been extrated.
cd zcs*/
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 20.04
wget https://files.zimbra.com/downloads/9.0.0_GA/zcs-NETWORK-9.0.0_GA_4178.UBUNTU20_64.20211112031526.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 Collaboration suite
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.geeksforgeeks.org
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] yes
Create domain: [mail.geeksforgeeks.org] geeksforgeeks.org
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.geeksforgeeks.org
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
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