Установка Zimbra на Ubuntu 16.04 + StartSSL
Примерный список must-have действий для успешной установки Zimbra на Ubuntu 16.04. Не для безумного копипаста.
Приведём сервер в порядок
1. В /etc/apt/sources.list
включаем все необходимые репозитории.
2. Установим временную зону, локаль, включим обновления безопасности и поставим пакеты первой необходимости(от рута):
locale-gen en_US.UTF-8 ru_RU.UTF-8
apt-get install locales man dialog htop silversearcher-ag bzip2 pigz pbzip2 mc grc pydf bash-completion vim-nox zsh tmux ncdu unattended-upgrades nano screen
dpkg-reconfigure unattended-upgrades
dpkg-reconfigure tzdata
Подготовительный этап
0. Начиная с этого этапа все действия лучше выполнять в скрине(screen).
1. Устанавливаем нужный hostname (/etc/hosts
+ /etc/hostname
). Я ставлю в домен второго уровня, который будет использоваться в почте(не mail.example.com, а просто example.com)
2. Прописываем все DNS записи домена на наш сервер(@ IN A, www IN A, mail IN A, @ IN MX mail
)
3. Сразу же можно прописать spf запись(@ IN TXT
). Я обычно использую следующий формат:
v=spf1 a mx ip4:АЙ.ПИ.СЕР.ВЕРА include:mail.example.com -all
Например:
v=spf1 a mx ip4:91.218.229.167 include:mail.tochka-design.ru -all
Установка Zimbra
Скачиваем зибру под нашу систему со официальной страницы https://zimbra.org/download/zimbra-collaboration
Несмотря на то, что на данный момент поддержка Ubuntu 16.04 в бете - всё работает без проблем.
Распаковываем пакет на сервере и запускаем инсталятор:
tar -zxf zcs-8.7.0_GA_1659.UBUNTU16_64.20160628202554.tgz
cd zcs-8.7.0_GA_1659.UBUNTU16_64.20160628202554
./install.sh
При установке надо будет задать пароль администратора - задаём, запоминаем.
Также, если времени с момента прописывания DNS записей прошло не много, инсталлер будет ругаться на то, что A и MX записи не резолвятся в наш IP. Игнорируем это - нам это не помешает, ведь мы добавили всё в /etc/hosts
сервера. Без этого бы не запустился ldap.
Сертификат StartSSL
StartSSL предлагает бесплатные сертификаты. Для наших целей они подходят замечательно.
!!! UPDATE: Бесплатные сертификаты StartSSL уже не валидны во многих браузерах. Рекомендую использовать Let's Encrypt. Ресурсы по теме:
- https://wiki.zimbra.com/wiki/Installing_a_LetsEncrypt_SSL_Certificate
- https://wiki.zimbra.com/wiki/How_to_install_Zimbra_Talk_using_a_LetsEncrypt_SSL_Certificate
- https://github.com/VojtechMyslivec/letsencrypt-zimbra
Как буду где-нибудь ещё ставить зимбру - обновлю эту инструкцию с учётом letsencrypt.
Подтверждение домена в StartSSL
- Подтверждаем домен путём письма на postmaster@example.com
- Заходим в админ-панель Zimbra https://example.com:7071 (ВАЖНО! Порт 7071 и протокол HTTPS!)
- Выбираем нашего админа, правой кнопкой - просмотр почты.
- Находим письмо от Start SSL и подтверждаем домен.
Генерируем CSR
В панели Zimbra идём в Настройка > Сертификаты > Правой кнопкой на сервере > Установить сертификат.
Выбираем "Генерировать CSR". Заполняем всё и вот - Zimbra дала нам CSR, сохранив его себе в дебрях.
ВАЖНО! Самому CSR лучше не генерировать, Zimbra это делает просто и через веб-морду.
CSR подсовываем в StartSSL и генерируем сертификат, указывая наши домены:example.com, www.example.com, mail.example.com
После генерации не забываем скачать сертификаты.
Устанавливаем сертификат
Распаковываем у себя на рабочем компьютере архив с сертификатами, из него достаём OtherServer.
Склеиваем root.crt
и 1_Intermediate.crt
в один файл(цепочка сертификатов) и кладём это на сервер в /tmp/ca_bundle.crt
.
Сертификат (2_example.com.crt
) кладём в /tmp/ssl.crt
Несмотря на инструкцию, запускаем от пользователя zimbra(!):
/opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/ssl.crt /tmp/ca_bundle.crt
keytool -import -alias root -keystore /opt/zimbra/common/lib/jvm/java/jre/lib/security/cacerts -storepass changeit -file /opt/zimbra/ssl/zimbra/commercial/commercial.crt
Перезапускаем Zimbra(от этого же пользователя): zmcontrol restart
Проверяем в браузере - зелёный ли у нас протокол. Можно проверить на админке Zimbra.
NB: Почему то через веб-интерфейс установить сертификат мне ни разу не удалось.
Меняем порты
Поскольку Zimbra устанавливает свой nginx - лучше поменять его порты и использовать системный nginx.
Делается это одной командой от пользователя zimbra: /opt/zimbra/libexec/zmproxyconfig -a 8080:81:8443:444 -e -m -w -H example.com && zmcontrol restart
Теперь веб-интерфейс почты переехал на https://example.com:444/
, а на 80 и 443 мы можем повесить наш системный nginx.
DKIM
Тут всё делаем по инструкции.
А именно, прописываем то, что выдаёт команда /opt/zimbra/libexec/zmdkimkeyutil -a -d example.com
в качестве TXT записи.
ВАЖНО!
zmdkimkeyutil выдаёт нам например вот такую вот вещь:
zimbra@p390733:~$ /opt/zimbra/libexec/zmdkimkeyutil -a -d tochkaremont.ru
DKIM Data added to LDAP for domain tochkaremont.ru with selector 91F75664-6CF8-11E6-99AA-81B8C4CFEEED
Public signature to enter into DNS:
91F75664-6CF8-11E6-99AA-81B8C4CFEEED._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwx/fQgq1HGxt6zUz+B8j7/yHXyFSfoESOmkkTWeQnxhQYcfYqmA4ypsZ7PycmZ9Bv3+saoHFkUyfnQfLvtZPQDzdt8S7TCF9Jsm9tJEt1gknhjgJzLRoJiJaIOhDr3nOsKzsMUaP2vwhfd7a6QMjZjDPqu9PGEVq+DJrvl31oFF4x/qxjD2Ie85xDEEi7FOeG91XejifcBM0z0"
"0sqMSz4fxRIU/qweA+KPQD8qZjo/lOGodJIEElHmTH24brQ1WT6NjNUBq/csmY9p/CzoDhn3JD3SUYzTKX4DpvehDTXlV/Q+Z/OCnm8tndKUhRwvH4+bH1/WK+XPIXj5SG91iq4KwIDAQAB" ) ; ----- DKIM key 91F75664-6CF8-11E6-99AA-81B8C4CFEEED for tochkaremont.ru
В качестве значения мы берём то, что в ковычках, убирая пробелы и переносы строки. Проверяем валидность того, что собираемся вставить в сервисе DkimCore.
К сожалению, r01.ru и pdd.yandex.ru не справятся с такой длинной подписью(maxlen 255 там). Как эту проблему решать - не известно, поскольку утилита не позволяет уменьшать размер ключа.
После обновления TXT записи dkim можно проверить всё тестовым письмом через сервис DkimValidator или отослать письмо на gmail и посмотреть, что будет в расшифровке поля "от".
Антивирусная проверка архивов
Zimbra использует clamav для проверки писем и вложений на вирусы.
Конфиг clamav /opt/zimbra/conf/clamd.conf
Поскольку зашифрованные архивы проверить нельзя, по-умолчанию они блокируются.
Изменить это можно закомментировав в конфиге строку ArchiveBlockEncrypted yes
Перезагрузить сервис антивируса можно одной командой zmclamdctl restart
Размер сообщений
Related: Configuring maxmessagesize
zimbra@p390733:~$ postconf message_size_limit
message_size_limit = 10240000
zimbra@p390733:~$ zmprov modifyConfig zimbraMtaMaxMessageSize 102400000
zimbra@p390733:~$ postfix reload
/postfix-script: refreshing the Postfix mail system
zimbra@p390733:~$ postconf message_size_limit
message_size_limit = 102400000
zimbra@p390733:~$ zmprov getConfig zimbraFileUploadMaxSize
zimbraFileUploadMaxSize: 10485760
zimbra@p390733:~$ zmprov modifyConfig zimbraFileUploadMaxSize 51445760
Bonus - MySQL
Zimbra ставит MariaDB и от рута пароль можно получить простой командой от пользователя zimbra: zmlocalconfig -s | grep ^mysql_root_password
Понравилась статья?
Нет обратных ссылок на эту запись.
Leave a comment