Установка Carbonio Community Edition на Ubuntu 20.04

В связи с тем, что в конце 23 года Synacor прекращает поддержку Zimbra OSE 8.6 и не планирует далее поддерживать ее Community редакцию встала острая необходимость пересадить некоторое количество клиентов на более другой продукт. Компания Zextras, ранее неодрократно замеченая в связях с Synacor, выпустила на рынок свой собственный, аналогичный Zimbra продукт под названием Carbonio. И у Carbonio есть открытая версия. По крайней мере пока.

Я устанавливал первый экземпляр для себя. Обслуживать он будет мой собственный почтовый домен it-manager.pro Для установки Carbonio я сконфигурировал виртуальную машину на домашнем сервере и установил туда Ubuntu Server 20.04. Сетевому адаптеру был назначен статический адрес во внутренней сети.

Сначала обновляем систему

apt update && apt upgrade

Далее в систему нужно добавить репозиторий Zextras, для этого вы должны заполнить регистрационную форму на сайте Zextras и вам придет письмо со ссылками на скрипты, один для установки текущего репозитория для Ubuntu 20.04, другой для RHEL8. Скачиваем скрипт для Ubuntu на сервер и запускаем

wget https://repo.zextras.io/inst_repo_ubuntu.sh
./inst_repo_ubuntu.sh

Если вылетит ошибка, меняем права на скрипт и повторяем запуск

chmod+x inst_repo_ubuntu.sh

Carbonio требует правильного FQDN в качестве имени хоста. Так же потребуется добавить запись в файл /etc/hosts.

!!! mail.it-manager.pro следует заменить на FQDN вашего сервера, а WWW.XXX.YYY.ZZZ заменить на его адрес.

hostnamectl set-hostname mail.it-manager.pro
echo "WWW.XXX.YYY.ZZZ mail.example.com mail" >> /etc/host

еще раз запускаем обновление системы и устанавливаем компоненты Carbonio Community edition

apt update && apt upgrade
apt install service-discover-server \
carbonio-directory-server \
carbonio-proxy \
carbonio-webui carbonio-files-ui \
carbonio-mta \
carbonio-appserver \
carbonio-user-management \
carbonio-files-ce carbonio-files-db \
carbonio-storages-ce \
carbonio-preview-ce \
carbonio-docs-connector-ce carbonio-docs-editor \
carbonio-prometheus

После завершения установки проверьте запущены ли службы Carbonio CE.

systemctl status carbonio-*

Если какие-то сервисы не запущены попробуйте их перезапустить

systemctl restart carbonio-prometheus-nginx-exporter.service

Далее перейдем к настройке установленного почтового сервера. Если в вашей системе включен Firewall надо открыть на нем следующие порты:

Внешние соединения

Роль MTA

ПортПротоколУслуга
25TCPПостфикс входящей почты
465TCPРеле аутентификации SMTP
587TCPПорт для ретрансляции с аутентификацией SMTP, требуется STARTTLS (или оппортунистический SSL/TLS)

Роль Proxy

ПортПротокол
80TCPнезащищенное соединение с веб-клиентом Carbonio
110TCPвнешние POP3-сервисы
143TCPвнешние службы IMAP
443TCPбезопасное соединение с веб-клиентом Carbonio
993TCPвнешний безопасный доступ IMAP
995TCPвнешний безопасный доступ POP3
6071TCPбезопасный доступ к панели администратора

Порты IMAP, POP3 и 6071 следует открывать только в том случае, если это действительно необходимо, и желательно, чтобы они были доступны только из VPN-туннеля, если это возможно, чтобы уменьшить поверхность атаки.

Внутренние соединения

На всех узлах должны быть открыты порты

ПортПротокол
22TCPSSH-доступ
8301TCP и UDPуправление протоколом Gossip в локальной сети
9100TCPЭкспортер узла мониторинга Carbonio
9256TCPЭкспортер процессов мониторинга Carbonio

Роль Postgress

ПортПротоколУслуга
5432TCPДоступ к Postgres
9187TCPЭкспорт данных Postgres в Carbonio Monitoring

Роль Directory Server

ПортПротоколУслуга
389TCPнезащищенное соединение LDAP
636TCPбезопасное соединение LDAP
9330TCPЭкспорт данных LDAP в Carbonio Monitoring

Роль MTA

ПортПротоколУслуга
25TCPПостфикс входящей почты
465TCPРелей аутентификации SMTP 
587TCPПорт для ретрансляции с аутентификацией SMTP, требуется STARTTLS (или SSL/TLS)
7026TCPпривязать адрес сервиса Milter

Роль AppServer

ПортПротоколУслуга
7025TCPлокальный обмен почтой по протоколу LMTP
7071TCPПорт для связи с сервисами SOAP
7072TCPОбнаружение и аутентификация NGINX
7073TCPОбнаружение и аутентификация SASL
7110TCPвнутренние службы POP3
7143TCPвнутренние службы IMAP
7993TCPвнутренний безопасный доступ IMAP
7995TCPвнутренний защищенный доступ POP3
8080TCPдоступ к внутренним HTTP-сервисам
8443TCPвнутренние службы HTTPS
8735TCPСвязь с внутренним почтовым ящиком
8742TCPвнутренние HTTP-сервисы, расширенный модуль
8743TCPвнутренние службы HTTPS, расширенный модуль

Роль Carbonio Videoserver

ПортПротоколУслуга
8188TCPВнутреннее соединение
8090TCPСвязь с сервлетами

Роль Proxy

ПортПротоколУслуга
9113TCPэкспорт данных nginx в Carbonio Monitoring
11211TCPдоступ к memcached

Роль Carbonio Mesh

ПортПротоколУслуга
8300TCPуправление входящими запросами от других агентов
8302TCP и UDPуправление протоколом Gossip в глобальной сети
9107TCPЭкспорт данных Carbonio Mesh в Carbonio Monitoring

Далее запускаем настройку сервера

carbonio-bootstrap

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

И продолжаем установку нажав МАЛЕНЬКУЮ “y”

Далее надо настроить Carbonio MESH, он используется для связи компонентов Carbonio CE. В процессе выполнения команд нужно будет ввести IP адрес первого инстанса service-discovery – вводим IP адрес сервера. Так же устанавливаем пароль на кластер Carbonio CE, он потребуется для завершения установки.

service-discover setup-wizard

Завершаем установку Carbonio Mesh. Нужно будет ввести пароль на кластер Carbonio Mesh

pending-setups -a

Следующим шагом установим и настроим сервер баз данных Postgress и базу данных Carbonio CE.
Устанавливаем PostgreSQL

apt install postgresql-12
systemctl start postgresql
systemctl enable postgresql

Установим пароль администратора PostgreSQL. Вместо 123456 надо бы поставить пароль поинтереснее.

su - postgres -c "psql --command=\"CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password '123456';\""

Создаем PostgreSQL базу данных PostgreSQL для Carbonio CE

su - postgres -c "psql --command=\"CREATE DATABASE carbonio_adm owner carbonio_adm;\""

Подготавливаем базу данных Carbonio Files

PGPASSWORD=123456 carbonio-files-db-bootstrap carbonio_adm 127.0.0.1

Установка завершёна. Перезапускаем службы Carbonio CE

su - zextras
zmcontrol restart

Устанавливаем пароль администратора Carbonio CE.

carbonio prov sp zextras@it-manager.pro 123456

Далее можно открывать браузер и заходить в административный веб-интерфейс для донастройки сервера и заведения пользователей. Админка сидит на порту 6071