Đến hết tháng 12/2023, Zimbra 8.8.15 sẽ ngưng hỗ trợ; đến tháng 3/2024, Zimbra 9 sẽ ngưng hỗ trợ. Hiện tại Zimbra 10 đã sẵn sàng kể từ tháng 1/2023 và là phiên bản được khuyên dùng hiện tại. Zimbra 10 có nhiều thay đổi so với Zimbra 8.8.15 và Zimbra 9 như được nêu trong bài viết này.

Chúng tôi sẽ hướng dẫn bạn cài đặt Zimbra 10 trên Ubuntu 20 (và 22).

1. Yêu cầu hệ thống.

Zimbra yêu cầu tối thiểu 8GB RAM, 2 core CPU, 50GB HDD (dung lượng thay đổi tùy thuộc vào dung lượng mailbox).

Để phân vùng lưu trữ cho Zimbra, bạn có thể tham khảo tại đây.

Ví dụ:

Tạo máy ảo vm trên vmware:
– Đổi SCSI controller dùng VMWare Paravirtual.
– Chọn network adapter type là VMXNET 3
– Các ổ cứng hoặc phân vùng ổ cứng:
1G: /boot
100G: / (1 ổ cứng ảo, thin provision, format ext4)
8G: swap
/opt: 500GB (1 ổ cứng ảo, thin provision, format ext4)
/opt/zimbra/backup: 1TB (1 ổ cứng ảo, thin provision, format ext4)
/hsm: 1TB (1 ổ cứng ảo, thin provision, format ext4)

Nếu bạn thuê bao VPS, có thể dùng tool này để kiểm tra hiệu năng của VPS:

2. Trước hết bạn cần kiểm tra xem địa chỉ IP WAN dự định dùng cho mail server có bị nằm trong backlist nào không. Sử dụng các trang sau để kiểm tra:

https://whatismyipaddress.com/blacklist-check

https://barracudacentral.org/lookups

https://www.ers.trendmicro.com/reputations

https://mxtoolbox.com/blacklists.aspx

3. Cài đặt Ubuntu 20 với các lưu ý sau.

hostname: mail.zimilab.com #thay đổi hostname cho phù hợp với bạn.

timezone: Ho Chi Minh

Thêm 1 user account: zimilab

Thiết lập IP tĩnh (1.2.3.4)

Chọn no automatic updates. Hoặc sau khi cài đặt xong sẽ tiến hành tắt auto update bằng cách:

sudo su -
vi /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

4. Cài đặt screen để sử dụng trong quá trình cài đặt Zimbra

apt-get -y install screen wget
screen

5. Tiến hành cập nhật hệ thống

apt update #lấy danh sách 
apt upgrade #thực hiện upgrade thật sự

6. Thiết lập thời gian chính xác cho hệ thống nếu trong bước cài đặt bạn chưa thiết lập, ví dụ:

date -R
apt remove ntp
apt-get install chrony
systemctl start chronyd
systemctl enable chronyd
timedatectl set-timezone asia/ho_chi_minh

Edit file /etc/chrony/chrony.conf, thêm vào trước pool

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

7. Tắt postfix và disable một số dịch vụ như apparmor nếu đã được cài đặt mặc định trên server.

systemctl stop postfix
systemctl disable postfix
systemctl -t service
systemctl list-unit-files -t service
systemctl stop apparmor
systemctl disable apparmor

8. Cài đặt một số gói theo yêu cầu zimbra.

apt-get install netcat
apt-get install libreoffice

9. Trong trường hợp bạn chưa cấu hình IP tĩnh cho server, bạn có thể thực hiện như sau:

vi /etc/netplan/01-netcfg.yaml
# Cấu hình các thông số như IP, subnet, gateway, dns
network:
  version: 2
   ethernets:
    eth0:
      addresses: [1.2.3.4/24]
      gateway4: 1.2.3.1
      nameservers:
       addresses: [8.8.8.8, 9.9.9.9]
      dhcp4: false
      dhcp6: false
      match:
       macaddress: 02:99:44:66:9d:aa
      set-name: eth0

Apply cấu hình và kiểm tra

netplan apply
ip addr

10. Tắt IPV6 nếu bạn không dùng và giảm swappiness.

vi /etc/sysctl.conf
# Turn off IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
# Name the NIC explicitly; seems to be required on Ubuntu 20:
net.ipv6.conf.ens5.disable_ipv6 = 1
# Reduce Swappiness
vm.swappiness = 1

Áp cấu hình

sysctl -p

Cập nhật grub

vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"

Áp cấu hình grub

update-grub
reboot

11. Chỉnh sửa hosts file và hostname nếu cần

hostnamectl set-hostname mail.zimilab.com
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
1.2.3.4 mail.zimilab.com mail
#ipv6 (comment out ipv6). Không dùng ipv6
#Thay 1.2.3.4 bằng IP local của máy chủ

12. Các port cần mở trên firewall cho phép truy cập vào từ internet.

Để mail client truy cập vào Zimbra server bạn cần mở các port sau: 25 (smtp mta), 80 (http mailbox/proxy), 110 (pop3 mailbox/proxy), 143 (imap mailbox/proxy), 443 (https mailbox/proxy), 465 (smtps mta), 587 (smpt submission mta), 993 (imaps mailbox/proxy), 995 (pop3s mailbox/proxy), 7071, 9071 (admin proxy).

apt-get update && apt-get install ufw
ufw default allow outgoing
ufw allow ssh
ufw allow 25/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 587/tcp
ufw allow 993/tcp
ufw allow 995/tcp
ufw allow 9071/tcp
ufw allow 7071/tcp
ufw allow from x.y.z #Thay x.y.z bằng IP của server khác mà bạn muốn whitelist
ufw allow 123/udp
ufw allow 53/udp
ufw enable
ufw status numbered

Comment 2 dòng như sau trong file /etc/ufw/before.rules

vi /etc/ufw/before.rules
Comment 2 dòng như sau:
# drop INVALID packets (logs these in loglevel medium and higher)
# -A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
# -A ufw-before-input -m conntrack --ctstate INVALID -j DROP

Khởi động lại ufw

service ufw restart && service ufw status

13. Yêu cầu về cấu hình DNS.

Trong quá trình cài đặt, Zimbra sẽ yêu cầu phải có MX record cho domain của bạn. Để gửi mail, Zimbra 9 MTA sử dụng DNS để phân giải hostname và thông tin định tuyến email. Để nhận mail, bạn cần có MX record để định tuyến email đến Zimbra mail server của mình.

Nếu bạn không cấu hình DNS, bạn phải sử dụng relay host (trong mục Global Settings > MTA > Bỏ chọn Enable DNS lookups và điền địa chỉ của relay host vào).

Nếu bạn không có sẵn DNS server thì bạn có thể tự dựng riêng 1 DNS server cho riêng hệ thống Zimbra. Vui lòng xem hướng dẫn tại đây.

Ví dụ Cài đặt dnsmasq

apt-get install dnsmasq
vi /etc/dnsmasq.conf
server=9.9.9.9
server=8.8.8.8
listen-address=127.0.0.1
domain=zimilab.com
address=/mta.zimilab.com/1.2.3.4
ptr-record=4.3.2.1.in-addr.arpa,mail.zimilab.com
mx-host=zimilab.com,mail.zimilab.com,10
addn-hosts=/etc/hosts
cache-size=9500

Cấu hình dns là 127.0.0.1 trong net plan

vi /etc/netplan/01-netcfg.yaml
# Đổi IP của dns về 127.0.0.1
netplan apply
ip addr

Chỉnh file gỡ systemd-resolved và chỉnh resolv.conf

systemctl disable systemd-resolved
systemctl stop systemd-resolved
unlink /etc/resolv.conf
vi /etc/resolv.conf
nameserver 127.0.0.1

Kiểm tra phân giải dns

systemctl start dnsmasq
systemctl enable dnsmasq
dig mx zimilab.com
dig mta.zimilab.com
dig -x 1.2.3.4

14. Các thành phần cài đặt Zimbra.

Zimbra 10 core: bao gồm thư viện, công cụ giám sát, các file cấu hình cơ bản. Gói này được tự động cài đặt lên server.

Zimbra 10 LDAP (cần cài đặt): cung cấp xác thực người dùng cho các tài khoản qua OpenLDAP. Bạn cần chọn cài đặt gói này khi dùng Single Server.

Zimbra 10 Store (cần cài đặt): bao gồm các thành phần của mailbox server. Zimbra 9 mailbox server bao gồm các thành phần sau:

Data store: sử dụng Mariadb database.
Message store: là nơi mà tất cả message và tập tin đính kèm được lưu trữ.
Index store: chứa thông tin index.
Web application service.

Zimbra 10 MTA (cần cài đặt): sử dụng postfix để gửi và nhận mail. Còn bao gồm cả chương trình diệt virus và lọc spam.

Zimbra 10 Proxy (cần cài đặt): sử dụng nginx làm reverse proxy để điều phối các yêu cầu imap(s), pop3(s), http(s) từ client đến các dịch vụ Zimbra nội bộ (mailboxd).

Zimbra 10 Modern webapp: được tự động cài đặt lên server.

Zimbra 10 Memcached: được tự động cài đặt khi bạn chọn cài đặt Proxy.

Zimbra 10 SMNP: tùy chọn. Cài đặt khi bạn muốn giám sát Zimbra server qua hệ thống SMNP.

Zimbra 10 Logger: Bạn cần cài đặt để xem báo cáo về hiện trạng hệ thống zimbra.

Zimbra 10 Spell: tùy chọn. Nếu bạn muốn kiểm tra chính tả thì chọn cài đặt.

Zimbra 10 Apache: được tự động cài đặt khi bạn chọn cài Zimbra 9 Spell hoặc Zimbra 9 Conertd.

Zimbra 10 Convertd: cần cài đặt.

Zimbra 10 Archiving: tính năng có trên pro license. Nếu bạn đang sử dụng standard license thì không cần cài đặt.

Zimbra 10 dns-cache: tùy chọn. Nếu bạn đã tự xây dựng hệ thống DNS server rồi thì không cần dùng.

15. Tiến hành cài đặt Zimbra 10.

Xác nhận bạn đã có file license lưu trên server, bạn cũng đã cập nhật hệ điều hành.

Sử dụng screen trong suốt quá trình cài đặt để tránh trường hợp bị mất kết nối ssh trong quá trình cài đặt.

a. Đăng nhập qua ssh vào server, với quyền root:

Tải về file cài đặt Zimbra 10, đặt trong /var/tmp

cd /var/tmp
tar -xvzf [zcsfullfilename.tgz]
cd [zcsfullfilename.tgz]
./install.sh

Bắt đầu cài đặt:

Operations logged to /tmp/install.log.y1YeCSI5
Checking for existing installation…
zimbra-imapd…NOT FOUND
....
zimbra-archiving…NOT FOUND
zimbra-core…NOT FOUND

Zimbra 10 hiển thị Software Agreement, chọn Y để đồng ý tiếp tục cài đặt.

Zimbra 10 hiển thị Use Zimbra 10’s package repository [Y], nhấn Enter để tiếp tục.

Checking for installable packages
Found zimbra-core (local)
...
Found zimbra-network-modules-ng (local)
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]
....
The system will be modified. Continue? [N] Y

Sau khi bạn đã chọn Y, nhấn Enter để cài đặt, Zimbra 10 sẽ thực hiện các bước kiểm tra sau:

Cài đặt lên server các gói được chọn ở trên.
Kiểm tra xem có phân giải được MX record không. Kiểm tra có phân giải được hostname qua DNS không. Nếu có lỗi, chương trình cài đặt sẽ hỏi bạn có muốn chỉnh sửa hostname không.
Kiểm tra xem các port có bị xung đột không.

Sau khi xong các bước này, chương trình cài đặt sẽ hiển thị menu cấu hình các thành phần mà bạn đã cài đặt. Bạn có thể để mặc định các thông số và chỉ tiến hành thay đổi các thông số sau:

a. Để thiết lập time zone, nhập 1 để chọn Common Configuration, sau đó nhập 7 để vào Time Zone, chọn time zone phù hợp (Ho Chi Minh).

Chọn r để quay về Main menu.

Chọn r để quay về Main menu.

Nhập 7 để vào zimbra-store từ Main menu.

b. Nhập 3 để đổi tên mặc định của admin, ví dụ từ admin@zimilab.com thành zbadmin@zimilab.com

c. Nhập 4 để vào Admin Password. Điền mật khẩu của admin, mật khẩu cần ít nhất 6 ký tự. Nhấn Enter.

d. Nhập 33 để vào License filename. Chọn đường dẫn đến file license, ví dụ nhập /tmp/ZimbraLicense.xml nếu bạn để file license trong thư mục /tmp.

e. Nhập r để trở về Main menu. Nếu bạn không cần thay đổi thông số gì thêm nhập a để áp dụng các thay đổi, nhấn Enter.

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

f. Khi được hỏi có đồng ý lưu dữ liệu cấu hình vào một file không, nhập Yes và nhấn Enter.

Save configuration data to a file? [Yes]

g. Chương trình sẽ hỏi bạn muốn lưu cấu hình vào file nào, nhấn Enter để chọn giá trị mặc định.

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

h. Chương trình hỏi về việc sẽ áp dụng các cấu hình đã chọn cho hệ thống, bạn nhập Yes và nhấn Enter để tiếp tục.

The system will be modified – continue? [No] YES
....
Installing Proxy SSL certificate…done.
Initializing ldap…done
....
Moving /tmp/zmsetup.20160711-234517.log to /opt/zimbra/log
Configuration complete – press return to exit

16. Các bước thực hiện sau khi cài đặt

Sau khi cài đặt zimbra, bạn cần cấu hình những chức năng sau.

a. Thiết lập ssh keys

Với quyền zimbra user:

zmupdateauthkeys

Key sẽ được cập nhật vào /opt/zimbra/.ssh/authorized_keys

b. Thiết lập hiển thị thống kê hoạt động của server.

Với quyền root, chạy lệnh sau:

/opt/zimbra/libexec/zmsyslogsetup

Bạn đã hoàn thành việc cài đặt Zimbra trên Single Server

17. Các bước tiếp theo bạn cần làm.

a. Thiết lập DKIM và DMARC: Tham khảo tại đây.

b. Thiết lập chính sách hạn chế số lượng mail gửi ra bằng policyd: Tham khảo tại đây.

c. Thiết lập ssl certificate sử dụng Letsencrypt: Tham khảo tại đây nếu bạn dùng Letsencrypt, tại đây nếu bạn dùng commercial ssl.

d. Thiết lập fail2ban, tham khảo tại đây.

e. Cấu hình nâng cao phần bảo mật, bạn có thể tham khảo tại đây.

f. Ubuntu được cài đặt mặc định chương trình updatedb, bạn có thể cấu hình dịch vụ này để hạn chế quét thư mục cài đặt Zimbra do quá trình quét này tốn rất nhiều tài nguyên CPU và RAM. Thêm /opt vào PRUNEPATHS

cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/opt /tmp /var/spool /media /home/.ecryptfs /var/lib/schroot"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"

Nếu bạn là khách hàng của ZIMICO, bạn sẽ được sử dụng dịch vụ chống spam chuyên nghiệp của Zimico.