Пришло время перенести почту со старого почтового сервера (Postfix + Courier-Imap + SASL2 + MySQL + ClamAV) на новый сервер Zimbra Collaboration Suite. Причем сделать это нужно максимально незаметно для пользователей.
Поскольку на нашем сервере порядка 300 активных ящиков все сразу перенести невозможно, поэтому делать придётся постепенно.
Идея такая: создали ящик на новом сервере - перенастроили пользователю почтовый клиент (при этом названия ящика должно сохраниться) - перешли к следующему.
Вот что мы имеем:
К сожалению, в бесплатной версии Zimbra Collaboration Suite не существует встроенного механизма бекапа. Приходится доделывать самому. Поскольку установка сервера не представляет особой сложности, главное, что нужно архивировать это учетные записи пользователей и содержимое почтовых ящиков.
Кроме самих учетных записей почтовых ящиков и их содержимого, так же неплохо перенести альясы.
Для создания учетной записи из командной сроки в Zimbra используется следующая команда:
$ zmprov ca <почтовый_ящик> <пароль> парамерт1 "значение1" параметр2 "значение2" ... параметрN "значениеN"
Что бы точно узнать название параметра, зайдите в админку, откройте редактирование учетной записи и кликните мышкой на нужном вам параметре:
Серые списки (англ. Greylisting) - способ автоматической блокировки спама, основанный на том, что если почтовый сервер получателя отказывается принять письмо и сообщает о «временной ошибке», сервер отправителя обязан позже повторить попытку. Спамерское программное обеспечение в таких случаях, обычно, не пытается этого делать. (с) Wikipedia.
В Zimbra управление серыми списками возможно через плагин Pilicyd. Как установить плагин с web-интерфейсом можно прочитать в статье Установка плагина Policyd с web-интерфейсом в Zimbra.
После установки плагина доступ к управлению можно получить по ссылке http://mail.example.org:7780/webui/index.php.
Для начала заполним группы internal_ips и internal_domains, которые создаются после установки (Policies - Groups). Добавьте локальные подсети и домены, которые обслуживает ваш почтовый сервер соответственно.
Зачем может понадобиться ограничение по количеству отправленных сообщений?
Представьте, что пароли некоторых ваших пользователей оказались украденными. В таком случае от имени таких пользователей может начаться спам-рассылка. И ваш сервер довольно быстро попадет в черные списки RBL.
При помощи модуля Policyd Quotas, можно настроить ограничение по количеству сообщений за определенное время, например, сделать так чтобы за 1 час пользователи могли посылать не более 100 сообщений.
Таким образом, если пароли пользователей будет украдены они смогут послать не больше 100 писем в час и ваш ip-адрес не попадет в черный список (по крайней мере, не так быстро ☺). Кроме того, вы сможете понять, кто из пользователей вдруг начал отправлять такое большое количество писем.
После того как вы установили Policyd, доступ к web-интерфесу доступен по адресу http://mail.example.com:7780/webui/index.php.
После того как установили Policyd пришло время заняться его настройкой, в данной статье речь пойдет о запрете доступа на основании списков доступа (Access Control).
По умолчанию создаются 2 группы (Policies\Groups) в которые предлагается заносить внутренние домены (internal_domains) и внутренние ip-адреса (internal_ips).
Кроме групп, создаются политики, которые применяются в порядке очереди. Политики с меньшим приоритетом применяются раньше.
Для просмотра логов доставки писем в ZImbra существует (начиная с версии 7.1.1) утилита командной строки zmmsgtrace.
Синтаксис:
zmmsgtrace [опции] [<лог-файлы-почты>...]
Zimbra Collaboration Suite почтовый сервер, который использует Postfix в качестве движка для MTA. Поэтому в нем существует возможность установки плагина Policyd, который включает в себя несколько модулей:
Управление настройками Policyd в Zimbra можно осуществлять через web-интерфейс, к сожалению, он на английском, зато довольно простой и понятный.
Если при попытке отправить сообщение на почтовые сервера Gmail вы вдруг получили ответ:
550-5.7.1 [62.220.58.71 12] Our system has detected that this message
is 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to
Gmail, 550-5.7.1 this message has been blocked. Please visit 550-5.7.1
https://support.google.com/mail/?p=UnsolicitedMessageError 550 5.7.1 for
more information.
Скорее всего, это означает что у вас не настроены DKIM, SFP и DMARC. Все больше крупных почтовых серверов (mail.ru, Яндекс) требуют наличие данных записей.
Настроим каждую из этих систем.
Поскольку Zimbra создает само-подписанный сертификат, что бы браузеры не ругались на неправильную подпись выгрузим сертификат, для этого нас сервере из-под пользователя root выполняем команду:
# cd /opt/zimbra/ssl/zimbra/ca
# openssl x509 -in ca.pem -outform DER -out /rootca.cer
Теперь его нужно добавить к доверенным корневым центрам сертификации, как это сделать в windows можно прочитать на сайте Microsoft
Узнать дату окончания действия сертификатов можно командой (все команды выполнять под пользователем zimbra):
# su - zimbra
$ zmcertmgr viewdeployedcrt
Создадим новый корневой и новый само-подписанный сертификат
$ zmcertmgr createca -new
$ zmcertmgr createcrt -new -days 1825
Разворачиваем сертификаты и перезапускаем сервер:
$ zmcertmgr deploycrt self
$ zmcertmgr deployca
$ zmcontrol restart
По информации сайта wiki.zimbra.com после новой установки ZCS пытается выделить 30% системной памяти для Java heap (параметр mailboxd_java_heap_size для ZCS7 и выше, или mailboxd_java_heap_memory_percent для ZCS6 и ранее), и 25% памяти для innodb buffer pool. Пожалуйста, убедитесь, что данные значение не слишком высоки для вашей системы.
При объёме системной памяти: