2026-09-18

Установка и настройка Carbonio CE на Ubuntu: почтовый сервер

Carbonio Community Edition (Zextras) — полноценная почтовая система: веб-клиент, MTA (SMTP), антиспам и антивирус, IMAP/POP3, панель администрирования и файлы/задачи/чат. В этой инструкции разберём развёртывание с нуля на Ubuntu.

Проверено на Ubuntu 20.04/22.04/24.04. Подробная документация — docs.zextras.com (на английском). Перед началом обязательно изучите требования к системе.


Подготовка

Получение ссылки на репозиторий

Разработчик не публикует ссылки на репозитории открыто. Заполните форму на сайте — на почту придёт письмо с настройкой репозитория и ссылкой на документацию. Ниже — сведения на момент обновления статьи; сверяйтесь со своей ссылкой.

Установка репозитория

apt update
apt install wget
wget https://repo.zextras.io/inst_repo_ubuntu.sh
bash ./inst_repo_ubuntu.sh
rm -f inst_repo_ubuntu.sh

Брандмауэр

iptables -L

Открываем порты веб-доступа:

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

80 — HTTP, 443 — HTTPS, 6071 — панель администрирования.

Ограничить панель подсетью:

iptables -I INPUT -p tcp -s 192.168.0.0/24 --dport 6071 -j ACCEPT

SMTP:

iptables -I INPUT -p tcp --match multiport --dports 25,465,587 -j ACCEPT

25 — SMTP; 587 — STARTTLS; 465 — TLS/SSL.

IMAP:

iptables -I INPUT -p tcp --match multiport --dports 143,993 -j ACCEPT

143 — IMAP/STARTTLS; 993 — IMAPS.

POP3 (при необходимости):

iptables -I INPUT -p tcp --match multiport --dports 110,995 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save

Время

timedatectl set-timezone Europe/Moscow
apt install chrony

Имя сервера

hostnamectl set-hostname mail.imaxis.ru
vi /etc/hosts
192.168.1.15      mail.imaxis.ru

где 192.168.1.15 — IP сервера, mail.imaxis.ru — FQDN.

Без пакета hostname установка падает с ошибкой определения IP по имени:

apt install hostname

Установка Carbonio

СУБД

apt install postgresql-16
read -s -p "Password:" PG_PWD
sudo -iu postgres psql -c "CREATE ROLE carbonio WITH LOGIN SUPERUSER encrypted password '$PG_PWD';"
sudo -iu postgres psql -c "CREATE DATABASE carbonio OWNER carbonio;"

Владелец базы carbonio — пользователь carbonio, пароль — из переменной PG_PWD.

Компоненты

apt install service-discover-server carbonio-directory-server carbonio-proxy carbonio-webui carbonio-files-ui carbonio-mta carbonio-mailbox-db carbonio-appserver carbonio-user-management carbonio-files-ce carbonio-files-public-folder-ui carbonio-files-db carbonio-tasks-ce carbonio-tasks-db carbonio-tasks-ui carbonio-storages-ce carbonio-preview-ce carbonio-docs-connector-ce carbonio-docs-connector-db carbonio-docs-editor carbonio-prometheus carbonio-message-broker carbonio-message-dispatcher-ce carbonio-message-dispatcher-db carbonio-ws-collaboration-ce carbonio-ws-collaboration-db carbonio-ws-collaboration-ui carbonio-videoserver-ce carbonio-catalog
systemctl status carbonio-*

Если сервис не запущен — перезапустите вручную.

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

carbonio-bootstrap

При ненастроенных MX-записях увидим:

DNS ERROR - none of the "MX" records for imaxis.ru
resolve to this host

Отказываемся от смены домена:

Change domain name? [Yes] no

Далее соглашаемся применить настройки — y:

Main menu
   1) Common Configuration:
   2) carbonio-antivirus:                      Enabled
   3) carbonio-directory-server:               Enabled
   4) carbonio-mta:                            Enabled
   5) carbonio-appserver:                      Enabled
   6) carbonio-proxy:                          Enabled
   s) Save config to file
   x) Expand menu
   q) Quit
*** CONFIGURATION COMPLETE - press 'y' to apply configuration
Select from menu, or press 'y' to apply config (? - help) y
Configuration complete - press return to exit

Настраиваем взаимодействие компонентов:

service-discover setup-wizard
Setup of first service-discover server instance
ens18 192.168.1.15/24, fe80::d8c5:3aff:fe51:6a45/64
Specify the binding address for service discovery: 192.168.1.15/24
Create the cluster credentials password (will be used for setups):
Type the credential password again:

Указываем адрес сервера и придумываем пароль кластера.

pending-setups -a

Вводим пароль кластера.

There are no pending-setups to run. Exiting!

Инициализация СУБД

export PGPASSWORD=$PG_PWD
carbonio-mailbox-db-bootstrap carbonio 127.0.0.1
carbonio-files-db-bootstrap carbonio 127.0.0.1
carbonio-docs-connector-db-bootstrap carbonio 127.0.0.1
carbonio-tasks-db-bootstrap carbonio 127.0.0.1
carbonio-message-dispatcher-db-bootstrap carbonio 127.0.0.1
unset PG_PWD PGPASSWORD

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

По умолчанию Carbonio доверяет всем отправителям локальной сети — при заражении одного ПК это приведёт к рассылке спама.

sudo -iu zextras postconf mynetworks

Разрешаем доверять только себе:

sudo -iu zextras carbonio prov ms $(hostname -f) zimbraMtaMyNetworks '127.0.0.0/8'
systemctl restart carbonio-mta.target

Вход в панель управления

При установке создаётся пользователь zextras со случайным паролем. Задаём свой.

sudo -iu zextras carbonio prov getAllDomains

Домен должен совпадать с именем сервера, например imaxis.ru.

MAIL_DOMAIN=imaxis.ru
read -s -p "Password:" ADM_PWD
sudo -iu zextras carbonio prov setPassword zextras@${MAIL_DOMAIN} ${ADM_PWD}
unset ADM_PWD

Логин — zextras@<домен>.

Открываем https://<IP-сервера>:6071 (примите предупреждение сертификата) и входим.


Сертификат SSL/TLS

Без корректного сертификата (правильное имя, доверенный CA, полная цепочка) возникают проблемы: предупреждения в браузере, ошибки STARTTLS/SSL у клиентов.

Carbonio не слушает порт 80 — включаем редирект на 443:

sudo -iu zextras carbonio prov ms $(hostname -f) zimbraReverseProxyMailMode redirect
systemctl restart carbonio-proxy.target
ss -tunlp | grep :80

Открываем https://mail.imaxis.ru:6071, входим в панель. Переходим в раздел управления доменами, выбираем домен, слева — Virtual Hosts & Certificates.

Добавляем виртуальный хост (имя подключения пользователей) → ADDSAVE.

Нажимаем UPLOAD AND VERIFY CERTIFICATE, выбираем получение от Let’s Encrypt (полная цепочка) → GENERATE CERTIFICATE.

Статус придёт письмом администратору (zextras):

The certification result is: SUCCESS
The certificate for imaxis.ru was successfully received.
systemctl restart carbonio-proxy.target

Отправка писем

Создание ящика

Панель управления → управление доменами → Accounts → создаём аккаунт.

Заполняем:

  • Surname — имя (автозаполнит username и Display Name);
  • Password — пароль (дважды);
  • Account StatusActive.

Проверка отправки

Открываем веб-клиент https://mail.imaxis.ru, нажимаем NEW, отправляем письмо. Письмо может попасть в спам — настраиваем DNS.

Настройка DNS

  1. MX — определяет почтовый сервер домена;
  2. A — адрес для MX-хоста (внешний IP);
  3. PTR — обратное разрешение IP → домен (подтверждает легитимность);
  4. SPF — TXT-запись со списком разрешённых отправителей;
  5. DKIM — подтверждение владельца через подпись;
  6. DMARC — политика проверки писем домена.

Настройка DKIM

Посмотреть запись

DOMAIN=imaxis.ru
sudo -iu zextras /opt/zextras/libexec/zmdkimkeyutil -q -d ${DOMAIN}
Public signature to enter into DNS:
C1EC91E2-BC8F-11EE-81D0-32265FA98525._domainkey IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." )  ; ----- DKIM key ... for imaxis.ru

Имя TXT-записи — <хэш>._domainkey, значение — v=DKIM1; k=rsa; p=....

Создать новую запись

DOMAIN=imaxis.ru
sudo -iu zextras /opt/zextras/libexec/zmdkimkeyutil -a -d ${DOMAIN}

Добавляем полученную TXT-запись в DNS и через несколько минут проверяем.


Проверка рейтинга

Открываем mail-tester.com, копируем тестовый адрес, отправляем письмо, нажимаем «Затем проверьте оценку». Если не 10 баллов — анализируем замечания.


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

Настройка IMAP POP3 SMTP
Адрес сервера Имя из сертификата (например, mail.imaxis.ru)
Порт 143 110 587
Шифрование STARTTLS
Имя пользователя Полный почтовый адрес (user@domain)
Пароль Пароль ящика

Тонкости и подводные камни

  • Репозиторий по заявке — ссылки и документация выдаются персонально; чужие команды могут не сработать.
  • Пакет hostname — без него carbonio-bootstrap падает с ошибкой определения IP.
  • MX/A/PTR — без корректных записей письма уходят в спам; PTR часто настраивает только провайдер.
  • Порт 80 для Let’s Encrypt — Carbonio по умолчанию его не слушает; включайте zimbraReverseProxyMailMode redirect.
  • Пароль кластера — задаётся при service-discover setup-wizard и нужен для pending-setups.
  • PostgreSQL 16 — сверяйте версию с документацией; в новых релизах она может отличаться.
  • Панель 6071 — ограничьте доступ по IP, это административный интерфейс.
  • mynetworks — обязательно сузьте до 127.0.0.0/8, иначе сервер станет открытым релеем для локальной сети.

Шпаргалка

wget https://repo.zextras.io/inst_repo_ubuntu.sh && bash ./inst_repo_ubuntu.sh
apt install postgresql-16 hostname
sudo -iu postgres psql -c "CREATE ROLE carbonio WITH LOGIN SUPERUSER encrypted password 'PWD';"
sudo -iu postgres psql -c "CREATE DATABASE carbonio OWNER carbonio;"
apt install service-discover-server carbonio-directory-server carbonio-proxy carbonio-webui carbonio-mta carbonio-mailbox-db carbonio-appserver ...
carbonio-bootstrap
service-discover setup-wizard
pending-setups -a
carbonio-mailbox-db-bootstrap carbonio 127.0.0.1
# панель: https://<IP>:6071  (zextras@domain)

Проверено на: Ubuntu 20.04/22.04/24.04 + Carbonio CE.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *