2,7K подписчиков

Почтовый сервер для компании на Ubuntu 22.04 + Zimbra

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc. Он поставляется со сценарием оболочки, который автоматически устанавливает и настраивает все необходимые компоненты почтового сервера на вашем сервере Linux, что исключает ручную установку и настройку. С Zimbra вы можете легко создавать неограниченное количество почтовых ящиков и неограниченное количество почтовых доменов в веб-панели администратора. Учетными записями электронной почты можно управлять в MariaDB или OpenLDAP.

 Существует две версии Zimbra:

  • Бесплатная версия с открытым исходным кодом.
  • Коммерческая версия Network Edition с 60-дневной бесплатной пробной версией.

В этой статье мы рассматриваем бесплатную версию продукта.

Содержание статьи

  • Состав решения
  • Системные требования
  • Проброс портов через маршрутизатор и создание DNS записей
  • Подготовка сервера
  • Установка Zimbra
  • Настройка почтового сервера
  • Проверка работы
  • Потребляемые ресурсы
  • Вывод

Состав решения

Zimbra достаточно непростое и тяжёлое решение с впечатляющим функционалом:

  • Postfix - SMTP сервер
  • Веб-сервер Nginx для обслуживания консоли администратора и веб-почты. Он также будет использоваться в качестве прокси-сервера IMAP/POP3.
  • Jetty : сервер веб-приложений, на котором работает программное обеспечение Zimbra.
  • OpenLDAP - служит для хранения конфигурации Zimbra, глобального списка адресов Zimbra и обеспечивает аутентификацию пользователей.
  • База данных MariaDB
  • OpenDKIM : для подписи и проверки DKIM
  • Amavised-new : интерфейс между MTA и сканером контента.
  • SpamAssassin для защиты от спама
  • ClamAV : антивирусный сканер
  • Lucene : полнофункциональная текстовая и поисковая система с открытым исходным кодом.
  • Apache JSieve : фильтр сообщений электронной почты
  • LibreOffice : предварительный просмотр документов с высокой точностью
  • Aspell : средство проверки орфографии с открытым исходным кодом, используемое в веб-клиенте Zimbra.
  • memcached : система кэширования объектов с открытым исходным кодом.
  • unbound : легкий и быстрый преобразователь DNS.
  • zimbra-drive : облачное хранилище.
  • zimbra-chat : текстовый чат.
  • zimbra-talk : групповой обмен сообщениями и видеоконференции с возможностью совместного использования экрана и обмена файлами.
  • mailboxd : собственный сервер IMAP/POP3.

Требования к серверу

Минимальные требования:

  • Процессор от 2 ядер 1,8 Ггц
  • Оперативная память от 3 Гб
  • Дисковая подсистема SSD от 10ГБ

Системные требования для инсталляции от 50 сотрудников:

  • Процессор от 4 ядер 2.4 Ггц
  • Оперативная память от 8Гб
  • Дисковая подсистема m.2 SSD от 1ТБ

Проброс портов через маршрутизатор и создание DNS записей

На маршрутизаторе необходимо настроить правила DNAT для следующих портов:

В параметрах назначения указываем наш почтовый сервер.

В Панели управления у хостинг провайдера необходимо настроить DNS записи, добавив значения:

  • Запись типа МХ mail.company.ru 10
  • Запись типа А mail.company.ru внешний_ip_адрес_шлюза

Необходимо написать письмо вашему интернет провайдеру, с просьбой прописать у себя в DNS PTR запись с именем вашего почтового сервера и ip.

Подготовка сервера

Повысим наши права в системе:

sudo -s

Обновим систему:

apt update && apt upgrade -y

Переименуем наш хост если требуется:

hostnamectl set-hostname mail.tuning-admina.ru

Отредактируем файл /etc/hosts и укажем имя хоста вашего почтового сервера после localhost:

127.0.0.1 localhost.localdomain localhost mail.tuning-admina.ru

Установим необходимые пакеты:

apt install nano mc net-tools wget -y

Устанавливаем сервис синхронизации времени:

apt install chrony -y

Добавляем в автозапуск службу:

systemctl enable chrony

Запускаем службу:

systemctl start chrony

Перезагрузим сервер:

reboot

Установка почтового сервера Zimbra

На текущий момент на официальном сайте доступна последняя версия с открытым исходным кодом 8.8.12 и является достаточно старым релизом и поддерживает Ubuntu 18.04LTS. Однако есть поставщик решений Zimbra под названием Zextras, на сайте которого доступна версия 9.0.0p28 от 27.12.2022.

Перейдем на сайт Zextras, заполним форму, чтобы получить ссылку для загрузки Zimbra 9:

https://download.zextras.com/zcs-9.0.0_OSE_UBUNTU20_latest-zextras.tgz 

Идем в консоль и скачиваем архив:

wget https://download.zextras.com/zcs-9.0.0_OSE_UBUNTU20_latest-zextras.tgz

Распаковываем архив:

tar zxvf zcs-9.0.0_OSE_UBUNTU20_latest-zextras.tgz

Перейдем в каталог:

cd zcs-9.0.0_OSE_UBUNTU20_latest-zextras

Запускаем сценарий установки:

bash install.sh

Появится мастер настройки почтового сервера. Во-первых, вам необходимо согласиться с условиями лицензионного соглашения на программное обеспечение.

Затем введите y, чтобы подтвердить, что вы хотите использовать репозиторий пакетов Zimbra.

Затем он попросит вас выбрать пакеты, которые вы хотите установить. Вы можете установить их, нажав y. ( пишется с заглавной Yбуквы, что означает, что это ответ по умолчанию, когда вы нажимаете Enter.) Обратите внимание, что пакет zimbra-imapd в настоящее время находится в стадии бета-тестирования, и его не рекомендуется устанавливать. Я просто нажимаю Enter, чтобы использовать ответы по умолчанию.

Подтвердите выбранные вами пакеты, нажав y.

Теперь начинается установка.

Он может сказать вам, что вам нужно изменить 

имя хоста . Ответьте yи введите имя хоста вашего почтового сервера ( mail.your-domain.com).

Он также может сказать вам, что вам нужно изменить доменное имя . В этом руководстве предполагается, что вам нужен адрес электронной почты, например john.doe@your-domain.com . В этом случае введите , Yа затем введите your-domain.com здесь, без поддомена.

Если он сообщает вам, что ни одна из записей MX не разрешается на этот хост, вам необходимо создать DNS-запись A для домена mail.your-domain.com.

Если обнаружен конфликт zimbra-dnscache портов (порт 53), вам необходимо открыть другой сеанс SSH и выполнить следующую команду, чтобы остановить systemd-resolved службу.

systemctl stop systemd-resolved

и продолжить установку.

Затем отображается главное меню. Это говорит вам, что пароль администратора не установлен, поэтому вам нужно нажать 7, а затем нажать, 4чтобы установить пароль администратора.

После установки пароля для учетной записи администратора нажмите , 

r

чтобы вернуться в главное меню, затем нажмите следующие клавиши.

  • Нажмите a, чтобы применить конфигурацию.
  • Нажмите y, чтобы сохранить конфигурацию в файл.
  • Нажмите Enter, чтобы использовать имя файла по умолчанию.
  • Нажмите y, чтобы продолжить.

Дождитесь окончания процесса установки. В конце установки у вас есть возможность уведомить Zimbra о вашей установке.

После завершения настройки нажмите , 

Enterчтобы выйти из мастера настройки.

Всё установка завершена, отправимся по адресу:

https://mail.tuning-admina.ru

Настройка Systemd-Resolved

Systemd-resolved — это менеджер преобразователя DNS по умолчанию в Ubuntu. Нам нужно изменить его конфигурацию, чтобы он работал с Zimbra. Он должен запускаться после службы Zimbra во время загрузки системы.

Файл конфигурации службы для systemd-resolved — это /lib/systemd/system/systemd-resolved.service. Чтобы переопределить конфигурацию службы systemd по умолчанию, мы создаем отдельный каталог.

sudo mkdir -p /etc/systemd/system/systemd-resolved.service.d/

Затем создайте файл в этом каталоге.

sudo nano /etc/systemd/system/systemd-resolved.service.d/custom.conf

Добавьте в файл следующие строки, которые заставят systemd-resolvedстартовать после запуска Zimbra, и заставим его спать за 60 секунд до того, как он будет запущен.

[Ед. изм]

После=zimbra.service

До=

[Оказание услуг]

ExecStartPre=/bin/сон 60

Сохраните и закройте файл. Затем перезагрузите systemd, чтобы изменения вступили в силу.

sudo systemctl демон-перезагрузка

Тестирование несвязанного преобразователя DNS

Резолвер несвязанных DNS устанавливается Zimbra. Тем не менее, он может не работать из коробки. Перезагрузите сервер.

sudo shutdown -r сейчас

Затем снова войдите на свой сервер через SSH и выполните следующую команду, чтобы проверить, работает ли разрешение DNS.

копать A linuxbabe.com

Если вы видите SERVFAILошибку, это означает, что Unbound не работает должным образом.

Чтобы это исправить, переключитесь на zimbraпользователя.

судо су - зимбра

И проверьте, какой восходящий DNS-преобразователь использует Unbound.

zmprov getServer `zmhostname` | grep DNSMasterIP

Правильная настройка должна показать вам, что 8.8.8.8 является восходящим преобразователем DNS.

zimbraDNSMasterIP: 8.8.8.8

Если 127.0.0.53это восходящий резолвер, у вас проблема. Удалите его с помощью:

zmprov ms `zmhostname` -zimbraDNSMasterIP 127.0.0.53

Затем добавьте 8.8.8.8 в качестве восходящего преобразователя.

zmprov ms `zmhostname` +zimbraDNSMasterIP 8.8.8.8

Теперь выйдите из zimbraпользователя

выход

Подождите несколько секунд и снова выполните следующую команду для проверки.

копать A linuxbabe.com

Вы должны увидеть следующий вывод, что означает, что теперь он работает правильно.

Если вы выполните следующую команду, чтобы показать, какой преобразователь DNS использует ваш сервер,

кот /etc/resolv.conf

и это говорит вам, что

/etc/resolv.conf: нет такого файла или каталога

Проверьте, systemd-resolved.serviceзапущен ли .

статус sudo systemctl systemd-resolved

Выполните следующую команду, чтобы убедиться, что она будет автоматически запущена во время загрузки.

sudo systemctl enable --now systemd-resolved

Установка сертификата Let’s Encrypt

Чтобы получить бесплатный TLS-сертификат Let’s Encrypt, необходимо установить утилиту certbot:

apt install certbot

Zimbra при установке уже настроила параметры TLS в Nginx, мы можем использовать standalone плагин для получения сертификата через TCP-порт 80:

certbot certonly --standalone --agree-tos --staple-ocsp ---admin@company.ru -d mail.company.ru --preferred-chain 'ISRG Root X1'

  • certonly: получить сертификат, но не устанавливать его автоматически.
  • --standalone:использует автономный плагин для получения сертификата.
  • --preferred-chain 'ISRG Root X1': используйте цепочку сертификатов ISRG Root X1

Если все прошло хорошо, вы увидите следующий текст, указывающий, что вы успешно получили сертификат TLS. Ваш сертификат и цепочка сохранены в /etc/letsencrypt/live/mail.company.ru/

Невозможность получить сертификат TLS

Если certbot не смог получить сертификат TLS, возможно, это связано с тем, что ваши записи DNS не распространяются в Интернете. В зависимости от регистратора домена, которого вы используете, ваша DNS-запись может быть распространена мгновенно или может занять до 24 часов. Вы можете перейти на https://dnsmap.io , ввести имя хоста вашего почтового сервера ( mail.your-domain.com), чтобы проверить распространение DNS.

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

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

sudo apt установить acl

sudo setfacl -R -mu:zimbra:rwx /etc/letsencrypt/

Переключиться на zimbraпользователя.

судо су - зимбра

Скопируйте закрытый ключ.

cp /etc/letsencrypt/live/ mail.your-domain.com /privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key

Скачайте сертификат Let’s Encrypt Root CA.

wget -O /tmp/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt

Создайте цепочку сертификатов. Следующая команда поместит корневой сертификат ЦС (isrgrootx1.pem) под промежуточный сертификат ЦС (chain.pem). Вы не должны менять порядок, иначе это не сработает.

cat /etc/letsencrypt/live/ mail.your-domain.com /chain.pem /tmp/isrgrootx1.pem > /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

развернуть сертификат.

/opt/zimbra/bin/zmcertmgr deploycrt comm /etc/letsencrypt/live/ mail.your-domain.com /cert.pem /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

Просмотрите развернутый сертификат.

/opt/zimbra/bin/zmcertmgr viewdeployedcrt

Перезапустите Зимбру.

перезапуск zmcontrol

Выполните следующую команду от имени 

zimbraпользователя, чтобы проверить, запущены ли все службы Zimbra.

статус zmcontrol

Если все работает, должно появиться

Исправление проблем

Неверное имя хоста

Если zmcontrol statusкоманда показывает localhost.localdomainимя хоста, вам нужно изменить имя хоста на mail.your-domain.com.

/opt/zimbra/libexec/zmsetимя_сервера -n mail.ваш-домен.com

Затем удалите localhost.localdomain.

zmloggerhostmap -d локальный хост.локальный домен локальный хост.локальный домен

Сбой OpenLDAP

Если OpenLDAP не перезапускается и пишет, что

Невозможно запустить TLS: ошибка попытки подключения SSL: 1416F086: подпрограммы SSL: tls_process_server_certificate: сбой проверки сертификата при подключении к мастеру ldap.

Затем вы можете отключить TLS в OpenLDAP с помощью следующих двух команд. Некоторым людям может быть интересно, безопасно ли отключать TLS в OpenLDAP. Это безопасно, поскольку соединение LDAP устанавливается только на самом почтовом сервере. Соединение LDAP не может быть установлено с другого хоста.

zmlocalconfig -e ldap_starttls_required=false

zmlocalconfig -e ldap_starttls_supported=0

Затем перезапустите сервисы Zimbra.

перезапуск zmcontrol

Подсказка : если вы успешно развернули TLS-сертификат Let's Encrypt в Zimbra в соответствии с инструкциями ранее, у вашего сервера OpenLDAP не должно возникнуть проблем с запуском TLS.

Неудача Амавис

Если Amavis не запущен, перезапустите его командой:

zmamavisdctl перезапустить

Если перезагрузка не удалась, следует проверить файл журнала Zimbra ( /var/log/zimbra.log). Например, у меня есть следующее сообщение об ошибке в этом файле.

Игнорирование устаревшего файла PID /opt/zimbra/log/amavisd.pid, старше, чем время безотказной работы системы 0 0:01:00

Pid_file уже существует для запущенного процесса (3340)

Поэтому мне нужно удалить устаревший файл PID.

рм /opt/zimbra/log/amavisd.pid

Затем перезапустите Амавис.

zmamavisdctl перезапустить

Уменьшите использование ЦП и ОЗУ

По возможности избегайте использования этой zmcontrol restartкоманды, потому что она будет генерировать много сообщений электронной почты с отчетами для учетной записи администратора. Каждое электронное письмо будет вызывать ClamAV для сканирования на вирусы. ClamAV пожирает ресурсы. Если вам нужно запустить/остановить отдельный сервис Zimbra, используйте специальные инструменты для выполнения задачи.

  • zmopendkimctl: OpenDKIM.
  • zmamavisdctl: Амавис
  • zmantispamctl: Защита от спама
  • zmdnscachectl: Несвязанный преобразователь DNS.
  • zmantivirusctl: Антивирус
  • zmmtactl: Постфиксный SMTP-сервер
  • zmspellctl: Проверка орфографии
  • zmzimletctl: Веб-приложение Zimlet
  • zmmailboxdctl: почтовый ящик
  • zmstatctl: статистика
  • zmconfigdctl: zmconfigd
  • zmmemcachedctl: кэширование памяти
  • zmloggerctl: регистратор

Чтобы уменьшить использование ЦП и ОЗУ Amavis и ClamAV, выполните следующие две команды от имени zimbraпользователя.

zmprov ms `zmhostname` zimbraAmavisMaxServers 1

zmprov ms `zmhostname` zimbraClamAVMaxThreads 1

Это заставит Amavis и ClamAV использовать только один поток для обработки электронной почты. (По умолчанию 10). Если у вас 4-ядерный ЦП и 16 ГБ ОЗУ, вы можете увеличить количество потоков, чтобы ускорить обработку электронной почты.

Шаг 9: Отправка тестового письма

Теперь вы можете снова посетить веб-клиент Zimbra. Ваш веб-браузер больше не будет предупреждать вас, потому что Nginx теперь использует действительный сертификат TLS.

Войдите в веб-клиент Zimbra с учетной записью администратора ( admin@your-domain.com), и вы сможете проверить отправку и получение электронной почты.

Zimbra имеет встроенный календарь.

Вы можете войти в консоль администратора, которая доступна из выпадающего меню в правом верхнем углу. Или вы можете получить к нему доступ через 

https://mail.your-domain.com:7071/zimbraAdmin/.

Щелкните Add Accountссылку, чтобы добавить новые адреса электронной почты.

Установка и настройка Zimbra на Linux

Почтовый сервер Zimbra устанавливается с помощью скрипта, который можно скачать с сайта разработчика. После установки мы получим полноценный почтовый сервер:

  • SMTP-сервер для отправки писем.
  • Чтение и работа с почтой по POP3/IMAP.
  • Работа с почтой по веб-интерфейсу.
  • Графическая панель управления почтовым сервером.

Прежде, чем начать, нам понадобится:

  1. Статический IP-адрес, который мы должны заказать у Интернет провайдера (не требуется, если мы арендуем сервер).
  2. Зарегистрированное доменое имя (заказывается у поставщика соответвтующих услуг, например, REG.RU).

В процессе мы также должны будем настроить:

  1. Записи в DNS для корректной отправки почты.
  2. Проброс портов (если наш сервер находится за NAT).
  3. Корректный сертификат для подключения к серверу без ошибок и предупреждений.

Принцип установки аналогичный для любого дистрибутива Linux. Важно, чтобы данный дистрибутив официально поддерживался Zimbra.

Какие выбрать дистрибутив для Linux и версию Zimbra

Подготовка сервера

Время

Безопасность

Hosts

Системная переменная для имени сервера

Установка Zimbra

Правильная настройка DNSCache

Базовая настройка zimbra

Как добавить домен

Как создать почтовый ящик

Описание записей, которые нужно создать в DNS

Проброс портов для запросов из Интернет

Настройка подписи DKIM

Тестовое письмо

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

Получение

Установка

Продление

Настройки почтового клиента

Защита от СПАМа

Дополнительные настройки

Работа с белым списком

Максимальный размер сообщений

Возможные ошибки

Выбор дистрибутива Linux и версии Zimbra

Список дистрибутивов Linux, которые поддерживаются разработчиком Zimbra, описан на официальном сайте страницах загрузки. В данной инструкции мы рассмотрим процесс установки для Ubuntu 18.04 и CentOS 7, однако, процесс настройки для других систем, во многом, аналогичен.

Zimbra имеет две основные версии — платную Network Edition и бесплатную Open Source Edition (OSE). К сожалению, последняя больше не поддерживается — для загрузки доступна только версия 8.8.12, которая больше не обновляется. Сравнение данных версий можно найти на официальном сайте. В центре загрузки Zimbra мы также можем выбрать и скачать дистрибутив для платной или бесплатной версий. В данной инструкции мы скачем и установим платную demo-версию и лицензируем ее временным ключом, дающим право использовать программный продукт в течение 60 дней. По прошествии данного периода, программный продукт необходимо купить или прекратить использовать.

Подготовка сервера

Независимо от выбранного дистрибутива Linux или редакции Zimbra выполняем следующие действия для подготовки сервера к корректной работы почтового сервера.

1. Настройка времени

Устанавливаем корректный часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере мы зададим московское время.

Теперь установим утилиту для синхронизации времени и запустим ее.

а) если используем систему на базе RPM (CentOS / Red Hat):

yum install chrony

systemctl enable chronyd --now

б) если используем систему на базе deb (Ubuntu):

apt-get install chrony

systemctl enable chrony --now

2. Безопасность

SELinux

Если на сервере используется SELinux (по умолчанию, на системах RPM), рекомендуется ее отключить. Для этого вводим 2 команды:

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

* подробнее в статье Как отключить SELinux.

Брандмауэр

Для нормальной работы Zimbra нужно открыть много портов:

  • 25 — основной порт для обмена почтой по протоколу SMTP.
  • 80 — веб-интерфейс для чтения почты (http).
  • 110 — POP3 для загрузки почты.
  • 143 — IMAP для работы с почтовым ящиком с помощью клиента.
  • 443 — SSL веб-интерфейс для чтения почты (https).
  • 465 — безопасный SMTP для отправки почты с почтового клиента.
  • 587 — SMTP для отправки почты с почтового клиента (submission).
  • 993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
  • 995 — SSL POP3 для загрузки почты.
  • 5222 — для подключения к Zimbra по протоколу XMPP.
  • 5223 — для защищенного подключения к Zimbra по протоколу XMPP.
  • 7071 — для защищенного доступа к администраторской консоли.
  • 8443 — SSL веб-интерфейс для чтения почты (https).
  • 7143 — IMAP для работы с почтовым ящиком с помощью клиента.
  • 7993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
  • 7110 — POP3 для загрузки почты.
  • 7995 — SSL POP3 для загрузки почты.
  • 9071 — для защищенного подключения к администраторской консоли.

В зависимости от утилиты управления фаерволом, команды будут следующие.

а) Если используем firewalld (Red Hat, CentOS):

firewall-cmd --permanent --add-port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995}/tcp

firewall-cmd --reload

б) Если используем iptables (Ubuntu):

Порты для веб:

iptables -I INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT

Порты для почты:

iptables -I INPUT -p tcp --match multiport --dports 25,110,143,465,587,993,995 -j ACCEPT

Порты для Zimbra:

iptables -I INPUT -p tcp --match multiport --dports 5222,5223,9071,7071,8443,7143,7993,7110,7995 -j ACCEPT

Сохраняем правила:

netfilter-persistent save

* если команда вернет ошибку, то установим пакет: apt-get install iptables-persistent.

в) Если используем ufw (Ubuntu):

ufw allow 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995/tcp

3. DNS и имя сервера

Для корректной работы почтового сервера необходимо создать mx-записи для домена (подробнее о записях в DNS).

Но для установки Zimbra важнее, чтобы в локальном файле hosts была запись о нашем сервере, в противном случае, установка прервется с ошибкой. И так, задаем FQDN-имя для сервера:

hostnamectl set-hostname zimbra.dmosk.ru

Теперь открываем на редактирование файл:

vi /etc/hosts

... и добавляем:

192.168.1.15      zimbra.dmosk.ru zimbra

* где 192.168.1.15 — IP-адрес нашего сервера; zimbra — имя сервера; dmosk.ru — наш домен.

Не совсем очевидная проблема, но если в системе не будет пакета hostname, при попытке запустить установку зимбры, мы будем получать ошибку определения IP-адреса по имени. Устанавливаем пакет.

а) для CentOS (Red Hat):

yum install hostname

б) если Ubuntu (Debian):

apt-get install hostname

4. Системная переменная для имени сервера

Чтобы нам было удобнее вводить команды, где требуется указать имя сервера, создадим системную переменную:

myhostname=$(hostname)

Теперь мы можем в команде использовать переменную $myhostname.

Загрузка дистрибутива и установка Zimbra

Переходим по одной из ссылок выше для загрузки платной или бесплатной версии.

Если мы планируем установить платную версию, сначала кликаем по START FREE TRIAL:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-2

Проходим процедуру регистрации. На указанный адрес электронной почты мы получим файл с лицензией (на 60 дней). Переносим данный файл на сервер Zimbra, например, при помощи программы WinSCP.

Возвращаемся на страницу загрузки zimbra и копируем ссылку на дистрибутив:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-3

Используя скопированную ссылку, загружаем дистрибутив Zimbra:

wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-NETWORK-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz

Распаковываем скачанный архив:

tar -xzvf zcs-*.tgz

Переходим в распакованный каталог:

cd zcs-*/

Запускаем установку почтового сервера:

./install.sh

На экране отобразится лицензионное соглашение — принимаем его:

Do you agree with the terms of the software license agreement? [N] Y

* в платной версии лицензионное соглашение нужно принять дважды.

Разрешаем использование репозитория от Zimbra:

Use Zimbra's package repository [Y] Y

Устанавливаем необходимые модули (или все):

Install zimbra-ldap [Y] Y

Install zimbra-logger [Y] Y

Install zimbra-mta [Y] Y

Install zimbra-dnscache [Y] Y

Install zimbra-snmp [Y] Y

Install zimbra-store [Y] Y

Install zimbra-apache [Y] Y

Install zimbra-spell [Y] Y

Install zimbra-convertd [Y] Y

Install zimbra-memcached [Y] Y

Install zimbra-proxy [Y] Y

Install zimbra-archiving [N] Y

Install zimbra-drive [Y] Y

Install zimbra-imapd (BETA - for evaluation only) [N] N

Install zimbra-network-modules-ng [Y] Y

Install zimbra-talk [Y] Y

* в зависимости от ситуации, мы можем выбрать лишь несколько компонентов, например, для использования сервера в качестве агента передачи сообщений, мы можем оставить только zimbra-mta. Но в нашем примере мы будем настраивать Zimbra со всем компонентами.

Подтверждаем ранее введенные настройки:

The system will be modified.  Continue? [N] Y

Начнется процесс установки и конфигурирования Zimbra. Ждем окончания процесса.

Если для нашего домена еще нет записи MX, мы увидим сообщение:

It is suggested that the domain name have an MX record configured in DNS

Установщик предложит поменять домен — отвечаем отрицательно:

Change domain name? [Yes] No

... установщик покажет меню с настройкой Zimbra:

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@zimbra.dmosk.ru      

******* +Admin Password                        UNSET                         

        +Anti-virus quarantine user:           virus-quarantine.k3uvuwts2@zimbra.dmosk.ru

        +Enable automated spam training:       yes                           

        +Spam training user:                   spam.lonovprz@zimbra.dmosk.ru

        +Non-spam(Ham) training user:          ham.xqt7qrca@zimbra.dmosk.ru

        +SMTP host:                            zimbra.dmosk.ru            

        +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://zimbra.dmosk.ru:7780/aspell.php

        +Enable version update checks:         TRUE                          

        +Enable version update notifications:  TRUE                          

        +Version update notification email:    admin@zimbra.dmosk.ru      

        +Version update source email:          admin@zimbra.dmosk.ru      

        +Install mailstore (service webapp):   yes                           

        +Install UI (zimbra,zimbraAdmin webapps): yes                           

******* +License filename:                     UNSET                         

   8) zimbra-spell:                            Enabled                       

   9) zimbra-convertd:                         Enabled                       

  10) zimbra-proxy:                            Enabled                       

  11) Default Class of Service Configuration:                                

  12) Enable default backup schedule:          yes                           

   s) Save config to file                                                    

   x) Expand menu                                                            

   q) Quit

В данном случае мы можем поменять любую из настроек. Настройки, которые необходимо сделать для продолжения установки показаны звездочками — в данном примере необходимо задать пароль администратора (Admin Password) и указать путь до файла с лицензией (License filename). И так, кликаем 7:

Address unconfigured (**) items  (? - help) 7

Переходим к установке пароля:

Select, or 'r' for previous menu [r] 4

... и задаем пароль.

Если мы устанавливаем платную версию, указываем путь до файла с лицензией:

Select, or 'r' for previous menu [r] 25

... и указываем путь до файла с лицензией, например:

Enter the name of the file that contains the license: /opt/zimbra/ZCSLicense.xml

Теперь выходим из меню:

Select, or 'r' for previous menu [r] r

Применяем настройки:

Select from menu, or press 'a' to apply config (? - help) a

Сохраняем конфигурационный файл:

Save configuration data to a file? [Yes] Y

Соглашаемся с путем сохранения файла:

Save config in file: [/opt/zimbra/config.20863]

Продолжаем конфигурирование:

The system will be modified - continue? [No] Y

Дожидаемся окончания установки, на запрос отправки уведомления можно ответить отказом:

Notify Zimbra of your installation? [Yes] n

В конечном итоге, нажимаем Enter:

Configuration complete - press return to exit

Сервер установлен. Однако, установщик меняет пароль пользователя root. Меняем его обратно:

passwd root

Zimbra DNSCache

Вместе с зимброй мы установили службу dnscache, которая позволяет увеличить производительность почтового сервера. Однако, принцип работы сети немного меняется, а именно, в файле /etc/resolv.conf появляется запись:

nameserver 127.0.0.1

... а разрешение DNS имени в IP-адреса перестает работать. Удаление или смена записи в файле resolv.conf ни к чему не приводит, так как, по прошествии некоторого времени, настройка принимает исходный вид.

Для корректной настройки службы dnscache необходимо сначала посмотреть Master DNS в настройках Zimbra:

su - zimbra -c "zmprov getServer '$myhostname' | grep DNSMasterIP"

* где $myhostname — имя сервера, на котором установлена Zimbra (в данной конфигурации, zimbra.dmosk.ru).

В моем случае было:

zimbraDNSMasterIP: 127.0.0.53

Удалить данную запись:

su - zimbra -c "zmprov ms '$myhostname' -zimbraDNSMasterIP 127.0.0.53"

И добавить свои рабочие серверы DNS, например:

su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP  192.168.1.1"

su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP  8.8.8.8"

su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP  77.88.8.8"

* где 192.168.1.1 — DNS сервер в моей сети; 8.8.8.8 — DNS сервер от Google; 77.88.8.8 — DNS сервер от Яндекс.

Теперь DNS-запросы на сервере будут работать.

zimbraMtaLmtpHostLookup

Если наш сервер находится за NAT и разрешение IP происходит не во внутренний адрес, а внешний (можно проверить командой nslookup <имя сервера>), после настройки наш сервер не сможет принимать почту, а в логах мы можем увидеть ошибку delivery temporarily suspended: connect to 7025: Connection refused). Это происходит из-за попытки Zimbra передать письмо в очереди по внутреннему порту локальной почты 7025 (LMTP) на внешний адрес, который недоступен из NAT. Для решения проблемы можно использовать внутренний DNS с другими А-записями (split dns) или собственный поиск IP-адресов для lmtp, а не для DNS. Рассмотрим второй вариант — вводим две команды:

su - zimbra -c "zmprov ms $myhostname zimbraMtaLmtpHostLookup native"

su - zimbra -c "zmprov mcf zimbraMtaLmtpHostLookup native"

* где $myhostname — имя нашего почтового сервера.

После перезапускаем службы зимбры:

su - zimbra -c "zmmtactl restart"

Настройка zimbra после установки

Чтобы начать пользоваться сервером, внесем основные настройки. Для этого открываем браузер и вводим адрес https://<IP-адрес сервера>:7071 — должна открыться страница с ошибкой, разрешаем открытие страницы и мы увидим форму для входа в панель администрирования Zimbra. Вводим логин admin и пароль, который задавали при установке.

Добавление домена

Если мы не меняли рабочий домен в настройках во время установки сервера, то основной домен будет таким же, как имя сервера. Как правило, это не то, что нам нужно. И так, заходим в Настройка - Домены. В правой части окна кликаем по значку шестеренки и Создать:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-4

Задаем название для нового домена:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-5

... и кликаем Далее.

В следующем окне выбираем сервер:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-6

... можно нажать Готово.

Теперь поменяем домен по умолчанию. Переходим в Настройка - Глобальные настройки. Меняем значение для поля «Домен по умолчанию»:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-7

... и нажимаем Сохранить.

Создание почтового ящика

Переходим с главного меню панели администрирования в Управление - Учетные записи. Справа кликаем по шестеренке - Создать:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-8

Задаем имя учетной записи, а также фамилию пользователя:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-9

Задаем пароль пользователя и, по желанию, ставим галочку Требуется сменить пароль:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-10

При необходимости создания административной учетной записи ставим галочку Глобальный администратор:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-11

Нажимаем Готово.

Настройка DNS

Для корректной работы почты необходимо настроить DNS для нашего домена.

1. Запись MX.

Позволяет определить почтовый сервер для домена. Подробнее о том, что это и как ее правильно прописать в статье Что такое MX-запись.

2. Запись A.

Для нашего сервера, который определен как MX запись нужна запись А, которая указывает на его IP-адрес. В моем примере это сервер zimbra.dmosk.ru, который из сети Интернет должен разрешаться во внешний IP-адрес.

3. PTR.

Данная запись представляет из себя обратное разрешение IP-адреса в домен. С ее помощью подтверждается легитимность отправителя. Подробнее в статье Что такое PTR-запись.

4. SPF.

Это запись TXT, которая определяет список серверов для домена, с которых разрешена отправка почты. Подробнее — Что такое SPF.

5. DKIM.

Подтверждение владельца домена. Письмо отправляется с зашифрованным заголовком и расшифровать его можно с помощью последовательности, хранящейся в TXT-записи на DNS. Соответственно, если владелец домена разместил такую последовательность, то он и является его владельцем. Подробнее — Что такое DKIM. Также в данной инструкции ниже мы разберем настройку DKIM на Zimbra.

6. DMARC.

Определяет для домена политику проверки писем. Подробнее — Что такое DMARC.

Проброс портов

Если наш сервер находится во внутренней сети, необходимо настроить проброс портов. В двух словах, это настройка на сетевом устройстве, которое смотрит в Интернет, которая позволит запросы на определенный порт передать на наш почтовый сервер.

Пример настройки для Mikrotik приведен в инструкции Перенаправление запросов (проброс портов) на Mikrotik.

Настройка DKIM

Отдельно рассмотрим процесс настройки подписи DKIM на почтовом сервере Zimbra. Формирование ключей выполняется для каждого из доменов из командной строки. Подключаемся к серверу по SSH и вводим команду:

su - zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -a -d dmosk.ru"

* данная команда создаст последовательности ключей для домена dmosk.ru.

Мы должны получить ответ на подобие:

Public signature to enter into DNS:

5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey IN      TXT     ( "v=DKIM1; k=rsa; "

          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5iLy58AJ1fdB15BZgh/VtGfZsi+TrDyvqqZaL5pJ+MQaQrpqHW8AF5kyxW2QzAMjyKzySMZX0PoHUuV93Yxf2t52IFihvb7ivqmRwlqFV3gU7j8zqbAGWHfZo4Ydw0kUmU6pm+Z85aWt4k7rQ7vWXludQGf8yIaSMMmodxze9E5VUOtUA18dIEEPcbwSgOO6YhQLuC78T4FiF5"

          "8epQnsX0voSfg9tMW+r+P1b5fTy5Guyqh1plWYseKxPzHKHbc4Lokcgo1AZzKG5Mvo5OCXsKUE1fSoc366AFSoUnWr23P7oUbf+NjXzPMS8ESGA9TfpDA6eRJT4QEpi72AdIy4rQIDAQAB" )  ; ----- DKIM key 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 for dmosk.ru

В данном ответе нас интересуют записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey — это имя для TXT в домене dmosk.ru"v=DKIM1; k=rsa; " "p=M...AB" — содержимое записи.

В настройках домена необходимо добавить данную запись, после чего подождать, минут 15. После выполняем проверку:

opendkim-testkey -d dmosk.ru -s 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 -x /opt/zimbra/conf/opendkim.conf

* где dmosk.ru — наш домен; 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 — селектор, который мы видели в записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey.

* если при вводе команды мы получим ошибку «Command 'opendkim-testkey' not found», необходимо установить opendkim-tools командой apt-get install opendkim-tools (deb) или yum install opendkim-tools (RPM).

Для просмотра имеющихся записей DKIM можно воспользоваться командой:

su - zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -q -d dmosk.ru"

Отправка тестового письма

Открываем браузер и переходим по ссылке https://<IP-адрес сервера>:8443/ — откроется веб-клиент для чтения и отправки почты. В качестве логина используем созданный email и его пароль.

Теперь заходим на сайт https://www.mail-tester.com/ и копируем email-адрес для отправки тестового сообщения:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-12

Создаем новое сообщение и отправляем его на тестовый адрес. Возвращаемся на сайт для проверки и кликаем по Затем проверьте оценку:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-13

Если наше письмо не получило 10 баллов, анализируем проблемы и исправляем их.

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

При заходе на веб-интерфейс мы будем получать ошибку, так как по умолчанию, создается самоподписный сертификат. Рассмотрим процесс установки бесплатного сертификата от Let;s Encrypt.

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

Создаем каталог:

mkdir /opt/letsencrypt

Загружаем в него утилиту letsencrypt-auto:

wget https://raw.githubusercontent.com/certbot/certbot/7f0fa18c570942238a7de73ed99945c3710408b4/letsencrypt-auto-source/letsencrypt-auto -O /opt/letsencrypt/letsencrypt-auto

Разрешаем ее запускать на выполнение:

chmod +x /opt/letsencrypt/letsencrypt-auto

После чего:

/opt/letsencrypt/letsencrypt-auto certonly --standalone

Будет установлено несколько пакетов, после необходимо ввести адрес почты, принять лицензионное соглашение и, в принципе, можно подписаться на рассылки от Let's Encrypt:

Enter email address (used for urgent renewal and security notices) (Enter 'c' to

cancel): admin@dmosk.ru

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Please read the Terms of Service at

https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must

agree in order to register with the ACME server at

https://acme-v02.api.letsencrypt.org/directory

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Would you be willing to share your email address with the Electronic Frontier

Foundation, a founding partner of the Let's Encrypt project and the non-profit

organization that develops Certbot? We'd like to send you email about our work

encrypting the web, EFF news, campaigns, and ways to support digital freedom.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(Y)es/(N)o: Y

После утилита предложит ввести адрес, для которого необходимо получить сертификат — вводим адрес нашего сервера, например:

Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'

to cancel): zimbra.dmosk.ru

Мы должны получить что-то на подобие:

...

 - Congratulations! Your certificate and chain have been saved at:

   /etc/letsencrypt/live/zimbra.dmosk.ru/fullchain.pem

   Your key file has been saved at:

   ...

Сертификат получен и все его файлы находятся в каталоге /etc/letsencrypt/live/zimbra.dmosk.ru/.

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

Процесс установки сертификата для зимбры, несколько, отличается от многих других сервисов — он требует дополнительных телодвижений.

И так, сначала скопируем полученные сертификаты в каталог зимбры — в моем случае, команды такие:

cp /etc/letsencrypt/live/zimbra.dmosk.ru/* /opt/zimbra/ssl/zimbra/commercial/

* где zimbra.dmosk.ru — домен, для которого мы получали сертификат.

Меняем владельца для скопированных файлов:

chown zimbra /opt/zimbra/ssl/zimbra/commercial/*

Теперь нюанс — zimbra не примет цепочку сертификатов, если в ней не будет корневых от Let's Encrypt. Получить их можно по ссылкам:

1. https://letsencrypt.org/certs/isrgrootx1.pem.txt.

2. https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt.

Полученную последовательность добавляем к файлу chain.pem:

vi /opt/zimbra/ssl/zimbra/commercial/chain.pem

-----BEGIN CERTIFICATE-----

<первую последовательность оставляем>

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

<вторую последовательность удаляем>

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw

TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh

cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4

WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu

ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY

MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc

h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+

0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U

A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW

T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH

B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC

B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv

KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn

OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn

jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw

qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI

rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV

HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq

hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL

ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ

3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK

NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5

ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur

TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC

jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc

oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq

4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA

mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d

emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

MIIFjTCCA3WgAwIBAgIRANOxciY0IzLc9AUoUSrsnGowDQYJKoZIhvcNAQELBQAw

TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh

cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTYxMDA2MTU0MzU1

WhcNMjExMDA2MTU0MzU1WjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg

RW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDMwggEi

MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX

NSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf

89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl

Npi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc

Gu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz

uEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB

AAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU

BgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB

FiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo

SmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js

LnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF

BQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG

AQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD

VR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB

ABnPdSA0LTqmRf/Q1eaM2jLonG4bQdEnqOJQ8nCqxOeTRrToEKtwT++36gTSlBGx

A/5dut82jJQ2jxN8RI8L9QFXrWi4xXnA2EqA10yjHiR6H9cj6MFiOnb5In1eWsRM

UM2v3e9tNsCAgBukPHAg1lQh07rvFKm/Bz9BCjaxorALINUfZ9DD64j2igLIxle2

DPxW8dI/F2loHMjXZjqG8RkqZUdoxtID5+90FgsGIfkMpqgRS05f4zPbCEHqCXl1

eO5HyELTgcVlLXXQDgAWnRzut1hFJeczY1tjQQno6f6s+nMydLN26WuU4s3UYvOu

OsUxRlJu7TSRHqDC3lSE5XggVkzdaPkuKGQbGpny+01/47hfXXNB7HntWNZ6N2Vw

p7G6OfY+YQrZwIaQmhrIqJZuigsrbe3W+gdn5ykE9+Ky0VgVUsfxo52mwFYs1JKY

2PGDuWx8M6DlS6qQkvHaRUo0FMd8TsSlbF0/v965qGFKhSDeQoMpYnwcmQilRh/0

ayLThlHLN81gSkJjVrPI0Y8xCVPB4twb1PFUd2fPM3sA1tJ83sZ5v8vgFv2yofKR

PB0t6JzUA81mSqM3kxl5e+IZwhYAyO0OTg3/fs8HqGTNKd9BqoUwSRBzp06JMg5b

rUCGwbCUDI0mxadJ3Bz4WxR6fyNpBK2yAinWEsikxqEt

-----END CERTIFICATE-----

* где мы добавили к файлу две последовательности.

Теперь зайдем в систему под пользователем zimbra:

su - zimbra

... и перейдем в каталог:

$ cd /opt/zimbra/ssl/zimbra/commercial

Проверяем, правильно ли сформированы сертификаты для Zimbra:

$ zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem

Мы должны получить ответ:

** Verifying 'cert.pem' against 'privkey.key'

Certificate 'cert.pem' and private key 'privkey.key' match.

** Verifying 'cert.pem' against 'chain.pem'

Valid certificate chain: cert.pem: OK

Переименовываем закрытый ключ:

$ mv privkey.pem commercial.key

Можно устанавливать сертификаты:

$ zmcertmgr deploycrt comm cert.pem chain.pem

Чтобы настройка применилась, перезапускаем zimbra:

$ zmcontrol restart

Можно выйти из окружения пользователя zimbra:

$ exit

Продление сертификата

Обновление сертификата не потребует больших усилий. Для начала, обновляем сертификат Let's Encrypt:

/opt/letsencrypt/letsencrypt-auto renew

Скопируем обновленные сертификаты в каталог зимбры:

cp /etc/letsencrypt/live/zimbra.dmosk.ru/* /opt/zimbra/ssl/zimbra/commercial/

* где zimbra.dmosk.ru — домен, для которого мы получали сертификат.

Меняем владельца для файлов:

chown zimbra /opt/zimbra/ssl/zimbra/commercial/*

Переходим в каталог с сертификатами:

cd /opt/zimbra/ssl/zimbra/commercial

Загружаем корневые сертификаты Let's Encrypt:

wget https://letsencrypt.org/certs/isrgrootx1.pem.txt

wget https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt

Создаем файл с полной цепочкой сертификатов:

echo "-----BEGIN CERTIFICATE-----" > new_chain.pem

openssl x509 -in chain.pem -outform der | base64 -w 64 >> new_chain.pem

echo "-----END CERTIFICATE-----" >> new_chain.pem

mv new_chain.pem chain.pem

cat isrgrootx1.pem.txt >> chain.pem

cat letsencryptauthorityx3.pem.txt >> chain.pem

Проверяем корректность сертификатов:

su - zimbra -c "zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/privkey.pem /opt/zimbra/ssl/zimbra/commercial/cert.pem /opt/zimbra/ssl/zimbra/commercial/chain.pem"

Переименовываем закрытый ключ:

mv privkey.pem commercial.key

Можно устанавливать сертификаты:

su - zimbra -c "zmcertmgr deploycrt comm /opt/zimbra/ssl/zimbra/commercial/cert.pem /opt/zimbra/ssl/zimbra/commercial/chain.pem"

Чтобы настройка применилась, перезапускаем zimbra:

su - zimbra -c "zmcontrol restart"

Готово.

Настройка почтового клиента

Приведем пример настройки почтового клиента. Подключимся к нашему серверу по IMAP и отправим почту по SMTP. В качестве почтового клиента я буду использовать Mozilla Thunderbird — принцип настройки других клиентов аналогичен.

Для настройки используем следующие параметры:

НастройкаIMAPPOP3SMTPАдрес сервераIP-адрес сервера или его имяПорт143110587SSLSTARTTLSИмя пользователяПочтовый адрес, к которому выполняем подключениеПарольПароль для почтового ящика

Пример настройки:

Zimbra - это почтовый сервер с открытым исходным кодом, разработанный компанией Synacor Inc.-14

Защита от СПАМа

1. Обновление правил в SpamAssassin

Для улучшения защиты от СПАМ-сообщений мы включим автоматическое обновление правил для SpamAssassin. Для этого вводим:

su - zimbra -c "zmlocalconfig -e antispam_enable_rule_updates=true"

su - zimbra -c "zmlocalconfig -e antispam_enable_restarts=true"

После перезапустим соответствующие службы:

su - zimbra -c "zmamavisdctl restart"

su - zimbra -c "zmmtactl restart"

2. Черные списки

Чтобы усилить защиту, разрешим проверку отправителя в черных списках:

su - zimbra -c 'zmprov mcf zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"'

* в данном примере мы подключаем rbl-список от zen.spamhaus.org.

3. Настройка mynetworks

После установки Zimbra в опции postfix mynetworks может оказаться подсеть, в которой находится наш сервер. На практике, это приводит к возможности отправки сообщений без пароля, что в свою очередь, позволяет любому вирусу в нашей сети делать нелегальную рассылку.

Задаем для mynetworks только адрес локальной петли и адрес сервера:

su - zimbra -c 'zmprov ms zimbra.dmosk.ru zimbraMtaMyNetworks "127.0.0.0/8 192.168.1.15/32"'

* где 192.168.1.15 — IP-адрес нашего почтового сервера.

Перезапускаем postfix:

su - zimbra -c 'postfix reload'

Проверить текущую настройку можно командой:

su - zimbra -c 'postconf mynetworks'

Дополнительные настройки

Добавление отправителей в белый список

Может возникнуть ситуация, при которой нам нужно изменить назначение СПАМ-балов для некоторых отправителей. Для этого открываем файл:

vi /opt/zimbra/conf/amavisd.conf.in

Находим строку:

{ # a hash-type lookup table (associative array)

   ...

   }

... и внутри фигурных скобок {} добавим нужный нам домен или конкретного отправителя:

...

   'dmosk.ru'                           =>  -10.0,

   'sender@dmosk2.ru'                   =>  -10.0,

}

* таким образом мы сказали, что для писем с домена dmosk.ru и отправителя sender@dmosk2.ru отнимать 10 баллов за СПАМ. Такие письма начнут приходить без блокировки (при условии, что не будет отправлен явный СПАМ, который наберет очень много баллов).

После настройки перезапускаем amavis:

su - zimbra -c "zmamavisdctl stop && zmamavisdctl start"

Размер отправляемого сообщения

Задать максимальный размер сообщений можно командой:

su - zimbra -c 'zmprov modifyConfig zimbraMtaMaxMessageSize 31457280'

* в данном примере мы задаем максимальный размер сообщения 30 мб.

После перезапускаем postfix:

su - zimbra -c "postfix reload"

Возможные проблемы

Рассмотрим некоторые проблемы, с которыми мы можем столкнуться при работе с Zimbra.

Служба zmconfigd не стартует

В консоли управления почтовым сервером мы можем увидеть ошибку запуска службы zmconfigd. При попытке запустить ее:

$ zmconfigdctl start

... мы получаем ошибку:

Starting zmconfigd...failed

Решение:

Устанавливаем пакет с nc-командами.

а) если на систему RPM (Red Hat / CentOS):

yum -y install nmap-ncat

б) если на систему deb (Debian / Ubuntu):

apt-get install netcat-openbsd

После пробуем запустить сервис (от пользователя zimbra):

$ zmconfigdctl start

Ошибка при просмотре очередей в веб-консоли

При переходе на страницу просмотра очередей система отображает ошибку:

system failure: exception occurred searching mail queue

Код ошибки: service.FAILURE Method: [unknown] Детали:soap:Receiver

Решение:

Есть два варианта решения проблемы.

1. Если для подключения к нашему серверу по SSH используется нестандартный порт (не 22), необходимо ввести команду:

su - zimbra -c "zmprov mcf zimbraRemoteManagementPort 2222"

* где 2222 — порт SSH, который используется для нашего сервера.

2. Переходим в каталог:

cd /opt/zimbra/data/tmp

Находим каталог <цифры>-active и удаляем его.

Файл zmstat.out большого размера

Файл /opt/zimbra/zmstat/zmstat.out становится очень большим. Если открыть его, то мы увидим много строк:

Use of uninitialized value $line in pattern match (m//) at /opt/zimbra/libexec/zmstat-io line 76.

Причина:

Ошибка в скрипте /opt/zimbra/libexec/zmstat-io.

Решение:

Открываем скрипт, в котором есть ошибка:

vi /opt/zimbra/libexec/zmstat-io

Переходим на неправильную строку - 1 (в нашем примере, 75). Мы должны увидеть:

while ($line !~ /^avg-cpu/ && $line !~ /^Device:/) {

Меняем на:

while ($line !~ /^avg-cpu/ && $line !~ /^Device/) {

* то есть, убираем : после Device.

Перезапускаем службы Zimbra:

su - zimbra -c "zmcontrol restart"