Zimbra: развёртывание корпоративного почтового сервера

Zimbra Collaboration Suite: обзор возможностей

Zimbra — это полнофункциональная платформа корпоративной почты и совместной работы с открытым исходным кодом. Она включает почтовый сервер (MTA на базе Postfix), веб-клиент, календарь, контакты, задачи, файловое хранилище и чат. Zimbra — реальная альтернатива Microsoft Exchange для организаций, которые хотят контролировать свою инфраструктуру.

Ключевые компоненты Zimbra:

  • Zimbra MTA — Postfix + Amavis + SpamAssassin + ClamAV для приёма и фильтрации почты
  • Zimbra Store — хранение писем, календарей, контактов (на базе OpenLDAP)
  • Zimbra Proxy — nginx-based прокси для HTTP/HTTPS, IMAP, POP3
  • Zimbra Web Client — AJAX-интерфейс для работы с почтой из браузера
  • Zimbra Admin Console — веб-панель администрирования

Минимальные требования для 50-100 пользователей: 4 CPU, 8 ГБ RAM, 100 ГБ SSD. Для 500+ пользователей рекомендуется 8 CPU, 16 ГБ RAM и разнесение компонентов по нескольким серверам.

Подготовка сервера и DNS-записей

Zimbra чувствительна к правильной настройке DNS и имени хоста. Ошибки на этом этапе — главная причина проблем при установке.

Настройка имени хоста

Задайте FQDN (полное доменное имя) для сервера:

sudo hostnamectl set-hostname mail.example.com

# Проверьте
hostname -f
# Должно вернуть: mail.example.com

Отредактируйте /etc/hosts:

127.0.0.1       localhost
10.0.0.10       mail.example.com mail

Важно: IP-адрес в hosts должен быть реальным IP сервера, а не 127.0.0.1. Zimbra проверяет разрешение имени при установке.

DNS-записи

Создайте следующие DNS-записи для домена example.com:

# A-запись для почтового сервера
mail.example.com.    IN  A      10.0.0.10

# MX-запись
example.com.         IN  MX  10  mail.example.com.

# SPF
example.com.         IN  TXT    "v=spf1 mx ip4:10.0.0.10 ~all"

# DKIM (будет добавлен после установки)
# DMARC
_dmarc.example.com.  IN  TXT    "v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com"

# Autodiscover для Outlook
autodiscover.example.com.  IN  CNAME  mail.example.com.

# PTR-запись (настраивается у хостинг-провайдера)
10.0.0.10  IN  PTR  mail.example.com.

Проверьте записи перед установкой:

dig +short example.com MX
dig +short mail.example.com A
dig +short example.com TXT

Установка Zimbra на Ubuntu 22.04

Перед установкой Zimbra отключите конфликтующие сервисы и подготовьте систему.

Подготовка системы

Остановите и отключите сервисы, которые конфликтуют с Zimbra:

# Остановить postfix, если установлен
sudo systemctl stop postfix 2>/dev/null
sudo systemctl disable postfix 2>/dev/null

# Отключить systemd-resolved (конфликт с dnsmasq Zimbra)
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm /etc/resolv.conf
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

# Установить зависимости
sudo apt update
sudo apt install -y dnsutils net-tools wget perl libperl5.34 libaio1 \
  unzip pax sysstat sqlite3 netcat-openbsd

Загрузка и запуск инсталлятора

Скачайте Zimbra Open Source Edition:

cd /tmp
wget https://files.zimbra.com/downloads/10.0.6/zcs-10.0.6_GA_4613.UBUNTU22_64.20240316100101.tgz
tar xzf zcs-10.0.6_GA_4613.UBUNTU22_64.20240316100101.tgz
cd zcs-10.0.6_GA_4613.UBUNTU22_64.20240316100101
sudo ./install.sh

Инсталлятор задаст вопросы о компонентах. Для single-server установки выберите все:

Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-dnscache [Y]
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [Y]
Install zimbra-proxy [Y]

После установки пакетов инсталлятор перейдёт к настройке. Обязательно задайте пароль администратора через меню:

Main menu:
   6) zimbra-store:   ......
      4) Admin Password:   UNSET

Нажмите 6, затем 4, введите пароль. После этого нажмите «a» для применения конфигурации.

Настройка SSL-сертификата

По умолчанию Zimbra использует самоподписанный сертификат. Для продакшена установите сертификат Let's Encrypt.

Получение сертификата через certbot

Установите certbot и получите сертификат в standalone-режиме:

# Временно остановите прокси Zimbra
sudo su - zimbra -c "zmproxyctl stop"

# Получите сертификат
sudo apt install certbot
sudo certbot certonly --standalone -d mail.example.com

# Подготовьте файлы для Zimbra
SERT_DIR="/etc/letsencrypt/live/mail.example.com"
ZIMBRA_DIR="/opt/zimbra/ssl/letsencrypt"

sudo mkdir -p $ZIMBRA_DIR
sudo cp $CERT_DIR/privkey.pem $ZIMBRA_DIR/privkey.pem
sudo cp $CERT_DIR/cert.pem $ZIMBRA_DIR/cert.pem
sudo cp $CERT_DIR/chain.pem $ZIMBRA_DIR/chain.pem

# Скачайте корневой сертификат
wget -O /tmp/isrg-root-x1.pem https://letsencrypt.org/certs/isrgrootx1.pem
cat $ZIMBRA_DIR/chain.pem /tmp/isrg-root-x1.pem > $ZIMBRA_DIR/fullchain.pem

sudo chown zimbra:zimbra $ZIMBRA_DIR/*

Установка сертификата в Zimbra

Установите сертификат через CLI Zimbra:

sudo su - zimbra

# Проверьте сертификат
/opt/zimbra/bin/zmcertmgr verifycrt comm \
  /opt/zimbra/ssl/letsencrypt/privkey.pem \
  /opt/zimbra/ssl/letsencrypt/cert.pem \
  /opt/zimbra/ssl/letsencrypt/fullchain.pem

# Скопируйте приватный ключ
cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key

# Установите сертификат
/opt/zimbra/bin/zmcertmgr deploycrt comm \
  /opt/zimbra/ssl/letsencrypt/cert.pem \
  /opt/zimbra/ssl/letsencrypt/fullchain.pem

# Перезапустите Zimbra
zmcontrol restart

Для автообновления создайте скрипт:

#!/bin/bash
# /opt/zimbra/scripts/renew-cert.sh
certbot renew --standalone --pre-hook "su - zimbra -c 'zmproxyctl stop'" \
  --post-hook "/opt/zimbra/scripts/deploy-cert.sh"

Добавьте в cron: 0 3 1 */2 * /opt/zimbra/scripts/renew-cert.sh

Антиспам и DKIM

Zimbra включает SpamAssassin и Amavis для фильтрации спама. Дополнительно рекомендуется настроить DKIM для подписи исходящих писем.

Настройка DKIM

Генерация DKIM-ключа через утилиту Zimbra:

sudo su - zimbra
/opt/zimbra/libexec/zmdkimkeyutil -a -d example.com

Команда выведет DNS-запись, которую нужно добавить в DNS:

# Пример вывода:
BF2B1234-5678._domainkey  IN  TXT  ( "v=DKIM1; k=rsa; p=MIIBIjAN..." )

Добавьте эту запись в DNS и проверьте:

dig +short BF2B1234-5678._domainkey.example.com TXT

Тонкая настройка SpamAssassin

Настройте пороги спама через Zimbra CLI:

sudo su - zimbra

# Порог для пометки как спам (по умолчанию 6.6)
zmprov mcf zimbraSpamTagPercent 40
zmprov mcf zimbraSpamKillPercent 75

# Включить обучение SpamAssassin
zmprov mcf zimbraSpamIsSpamAccount spam.account@example.com
zmprov mcf zimbraSpamIsNotSpamAccount ham.account@example.com

# Настроить RBL-списки
zmprov mcf +zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"
zmprov mcf +zimbraMtaRestriction "reject_rbl_client bl.spamcop.net"

Проверьте работу антиспама, отправив тестовое письмо с EICAR или GTUBE:

# GTUBE-строка для теста SpamAssassin
echo "XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X" | \
  mail -s "Spam Test" user@example.com

Интеграция с Active Directory

Zimbra может использовать Active Directory в качестве внешнего источника аутентификации. Пользователи входят с теми же логинами и паролями, что и в домене Windows.

Настройка внешней аутентификации через LDAP

Настройте подключение к AD из командной строки Zimbra:

sudo su - zimbra

# Настроить внешнюю аутентификацию
zmprov md example.com zimbraAuthMech ldap
zmprov md example.com zimbraAuthLdapURL "ldaps://dc01.corp.local:636 ldaps://dc02.corp.local:636"
zmprov md example.com zimbraAuthLdapBindDn "CN=zimbra-ldap,OU=Service Accounts,DC=corp,DC=local"
zmprov md example.com zimbraAuthLdapSearchBase "OU=Users,DC=corp,DC=local"
zmprov md example.com zimbraAuthLdapSearchFilter "(&(objectClass=user)(sAMAccountName=%u))"
zmprov md example.com zimbraAuthLdapSearchBindDn "CN=zimbra-ldap,OU=Service Accounts,DC=corp,DC=local"
zmprov md example.com zimbraAuthLdapSearchBindPassword "SecurePassword123"

Для автоматического создания аккаунтов при первом входе (GAL sync) настройте GAL через Admin Console: Configure → Domains → example.com → GAL Mode → External.

Синхронизация адресной книги (GAL)

Настройте GAL Sync Account для автоматической синхронизации контактов AD:

sudo su - zimbra

# Создание GAL sync аккаунта
zmprov cds example.com galsync galsync@example.com \
  zimbraGalType ldap \
  zimbraGalLdapURL "ldaps://dc01.corp.local:636" \
  zimbraGalLdapSearchBase "DC=corp,DC=local" \
  zimbraGalLdapFilter "(&(objectClass=user)(mail=*))" \
  zimbraGalLdapBindDn "CN=zimbra-ldap,OU=Service Accounts,DC=corp,DC=local" \
  zimbraGalLdapBindPassword "SecurePassword123" \
  zimbraGalSyncLdapPageSize 1000 \
  zimbraDataSourcePollingInterval 15m

Принудительная синхронизация:

zmgsautil forceSync -a galsync@example.com -n galsync

Резервное копирование и восстановление

Open Source Edition Zimbra не включает встроенный модуль бэкапа (он есть только в Network Edition). Для резервного копирования используем скрипты и утилиты Zimbra CLI.

Бэкап через zmmailbox

Экспорт почтовых ящиков в формате tar/tgz:

sudo su - zimbra

# Бэкап одного ящика
zmmailbox -z -m user@example.com getRestURL '//?fmt=tgz' > /backups/user-$(date +%Y%m%d).tgz

# Бэкап всех ящиков
for user in $(zmprov -l gaa example.com); do
  echo "Backing up $user..."
  zmmailbox -z -m "$user" getRestURL '//?fmt=tgz' > "/backups/${user}-$(date +%Y%m%d).tgz"
done

Восстановление из бэкапа:

zmmailbox -z -m user@example.com postRestURL '//?fmt=tgz&resolve=reset' \
  /backups/user-20260408.tgz

Полный бэкап LDAP и конфигурации

Не забудьте бэкапить LDAP-базу и конфигурацию Zimbra:

sudo su - zimbra

# Бэкап LDAP
/opt/zimbra/libexec/zmslapcat /backups/ldap

# Бэкап конфигурации
cp -r /opt/zimbra/conf /backups/zimbra-conf-$(date +%Y%m%d)

# Экспорт всех настроек домена
zmprov gd example.com > /backups/domain-settings-$(date +%Y%m%d).txt

# Экспорт настроек всех аккаунтов
for user in $(zmprov -l gaa example.com); do
  zmprov ga "$user" > "/backups/account-settings/${user}.txt"
done

Рекомендуемый скрипт ежедневного бэкапа:

#!/bin/bash
BACKUP_DIR="/backups/zimbra/$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"/{mailboxes,ldap,conf}

# LDAP
su - zimbra -c "/opt/zimbra/libexec/zmslapcat $BACKUP_DIR/ldap"

# Config
cp -r /opt/zimbra/conf "$BACKUP_DIR/conf/"

# Mailboxes
for user in $(su - zimbra -c 'zmprov -l gaa'); do
  su - zimbra -c "zmmailbox -z -m $user getRestURL '//?fmt=tgz'" > \
    "$BACKUP_DIR/mailboxes/${user}.tgz" 2>/dev/null
done

# Ротация: удаляем бэкапы старше 14 дней
find /backups/zimbra -maxdepth 1 -type d -mtime +14 -exec rm -rf {} \;

echo "$(date): Backup complete" >> /var/log/zimbra-backup.log

Часто задаваемые вопросы

Для 500 пользователей рекомендуется: 8 CPU cores, 16 ГБ RAM, 500 ГБ SSD для хранилища. Для лучшей производительности разнесите компоненты: отдельный сервер для MTA/Proxy и отдельный для Store/LDAP. Zimbra активно использует Java-heap: выделите минимум 8 ГБ для zimbra-store (mailboxd).

Да. Zimbra предоставляет утилиту ZCS Migration Wizard для Windows, которая переносит почту, контакты и календари из Exchange/Outlook. Также можно использовать протокол IMAP для миграции через утилиты типа imapsync: imapsync --host1 exchange.corp --user1 user --host2 mail.example.com --user2 user@example.com. Миграцию лучше проводить поэтапно, начиная с тестовой группы.

Zimbra OSE поддерживает IMAP/POP3 и CalDAV/CardDAV для мобильных клиентов. Для ActiveSync (push-уведомления) в OSE используйте расширение Z-Push: установите его на отдельный сервер или в контейнер. В Network Edition ActiveSync включён из коробки. Настройте autodiscover для автоматической конфигурации мобильных клиентов.

Для single-server установки даунтайм неизбежен (обычно 15-30 минут). Порядок действий: сделайте полный бэкап, скачайте новую версию, запустите ./install.sh — инсталлятор определит существующую установку и предложит обновление. Для multi-server установки обновляйте компоненты поочерёдно: сначала LDAP, затем Store, затем MTA/Proxy.

Используйте встроенные утилиты: zmcontrol status — статус всех сервисов, zmdiaglog — сбор диагностики, zmmailboxdctl status — состояние mailbox-демона. Для мониторинга через Zabbix/Nagios используйте скрипт проверки: su - zimbra -c 'zmcontrol status' | grep -v Running — выводит только проблемные сервисы. Также следите за очередью Postfix: su - zimbra -c 'mailq | tail -1'.

Нужна помощь с настройкой?

Специалисты АйТи Фреш помогут с внедрением и настройкой — 15+ лет опыта, обслуживание от 15 000 ₽/мес

📞 Связаться с нами
#zimbra установка#zimbra настройка#корпоративный почтовый сервер#zimbra ssl#zimbra антиспам#zimbra active directory#zimbra бэкап#zimbra linux
Комментарии 0

Оставить комментарий

загрузка...