Ранее мы рассказывали о том, как осуществить односерверную установку Carbonio на Red Hat Enterprise Linux 8, однако такой вариант больше подходит для тестирования, нежели для полноценного продуктива. В новой статье мы расскажем о том, как осуществить мультисерверную установку, которая, в отличие от односерверного варианта, позволяет распределять нагрузку между различными машинами

Мы рассмотрим установку коммерческой версии Carbonio на трех серверах. На данный момент это минимально допустимая для тестирования и использования в продуктиве конфигурация. Минимальные системные требования к каждому из узлов инфраструктуры включают в себя 4 vCPU Intel/AMD, 8 Gb RAM и как минимум 100 Gb свободного места на диске. Среди поддерживаемых платформ виртуализации: VMware vSphere 6.x и 7.x, XenServer и KVM. Также поддерживается VirtualBox, но рекомендуется только для тестовых целей.

Разбивка по серверам будет следующей:

  • Сервер 1 (Инфраструктурный узел) - на нем предполагается разместить те сервисы, которые будут обеспечивать взаимодействие между различными компонентами системы. Это LDAP-сервер, Postgresql, сервер Carbonio Mesh. Все размещенные на данному узле сервисы не требуют публичного IP-адреса. 

  • Сервер 2 (Публичный узел) - на нем предполагается разместить те сервисы, которые должны быть доступны из внешней сети. Соответственно, у этого сервера должен быть публичный IP-адрес. Здесь будут установлены Carbonio Proxy, MTA и Videoserver для Carbonio Chats.

  • Сервер 3 (Почтовый узел) - на нем будет осуществляться хранение электронной почты, а также предоставление различных пользовательских сервисов, таких как Carbonio Files и Carbonio Docs. Данный сервер также не нуждается в публичном IP-адресе.

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

Общие настройки

В первую очередь администратору требуется задать каждому серверу имя хоста и FQDN. В нашем случае узлы будут носить название ldap, proxy и mailstore. Соответственно, имена для них будут задаваться командами:

  1. hostnamectl set-hostname ldap

  2. hostnamectl set-hostname proxy

  3. hostnamectl set-hostname mailstore

Также добавим информацию о каждом из них в /etc/hosts, параллельно задав для них FQDN.

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

Запись будет идентична для всех серверов и выглядеть будет следующим образом:

Обязательно отключите IPv6 и проследите, чтобы в /etc/hosts не было ни одной записи IPv6. 

В случае, если предполагается получать почту из внешнего интернета, следует также добавить MX-запись, которая будет вести на сервер с установленным MTA.

Также, учитывая то, что речь идет об RHEL8, для установки пакетов потребуется добавить репозитории BaseOS и CodeReady:

  • subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms

  • subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms

Список портов, которые должны быть открыты для подключения из внешних сетей на узле Proxy:

  • 80 - порт для незашифрованного подключения к веб-клиенту

  • 110 - порт для POP3

  • 143 - порт для IMAP

  • 443 - порт для зашифрованного подключения к веб-клиенту

  • 993 - порт для IMAPS

  • 995 - порт для POP3S

  • 6071 - порт для зашифрованного подключения к консоли администратора

  • 25 - порт для входящей почты

  • 465 - порт для SMTP с шифрованием SSL

  • 587 - порт для SMTP с шифрованием STARTTLS

  • Диапазон UDP-портов от 20000 до 40000 - порты для подключения к видеосерверу

Также на каждом из серверов потребуется добавить в список репозиториев официальный репозиторий Carbonio. Ссылку на него можно получить у официального представителя Zextras в России.

Установка сервера LDAP

  1. После завершения предварительных шагов, запустите на сервере LDAP установку PostgreSQL. Делается это при помощи следующих команд:

  1. После выполнения установки PostgreSQL, инициализируйте создание базы данных в нем: 

  • dnf -qy module disable postgresql

  • dnf -y install postgresql12 postgresql12-server

  1. Воспользуйтесь генератором паролей для того, чтобы создать сложный пароль, который впоследствии будет использоваться для доступа к базам данных PostgreSQL. В нашем случае это будет 3A3aZl7VYbXw.

  1. Создайте пользователя и основную базу данных для обращений со стороны Carbonio, используя пароль, созданный в шаге 3:

  • su - postgres -c "psql --command="CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password '3A3aZl7VYbXw';""

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

  1. Повысьте максимальное количество подключений к PostgreSQL с помощью следующих команд:

  • su - postgres -c "psql --command="ALTER SYSTEM SET listen_addresses TO '*';""

  • su - postgres -c "psql --command="ALTER SYSTEM SET max_connections = 500;""

  • su - postgres -c "psql --command="ALTER SYSTEM SET shared_buffers = 5000;""

  1. Добавьте в настройки PostgreSQL следующую строку, заменив 0.0.0.0/0 на собственную доверенную подсеть:

echo "host    all             all             0.0.0.0/0            md5" >> /var/lib/pgsql/12/data/pg_hba.conf

  1. Перезапустите PostgreSQL

systemctl restart postgresql-12

  1. Установите остальные компоненты Carbonio

dnf install service-discover-server  carbonio-directory-server carbonio-files-db carbonio-mailbox-db carbonio-docs-connector-db carbonio-prometheus

  1. Запустите процесс настройки Carbonio

carbonio-bootstrap

В процессе задайте все необходимые настройки. В случае, если планируете включить межпроцессное шифрование, вам потребуется доустановить пакет libio-socket-ssl-perl

  1. Настройте Carbonio Mesh

service-discover setup-wizard

В ходе настройки укажите IP-адрес сетевого интерфейса, к которому будет привязываться Carbonio Mesh, а также пароль Carbonio Mesh.

  1. Настройте установленные компоненты

Все настройки выполняются автоматически после  ввода соответствующей команды и ввода пароля Carbonio Mesh

pending-setups -a

  1. Создайте дополнительные базы данных в PostgreSQL

  • PGPASSWORD=3A3aZl7VYbXw carbonio-mailbox-db-bootstrap carbonio_adm 127.0.0.1

  • PGPASSWORD=3A3aZl7VYbXw carbonio-files-db-bootstrap carbonio_adm 127.0.0.1

  • PGPASSWORD=3A3aZl7VYbXw carbonio-docs-connector-db-bootstrap carbonio_adm 127.0.0.1

  1. Получите пароль от LDAP для продолжения установки на других серверах

su - zextras -c "zmlocalconfig -s zimbra_ldap_password"

Установка сервера Proxy

  1. Добавьте репозиторий

dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

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

dnf install service-discover-agent carbonio-mta carbonio-proxy carbonio-webui carbonio-files-ui carbonio-chats-ui carbonio-user-management carbonio-videoserver carbonio-videoserver-recorder

В ходе установки пакета carbonio-videoserver укажите публичный адрес вашего сервера для подключений извне.

  1. Запустите процесс настройки Carbonio

carbonio-bootstrap

В ходе настройки, во всех местах, где это требуется, введите пароль, который был получен при выполнении пункта 13 во время установки узла LDAP. В качестве адреса LDAP укажите имя хоста (ldap.carbonio.ru в нашем случае). Указание IP-адреса в качестве сервера LDAP приведет к ошибке.

  1. Настройте Carbonio Mesh

service-discover setup-wizard

В ходе настройки укажите IP-адрес сетевого интерфейса, к которому будет привязываться Carbonio Mesh, а также пароль Carbonio Mesh, который был задан при выполнении пункта 10 во время установки узла LDAP

  1. Настройте установленные компоненты

Все настройки выполняются автоматически после  ввода соответствующей команды и ввода пароля Carbonio Mesh

pending-setups -a

  1. Настройте сервер memcached

Выполните приведенные ниже команды от имени пользователя zextras (su zextras)

  • carbonio prov ms $(zmhostname) zimbraMemcachedBindAddress $(hostname -i)

  • zmmemcachedctl restart

  • zmproxyctl restart

Сервер memcached работает на порту 11211 и не поддерживает аутентификацию. Поэтому для обеспечения безопасности данных в нем рекомендуется ограничить доступ к этому порту из внешнего интернета

  1. Включите видеосервер

  • systemctl enable videoserver.service

  • systemctl start  videoserver.service

  1. Получите данные для подключения к видео серверу

grep -i -e nat_1_1 -e api_secret /etc/janus/janus.jcfg

В выводе будет содержаться доменное имя видеосервера и Api Secret, который будет использоваться в дальнейшем.

Веб-клиент Carbonio
Веб-клиент Carbonio

Установка сервера Mailstore

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

dnf install service-discover-agent carbonio-advanced carbonio-preview carbonio-files carbonio-docs-connector carbonio-docs-editor

  1. Запустите процесс настройки Carbonio

carbonio-bootstrap

В ходе настройки, во всех местах, где это требуется, введите пароль, который был получен при выполнении пункта 13 во время установки узла LDAP. В качестве адреса LDAP укажите имя хоста (ldap.carbonio.ru в нашем случае). Указание IP-адреса d качестве сервера LDAP приведет к ошибке.

  1. Настройте Carbonio Mesh

service-discover setup-wizard

В ходе настройки укажите IP-адрес сетевого интерфейса, к которому будет привязываться Carbonio Mesh, а также пароль Carbonio Mesh, который был задан при выполнении пункта 10 во время установки узла LDAP

  1. Настройте установленные компоненты

Все настройки выполняются автоматически после  ввода соответствующей команды и ввода пароля Carbonio Mesh

pending-setups -a

  1. Настройте взаимодействие с сервером memcached

Откройте файл /etc/carbonio/preview/config.ini в любом текстовом редакторе и приведите следующие строки к виду, указанному ниже:

nginx_lookup_server_full_path_urls = https://192.168.0.102:7072

memcached_server_full_path_urls = 192.168.0.101:11211

В этих настройках устанавливается связь между сервером mailstore и proxy. Соответственно, в первой строке должен быть указан адрес почтового сервера с протоколом https, а во второй строке адрес прокси-сервера с указанием порта, на котором работает сервер memcached.

  1. Установите связь с видеосервером

Введите команду от имени пользователя zextras (su zextras)

carbonio chats video-server add VIDEOSERVER_ADDR port 8188 servlet_port 8090 secret VIDEOSERVER_PWD

Замените VIDEOSERVER_ADDR и VIDEOSERVER_PWD на данные, полученные при выполнении шага 8 во время установки узла Proxy

Страница входа в консоль администратора
Страница входа в консоль администратора
  1. Включите связанные с Carbonio Chats функции

От имени пользователя zextras (su zextras) введите следующие команды:

  • carbonio config set cos default teamChatEnabled true

  • carbonio config set global teamVideoServerRecordingEnabled true

  • carbonio config set global teamMeetingRecordingEnabled true

  • carbonio prov modifyCos default carbonioFeatureChatsEnabled TRUE

  • carbonio prov modifyCos default carbonioFeatureMeetingEnabled TRUE

  • carbonio prov modifyCos default carbonioFeatureTeamEnabled TRUE

  1. Задайте пароль для учетной записи администратора

При установке Carbonio автоматически создается учетная запись zextras в создаваемом по умолчанию домене. Ей автоматически присваиваются права глобального администратора, но не задается пароль по умолчанию. Чтобы использовать эту учетную запись для входа в веб-клиент, введите команду от имени пользователя zextras (su zextras)

carbonio prov setPassword zextras@carbonio.ru mPFu96V2keGS

  1. Активация лицензии

Для активации лицензии введите от имени пользователя zextras (su zextras) следующую команду

carbonio core activate-license TOKEN 

Замените TOKEN на предоставленный вам при приобретении лицензии или по запросу на тестирование почтового сервера токен.

Страница входа в веб-клиент
Страница входа в веб-клиент

Вход в веб-клиент будет доступен по адресу https://proxy.carbonio.ru, вход в консоль администратора осуществляется по адресу https://proxy.carbonio.ru:6071

Комментарии (0)