INSTALL ZIMBRA ON UBUNTU 20.04 STEP BY STEP

In my last article on Zimbra, I already discussed the聽installation of Zimbra on Centos 7/8. In this article, you will learn to install Zimbra on Ubuntu 20.04/21.04.

Zimbra is open source mailing solution developed by Synacor. It has another edition as well which is the Network edition. However, Zimbra Open source is used by many universities and big companies.

Basically, Zimbra is the best alternative to paid Google Workspace, Office 365, Zoho mail, etc. So, if you like to have your own email server without any fuss, then you should look no further.

Zimbra is open source mailing solution developed by Synacor. It has another edition as well which is the Network edition. However, Zimbra Open source is used by many universities and big companies.

Basically, Zimbra is the best alternative to paid Google Workspace, Office 365, Zoho mail, etc. So, if you like to have your own email server without any fuss, then you should look no further.

Zimbra 鈥 System Requirement
A domain name
A cloud, VPS, or dedicated server based on your need.
But your system should meet the following minimum configuration as per the Zimbra documentation.

CPU 鈥 1.5 GHz
Memory 鈥 8 GB
Storage 鈥 5 GB for ZCS installation
Initial Domain Setup
First of all create 2 DNS entries in the domain records as follows

Initial Domain Setup First of all create 2 DNS entries in the domain records as follows
				
					Type	Host	Value
A	    mail	1.2.3.4
MX	    @	mail.edabosang.com 10
				
			
Initial Server Setup First of all, switch to the root user, just in case you not working as the root user.
				
					root@vmi928964:~# sudo -i
				
			
Next, update and upgrade Ubuntu
				
					root@vmi928964:~# apt update && apt upgrade -y
				
			
After that, set the hostname
				
					root@vmi928964:~# hostnamectl set-hostname mail.edabosang.com
root@vmi928964:~# sudo -i
				
			
Now, you need to edit Ubuntu Hosts file
				
						root@mail:~# nano /etc/hosts
				
			
The hosts file should contain
				
					console.log( 'Code is Poetry127.0.0.1       localhost
127.0.1.1       mail.edabosang.com mail
1.2.3.4         mail.edabosang.com mail
				
			
Install Dnsmasq Next, we need to install Dnsmasq to create and manage a few DNS records required by Zimbra. We also need to disable systemd-resolve in order to avoid conflict between dnsmasq and systemd-resolve
				
					root@mail:~# systemctl disable systemd-resolved
root@mail:~# systemctl stop systemd-resolved
				
			
After disabling, systemd-resolve you need to edit resolv.conf to include the Google DNS server. It鈥檚 easy, but on some VPS this config file reset to the default value after reboot or upgrade. Therefore, we are going to first unlink it, then include our content.
				
					root@mail:~# ls -lh /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Jan 20  2021 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
				
			
You can see it鈥檚 symlinked and therefore in order to remove it
				
						root@mail:~# rm -f /etc/resolv.conf
				
			
Now create your own resolv.conf
				
					root@mail:~# nano /etc/resolv.conf
				
			
Next, insert the following content
				
					nameserver 8.8.8.8
				
			
Save and exit with CTRL + X
Now install Dnsmasq
				
					root@mail:~# apt install dnsmasq -y
				
			
Configuring Dnsmasq Take the backup of the existing Dnsmasq config file and edit the file
				
					root@mail:~# cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
root@mail:~# nano /etc/dnsmasq.conf
				
			
Insert the following content at the bottom and don鈥檛 forget to replace the IP address and domain name
				
					server= 1.2.3.4
domain=edabosang.com
mx-host= edabosang.com, mail.edabosang.com, 5
mx-host= mail.edabosang.com, mail.edabosang.com, 5
listen-address=127.0.0.1
				
			
Now save the file. If you run the dig the command you should get the following output
				
					root@mail:~# dig -t A mail.edabosang.com
 
; <<>> DiG 9.16.1-Ubuntu <<>> -t A mail.edabosang.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15272
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mail.edabosang.com.              IN      A
 
;; ANSWER SECTION:
mail.edabosang.com.       1799    IN      A       1.2.3.4
 
;; Query time: 31 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jul 10 14:59:46 CEST 2022
;; MSG SIZE  rcvd: 61
				
			
Next, MX dig should return
				
					root@mail:~# dig -t MX edabosang.com
 
; <<>> DiG 9.16.1-Ubuntu <<>> -t MX edabosang.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4658
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;edabosang.com.                   IN      MX
 
;; ANSWER SECTION:
;edabosang.com.            1799    IN      MX      10 mail.edabosang.com.
 
;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jul 10 14:59:05 CEST 2022
;; MSG SIZE  rcvd: 61
				
			
Installing Zimbra Open Source Edition Now, you need to download Zimbra OSE with the following command. You can always get the latest file from Zimbra Website.
				
					root@mail:~# wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_4179.UBUNTU20_64.20211118033954.tgz
				
			
Next, you have to extract the content
				
					root@mail:~# tar xvzf zcs-8.8.15_GA_4179.UBUNTU20_64.20211118033954.tgz
				
			
It鈥檚 time to install Zimbra
				
					root@mail:~# cd zcs-8.8.15_GA_4179.UBUNTU20_64.20211118033954
root@mail:~/zcs-8.8.15_GA_4179.UBUNTU20_64.20211118033954# ./install.sh
				
			
You will be asked to agree to license and a few other questions to whom you have to answer as follows
				
					Do you agree with the terms of the software license agreement? [N] y
Use Zimbra's package repository [Y] y
Warning: apt-key output should not be parsed (stdout is not a terminal)
Importing Zimbra GPG key
Configuring package repository
Checking for installable packages
Found zimbra-core (local)
Found zimbra-ldap (local)
Found zimbra-logger (local)
Found zimbra-mta (local)
Found zimbra-dnscache (local)
Found zimbra-snmp (local)
Found zimbra-store (local)
Found zimbra-apache (local)
Found zimbra-spell (local)
Found zimbra-memcached (repo)
Found zimbra-proxy (local)
Found zimbra-drive (repo)
Found zimbra-imapd (local)
Found zimbra-patch (repo)
Found zimbra-mta-patch (repo)
Found zimbra-proxy-patch (repo)
Select the packages to install
Install zimbra-ldap [Y] y
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] n
Install zimbra-imapd (BETA - for evaluation only) [N] n
Install zimbra-chat [Y] n
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.
				
			
Zimbra will ask for confirmation of installation
				
					The system will be modified.  Continue? [N] y
 
Beginning Installation - see /tmp/install.log.UUJ9kVuj for details...
 
                          zimbra-core-components will be downloaded and installed.
                            zimbra-timezone-data will be installed.
                   zimbra-common-mbox-conf-attrs will be installed.
                          zimbra-common-core-jar will be installed.
                  zimbra-common-mbox-conf-rights will be installed.
                         zimbra-common-core-libs will be installed.
                    zimbra-common-mbox-conf-msgs will be installed.
                           zimbra-common-mbox-db will be installed.
                         zimbra-common-mbox-docs will be installed.
                   zimbra-common-mbox-native-lib will be installed.
                         zimbra-common-mbox-conf will be installed.
                                     zimbra-core will be installed.
                          zimbra-ldap-components will be downloaded and installed.
                                     zimbra-ldap will be installed.
                                   zimbra-logger will be installed.
                           zimbra-mta-components will be downloaded and installed.
                                      zimbra-mta will be installed.
                      zimbra-dnscache-components will be downloaded and installed.
                                 zimbra-dnscache will be installed.
                          zimbra-snmp-components will be downloaded and installed.
                                     zimbra-snmp will be installed.
                         zimbra-store-components will be downloaded and installed.
                       zimbra-jetty-distribution will be downloaded and installed.
                          zimbra-mbox-store-libs will be installed.
                                zimbra-mbox-conf will be installed.
                   zimbra-mbox-admin-console-war will be installed.
                                 zimbra-mbox-war will be installed.
                       zimbra-mbox-webclient-war will be installed.
                             zimbra-mbox-service will be installed.
                                    zimbra-store will be installed.
                        zimbra-apache-components will be downloaded and installed.
                                   zimbra-apache will be installed.
                         zimbra-spell-components will be downloaded and installed.
                                    zimbra-spell will be installed.
                                zimbra-memcached will be downloaded and installed.
                         zimbra-proxy-components will be downloaded and installed.
                                    zimbra-proxy will be installed.
                                    zimbra-patch will be downloaded and installed                                                                                                                                                                                                             (later).
                                zimbra-mta-patch will be downloaded and installed                                                                                                                                                                                                             (later).
                              zimbra-proxy-patch will be downloaded and installed                                                                                                                                                                                                             (later).
 
Downloading packages (11):
   zimbra-core-components
   zimbra-ldap-components
   zimbra-mta-components
   zimbra-dnscache-components
   zimbra-snmp-components
   zimbra-store-components
   zimbra-jetty-distribution
   zimbra-apache-components
   zimbra-spell-components
   zimbra-memcached
   zimbra-proxy-components
      ...done
 
Removing /opt/zimbra
Removing zimbra crontab entry...done.
Cleaning up zimbra init scripts...done.
Cleaning up /etc/security/limits.conf...done.
 
Finished removing Zimbra Collaboration Server.
				
			
Now on the next screen, it will ask you to set Master DNS IP address and Admin Password
				
					Main menu
   1) Common Configuration:
   2) zimbra-ldap:                             Enabled
   3) zimbra-logger:                           Enabled
   4) zimbra-mta:                              Enabled
   5) zimbra-dnscache:                         Enabled
******* +Master DNS IP address(es):            UNSET
        +Enable DNS lookups over TCP:          yes
        +Enable DNS lookups over UDP:          yes
        +Only allow TCP to communicate with Master DNS: no                        
   6) zimbra-snmp:                             Enabled
   7) zimbra-store:                            Enabled
        +Create Admin User:                    yes
        +Admin user to create:                 admin@mail.edabosang.com
******* +Admin Password                        UNSET
        +Anti-virus quarantine user:           virus-quarantine.c73xqgvr@mail.edabosang.com
        +Enable automated spam training:       yes
        +Spam training user:                   spam.g1kkn_0g6l@mail.edabosang.com
        +Non-spam(Ham) training user:          ham.tzkyhmqk2a@mail.edabosang.com
        +SMTP host:                            mail.edabosang.com
        +Web server HTTP port:                 8080
        +Web server HTTPS port:                8443
        +Web server mode:                      https
        +IMAP server port:                     7143
        +IMAP server SSL port:                 7993
        +POP server port:                      7110
        +POP server SSL port:                  7995
        +Use spell check server:               yes
        +Spell server URL:                     http://mail.edabosang.com:7780/aspell.php
        +Enable version update checks:         TRUE
        +Enable version update notifications:  TRUE
        +Version update notification email:    admin@mail.edabosang.com
        +Version update source email:          admin@mail.edabosang.com
        +Install mailstore (service webapp):   yes
        +Install UI (zimbra,zimbraAdmin webapps): yes
   8) zimbra-spell:                            Enabled
   9) zimbra-proxy:                            Enabled
  10) Default Class of Service Configuration:
   s) Save config to file
   x) Expand menu
   q) Quit5
				
			
Answer it as follows
				
					Address unconfigured (**) items  (? - help) 5
DNS Cache configuration
   1) Status:                                Enabled
** 2) Master DNS IP address(es):               UNSET
   3) Enable DNS lookups over TCP:             yes
   4) Enable DNS lookups over UDP:             yes
   5) Only allow TCP to communicate with Master DNS: no
Select, or 'r' for previous menu [r] 2
IP Address(es) of Master DNS Server(s), space separated: 8.8.8.8
				
			
Next set Admin Password
				
					Main menu
 
   1) Common Configuration:
   2) zimbra-ldap:                             Enabled
   3) zimbra-logger:                           Enabled
   4) zimbra-mta:                              Enabled
   5) zimbra-dnscache:                         Enabled
   6) zimbra-snmp:                             Enabled
   7) zimbra-store:                            Enabled
        +Create Admin User:                    yes
        +Admin user to create:                 admin@mail.edabosang.com
******* +Admin Password                        UNSET
        +Anti-virus quarantine user:           virus-quarantine.3liys4nw@mail.edabosang.com
        +Enable automated spam training:       yes
        +Spam training user:                   spam.cfzvesa2d5@mail.edabosang.com
        +Non-spam(Ham) training user:          ham.ofijq5m5@mail.edabosang.com
        +SMTP host:                            mail.edabosang.com
        +Web server HTTP port:                 8080
        +Web server HTTPS port:                8443
        +Web server mode:                      https
        +IMAP server port:                     7143
        +IMAP server SSL port:                 7993
        +POP server port:                      7110
        +POP server SSL port:                  7995
        +Use spell check server:               yes
        +Spell server URL:                     http://mail.edabosang.com:7780/aspell.php
        +Enable version update checks:         TRUE
        +Enable version update notifications:  TRUE
        +Version update notification email:    admin@mail.edabosang.com
        +Version update source email:          admin@mail.edabosang.com
        +Install mailstore (service webapp):   yes
        +Install UI (zimbra,zimbraAdmin webapps): yes
   8) zimbra-spell:                 Enabled
   9) zimbra-proxy:                            Enabled
  10) Default Class of Service Configuration:
   s) Save config to file
   x) Expand menu
   q) Quit
Address unconfigured (**) items  (? - help) 7
Store configuration
   1) Status:                                 Enabled
   2) Create Admin User:                       yes
   3) Admin user to create:                    admin@mail.edabosang.com
** 4) Admin Password                           UNSET
   5) Anti-virus quarantine user:              virus-quarantine.3liys4nw@mail.edabosang.com
   6) Enable automated spam training:          yes
   7) Spam training user:                      spam.cfzvesa2d5@mail.edabosang.com
   8) Non-spam(Ham) training user:             ham.ofijq5m5@mail.edabosang.com
   9) SMTP host:                               mail.edabosang.com
  10) Web server HTTP port:                    8080
  11) Web server HTTPS port:                   8443
  12) Web server mode:                         https
  13) IMAP server port:                        7143
  14) IMAP server SSL port:                    7993
  15) POP server port:                         7110
  16) POP server SSL port:                     7995
  17) Use spell check server:                  yes
  18) Spell server URL:                        http://mail.edabosang.com:7780/aspell.php
  19) Enable version update checks:            TRUE
  20) Enable version update notifications:     TRUE
  21) Version update notification email:       admin@mail.edabosang.com
  22) Version update source email:             admin@mail.edabosang.com
  23) Install mailstore (service webapp):      yes
  24) Install UI (zimbra,zimbraAdmin webapps): yes
Select, or 'r' for previous menu [r] 4
				
			
Next, either accept the generated pass or enter the new one
				
					Password for admin@mail.edabosang.com (min 6 characters): [m3XShBkX]
Store configuration
   1) Status:                                Enabled
   2) Create Admin User:                      yes
   3) Admin user to create:                 admin@mail.edabosang.com
   4) Admin Password                         set
   5) Anti-virus quarantine user:              virus-quarantine.3liys4nw@mail.edabosang.com
   6) Enable automated spam training:          yes
   7) Spam training user:                      spam.cfzvesa2d5@mail.edabosang.com
   8) Non-spam(Ham) training user:             ham.ofijq5m5@mail.edabosang.com
   9) SMTP host:                               mail.edabosang.com
  10) Web server HTTP port:                    8080
  11) Web server HTTPS port:                   8443
  12) Web server mode:                         https
  13) IMAP server port:                        7143
  14) IMAP server SSL port:                    7993
  15) POP server port:                         7110
  16) POP server SSL port:                     7995
  17) Use spell check server:                  yes
  18) Spell server URL:                        http://mail.edabosang.com:7780/aspell.php
  19) Enable version update checks:            TRUE
  20) Enable version update notifications:     TRUE
  21) Version update notification email:       admin@mail.edabosang.com
  22) Version update source email:             admin@mail.edabosang.com
  23) Install mailstore (service webapp):      yes
  24) Install UI (zimbra,zimbraAdmin webapps): yes
				
			
Now you will be asked a few more questions.
				
					Select, or 'r' for previous menu [r] r
Main menu
   1) Common Configuration:
   2) zimbra-ldap:                            Enabled
   3) zimbra-logger:                          Enabled
   4) zimbra-mta:                             Enabled
   5) zimbra-dnscache:                        Enabled
   6) zimbra-snmp:                            Enabled
   7) zimbra-store:                           Enabled
   8) zimbra-spell:                           Enabled
   9) zimbra-proxy:                           Enabled
  10) 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]
Save config in file: [/opt/zimbra/config.21298]
Saving config in /opt/zimbra/config.21298...done.
The system will be modified - continue? [No] yes
				
			
At the end of the installation, you will be asked whether you would like to notify Zimbra. Answer and your installation will be complete in a few more minutes.
Now, you can open access Zimbra from the browser. Go to https://mail.edabosang.com:7071 and enter the user name admin and chosen password. You will receive SSL warning accept and proceed.
If you are unable to access then the firewall might be running. You need to allow the port to accept traffic.
				
					root@mail:~# service ufw status
鈼 ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sun 2022-07-10 15:51:30 CEST; 2h 57min ago
       Docs: man:ufw(8)
   Main PID: 260 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 9479)
     Memory: 0B
     CGroup: /system.slice/ufw.service
				
			
Initial Server Setup First of all, switch to the root user, just in case you not working as the root use
				
					root@mail:~# ufw allow 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071/tcp
Rules updated
Rules updated (v6)
				
			
Scroll to Top