В этой статье рассмотрю развёртывание и настройку программного решения Zimbra Collaboration Network Edition, включая компоненты Zimbra Connect, Zimbra Video Server для Zimbra Connect и Zimbra Docs. После нескольких удачных и неудачных попыток установки, решил, что, на данный момент, проще это решение развернуть на Ubuntu LTS 18, хотя изначально хотел и пробовал это сделать на CentOS 8.
Как известно, продукт Zimbra Collaboration Network Edition является платным, но для установки, ознакомления и тестирования можно получить бесплатную триальную лицензию на 60 дней. Для этого надо перейти на сайт:
https://www.zimbra.com/try/zimbra-collaboration-9/#zimbra_9_trial_form
После чего придёт письмо с лицензией на указанную в этой анкете электронную почту.
Этап 1. Установка и подготовка Ubuntu LTS 18.4
Для начала скачиваю установочный образ от сюда:
http://old-releases.ubuntu.com/releases/bionic/ubuntu-18.04.5-live-server-amd64.iso
Приступаю к установке. Тут выбираю русский язык. Хотя установка всё равно продолжится на английском. Но это не страшно, позже систему русифицирую:
На следующем шаге предлагается обновить установщик. Я соглашусь, т.к. подключение к интернету имеется:
Тут вроде как можно добавить раскладку клавиатуры. Но я не буду. На этапе установке русский язык не понадобится. Русификация позже:
Далее предлагается настроить сеть. Я пока оставлю получение IP-адреса по DHCP. После установки системы пропишу статику:
Прокси сервер у меня не используется, оставляю поле пустым:
Сервер с репозиторием оставляю по умолчанию, ничего тут не меняю:
Дальше идёт этап выбора диска и его разбиение на разделы. У меня тестовая машина и диск всего один. Поэтому я даже LVM делать не буду. Но на боевом сервере я бы рекомендовал систему ставить на один диск или дисковый массив, а зимбру -- на другой отдельный диск или дисковый массив.
На следующем шаге подтверждаю внесение изменений на диск:
Далее вписываю имя пользователя, пароль и имя компьютера, которое потом возможно изменится:
На следующем шаге обязательно ставлю крыж для установки SSH-сервера, чтобы потом подключаться со своего рабочего компьютера:
Из других готовых конфигураций не ставлю ничего. Для Зимбры нужна голая ОС, все нужные пакеты поставит потом установщик Зимбры:
Всё, ждём окончания установки:
После окончания установки перезагружаю сервер. Ну а после его загрузки подключаюсь к нему по SSH. Имя пользователя и пароль использую те, что задал при установке. Чтобы стать рутом, ввожу команду:
sudo su
И снова тот же пароль, что задал своему пользователю при установке. Потом ставлю то, без чего я как без рук – это midnight commander и редактор nano:
apt install mc nano
Следующим шагом надо русифицировать систему. Удобная пошаговая инструкция находится здесь:
https://obu4alka.ru/rusificziruem-ubuntu-server-16-04-lts.html
Но я продублирую её у себя. Итак, обновляем систему:
apt update && apt dist-upgrade -y
Установим русский language-pack:
apt install language-pack-ru -y
Переконфигурируем локали:
dpkg-reconfigure locales
Отмечаем, чтобы была сгенерирована ru_RU.UTF8:
Выбираем локалью по умолчанию ru_RU.UTF-8
Проверим что локаль по умолчанию изменилась:
cat /etc/default/locale
Команда должна выдать что-то, вроде этого:
LANG=ru_RU.UTF-8
Добавим русскую раскладку клавиатуры:
dpkg-reconfigure keyboard-configuration
Выбираем стандартную 105 кнопочную клавиатуру:
Далее выбираем страну — Россия:
В следующем окне выбираем русскую раскладку для клавиатуры:
Выбираем метод переключения клавиатуры, который вам больше нравится:
Остальные параметры оставляем как есть:
Изменим настройки консоли, чтобы поддерживались русские шрифты:
dpkg-reconfigure console-setup
Выбираем UTF-8:
Даем системе выбирать какой набор шрифтов использовать:
Остальные параметры оставляем как есть:
Включим framebuffer, если этого не сделать, то за место русских букв будут кракозябры:
echo 'FRAMEBUFFER=Y' >> /etc/initramfs-tools/initramfs.conf
update-initramfs -u
Также установим еще один пакет:
apt install console-cyrillic -y
Перезагружаем систему.
reboot
Теперь пора прописать статический IP-адрес серверу. Нахожу файл конфигурации /etc/netplan/00-installer-config.yaml и меняю в нём строчку:
dhcp4: true
на:
dhcp4: no
И под ней добавляю следующие строчки:
addresses: [192.168.0.150/24]
gateway4: 192.168.0.1
nameservers:
addresses: [192.168.0.1, 8.8.8.8]
search: [ typical-admin.ru ]
Сохраняю и даю команду:
netplan apply
Потом перезагружаю сервер, дабы убедиться, что указанные настройки применяются при загрузке.
Теперь надо установить Webmin. Вещь полезная, ставлю его на всех серверах. Скачиваю:
wget https://prdownloads.sourceforge.net/webadmin/webmin_1.981_all.deb
Ставлю недостающие пакеты для вэбмина:
apt install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl perl-openssl-abi-1.1
Потом ставлю Webmin:
dpkg -i webmin_1.981_all.deb
И пробую зайти в него:
https://192.168.0.150:10000/
Имя пользователя и пароль ввожу те самые, что задавал при установке системы.
Также не забываю поставить правильный часовой пояс:
timedatectl set-timezone Asia/Yekaterinburg
Этап 2. Установка Zimbra Collaboration Network Edition.
Скачиваю установочный архив с официального сайта для Ubuntu 18.04 LTS:
https://www.zimbra.com/downloads/zimbra-collaboration/
Сразу хочу отметить, что на момент этой статьи версия была вот такая: Zimbra Collaboration 9.0.0 Patch-19 has been issued on 28 September 2021.
Итак, скачиваю файл zcs-NETWORK-9.0.0_GA_3924.UBUNTU18_64.20200331010312.tgz (на момент статьи) и распаковываю его где-нибудь на сервере. Я люблю под дистрибутивы заводить каталог /home/distrib, соответственно, зимбравский установщик распаковал в каталог /home/distrib/zcs-NETWORK-9.0.0_GA_3924.UBUNTU18_64.20200331010312. Находясь там, ввожу команду (из под root конечно же):
./install.sh
И начинаю проводить установку согласно официальной документации:
https://zimbra.github.io/zimbra-9/single-server-install.html
На первом шаге установщик просит принять лицензионное соглашение:
Do you agree with the terms of the software license agreement? [N]
Жму "Y"
И сразу после этого я словил первую же ошибку:
ERROR: Installation can not proceeed. Please fix your /etc/hosts file to contain: Where is the ip address of the host, is the FULLY QUALIFIED host name, and is the (optional) hostname-only portion
И действительно, ведь я забыл указать реальное имя хоста. Во-первых, нахожу файл /etc/hostname и в нём прописываю полное и правильное имя своего хоста. У меня это будет zimbra.typical-admin.ru. Потом нахожу файл /etc/hosts и в нём строчку:
127.0.0.1 zimbra
Меняю на:
192.168.0.150 zimbra.typical-admin.ru
Сохраняю, но сервер пока не перезагружаю.
Я также забыл установить необходимые пакеты libreoffice. Ставлю:
apt install libreoffice libreoffice-l10n-ru fonts-vlgothic
И перезагружаю сервер. После загрузки повторно запускаю установщик Зимбры, соглашаюсь с лицензионным соглашением и дохожу до шага:
Use Zimbra's package repository [Y]
Жму Enter. Установщик подключит зимбровский репозиторий и найдёт все нужные пакеты.
На следующем шаге потребуется выбрать, какие компоненты требуется установить. Мой выбор таков:
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-dnscache [Y] n
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-convertd [Y]
Install zimbra-memcached [Y]
Install zimbra-proxy [Y]
Install zimbra-archiving [N]
Install zimbra-drive [Y]
Install zimbra-imapd (BETA - for evaluation only) [N]
Install zimbra-network-modules-ng [Y]
Install zimbra-connect [Y]
Что, собственно, является выбором как в документации. Там кое-что сказано про компонент zimbra-dnscache. Рекомендуется устанавливать Zimbra-dnscache на почтовых серверах только в том случае, если на том же сервере уже не установлены и не работают другие DNS-серверы (например, dnsmasq или bind). Ибо компонент zimbra-dnscache, является локальным кэширующим DNS-севером. А, как известно, Ubuntu 18 работает уже через Netplan, который, по сути, тоже является локальным DNS-сервером, и если компонент zimbra-dnscache установить, то будет конфликт. Поэтому компонент zimbra-dnscache устанавливать не буду.
После выбора компонентов выходит сообщение (в переводе на русский):
Для работы Network Modules NG требуется привязка к TCP-портам 8735 и 8736 для межэкземплярного взаимодействия.
Пожалуйста, убедитесь, что никакая другая служба не прослушивает эти порты, и что порты 8735 и 8736 должным образом отфильтрованы от публичного доступа вашим брандмауэром.
Пожалуйста, помните, что модуль Backup NG должен быть инициализирован для того, чтобы функционировать. Это одноразовая операция, которую можно выполнить, нажав кнопку "Инициализировать" в разделе "Резервное копирование" модуля Network NG в консоли администрирования или запустив команду `zxsuite backup doSmartScan` от имени пользователя zimbra.
Проверка необходимого пространства для zimbra-core
Проверка пространства для zimbra-store
Проверка необходимых пакетов для zimbra-store
FOUND: libreoffice-1:6.0.7-0ubuntu0.18.04.10
Проверка пакета zimbra-store завершена.
А также вижу вопрос:
The system will be modified. Continue? [N]
На который жму «Y» и Enter. Ну а также взял на заметку информацию о портах 8735 и 8736. После этого шага установщик начинает загрузку недостающих пакетов.
И вот я получил вторую ошибку:
DNS ERROR resolving MX for zimbra.typical-admin.ru
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes]
Она означает, что установщик не нашёл MX-запись для домена zimbra.typical-admin.ru. Но у меня zimbra.typical-admin.ru — это хост, а не домен. Для домена же typical-admin.ru MX-запись у меня имеется. Поэтому жму Enter и меняю домен:
DNS ERROR resolving MX for zimbra.typical-admin.ru
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes]
Create domain: [zimbra.typical-admin.ru] typical-admin.ru
Снова жму Enter. Получаю следующее сообщение:
Create domain: [zimbra.typical-admin.ru] typical-admin.ru MX: typical-admin.ru (88.xx.xx.xx) DNS ERROR - No A or AAAA record for typical-admin.ru. Interface: 127.0.0.1 Interface: ::1 Interface: 192.168.0.150 DNS ERROR - none of the MX records for typical-admin.ru resolve to this host It is suggested that the MX record resolve to this host Re-Enter domain name? [Yes]
Ему не нравится, что ни одна из записей MX для typical-admin.ru не ссылается на этот хост. Просит снова поменять домен. Но я проигнорирую и наберу «no», т.к. почтовый сервер у меня будет за роутером, на котором я уже потом и проброшу все нужные порты.
И вот я дошёл до меню:
Main menu 1) Common Configuration: 2) zimbra-ldap: Enabled 3) zimbra-logger: Enabled 4) zimbra-mta: Enabled 5) zimbra-snmp: Enabled 6) zimbra-store: Enabled +Create Admin User: yes +Admin user to create: admin@typical-admin.ru ******* +Admin Password UNSET +Anti-virus quarantine user: virus-quarantine.odayyu52h@typical-admin.ru +Enable automated spam training: yes +Spam training user: spam.tm8dfx6n@typical-admin.ru +Non-spam(Ham) training user: ham.67gav8m7ds@typical-admin.ru +SMTP host: zimbra.typical-admin.ru +Web server HTTP port: 8080 +Web server HTTPS port: 8443 +Web server mode: https +IMAP server port: 7143 +IMAP server SSL port: 7993 +POP server port: 7110 +POP server SSL port: 7995 +Use spell check server: yes +Spell server URL: http://zimbra.typical-admin.ru:7780/aspell.php +Enable version update checks: TRUE +Enable version update notifications: TRUE +Version update notification email: admin@typical-admin.ru +Version update source email: admin@typical-admin.ru +Install mailstore (service webapp): yes +Install UI (zimbra,zimbraAdmin webapps): yes ******* +License filename: UNSET 7) zimbra-spell: Enabled 8) zimbra-convertd: Enabled 9) zimbra-proxy: Enabled 10) Default Class of Service Configuration: 11) Enable default backup schedule: yes s) Save config to file x) Expand menu q) Quit
В этом меню надо сделать некоторые настройки. Сперва нажму «x» и Enter, чтобы распахнуть это меню полностью и увидеть все подпункты. Потом жму «1» и Enter, чтобы зайти в первый пункт меню. Там мне надо поменять подпункт 7 TimeZone. Жму «7» и Enter. Из выпавшего списка выбираю свой часовой пояс. В моём случае это 91. Поэтому жму «91» и Enter. Далее жму «r» и Enter, чтобы вернуться в главное меню.
По аналогии захожу в 6-ой пункт меню, где меня интересует подпункт 4, в котором требуется установить пароль администратора в вэб-консоли Зимбры:
Select, or 'r' for previous menu [r] 4
Password for admin@typical-admin.ru (min 6 characters): [UFIG2hTX] пишу_мой_пароль
После установки пароля выбираю подпункт 25, в котором надо указать полный путь к файлу с лицензией. Этот файл у меня лежит в каталоге /home/distrib/lic. Значит прописываю пусть так:
Select, or 'r' for previous menu [r] 25
Enter the name of the file that contains the license: /home/distrib/lic/ZCSLicense3.xml
Жму «r» и Enter для возврата в основное меню.
Следующее меню интересует под номером 9, перехожу туда. А там – подменю 12 Proxy server mode, его надо изменить с https на redirect. Это будет означать, что при попытке зайти в вэб-клиента по http, система будет автоматически переключать интерфейс на https. Это удобно. Всё, потому жму «r», Enter и «a», что означает принятие заданных выше настроек.
На дальнейшие вопросы отвечаю утвердительно:
Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes]
Save config in file: [/opt/zimbra/config.17454]
Saving config in /opt/zimbra/config.17454...done.
The system will be modified - continue? [No] yes
Установщик продолжит свою работу. Жду окончания, пока не увижу это сообщение:
Configuration complete - press return to exit
И, на всякий случай, сразу же проверяю, нет ли в новых подключенных репозиториях Зимбры чего свежего:
apt update
apt list --upgradable
И вижу, что среди пакетов, которые можно обновить, есть «zimbra-network-modules-ng». Обновляю.
apt upgrade
После установки пакета «zimbra-network-modules-ng», вижу в консоли сообщение:
Restart the mailbox service as zimbra user. Run
su - zimbra
zmmailboxdctl restart
Что, собственно, нужно делать после каждой установки или обновления зимбравских пакетов.
Следующим в документации написано, что надо установить пакет «zimbra-drive-ng», и выполнение этого шага также устанавливает/обновляет «zimbra-docs». Делаю:
apt install zimbra-drive-ng
Не забываю потом сделать:
su - zimbra
zmmailboxdctl restart
Далее в документации предлагается установить дополнительные пакеты для интеграции с сервисами Slack, Zoom, Dropbox, Google Drive, Onedrive и Jitsi. Но я этот шаг пропущу, т.к. пока мне интересны возможности самой Зимбры 9.
Читаю документацию далее: «Zimbra Collaboration поставляет пользователя zimbra по умолчанию с отключенным паролем. Zimbra Collaboration требует доступа к этой учетной записи через аутентификацию с открытым ключом ssh. В большинстве операционных систем эта комбинация подходит, но если вы изменили правила борьбы со спамом, чтобы запретить любой доступ по ssh к отключенным учетным записям, то вы должны определить пароль для учетной записи zimbra UNIX. Это позволит использовать аутентификацию ключа ssh для проверки удаленных очередей.» Предлагается из-под пользователя zimbra выполнить команду:
zmupdateauthkeys
Я в конфигурации ssh ничего не менял в системе. Но команду, на всякий случай, выполнил. Навредить не должно. Ругань не вылезла, команда отработала:
zimbra:~$ zmupdateauthkeys
Updating keys for zimbra.typical-admin.ru
Fetching key for zimbra.typical-admin.ru
Updating keys for zimbra.typical-admin.ru
Updating /opt/zimbra/.ssh/authorized_keys
Читаю дальше: «Включение отображения статистики сервера.
Для того чтобы статистика сервера отображалась на консоли администрирования, необходимо изменить файлы конфигурации syslog.» Предлагается от пользователя root выполнить команду:
/opt/zimbra/libexec/zmsyslogsetup
Делаю. Здесь тоже ругани не было, команда отработала:
# /opt/zimbra/libexec/zmsyslogsetup
updateRsyslogd: Updating /etc/rsyslog.d/50-default.conf...done.
Видимо пора попробовать зайти в вэб-консоль администратора. Пробую в браузере:
https://192.168.0.150:7071/
получаю жалобу на сертификат:
Но это не страшно пока, жму «дополнительные» и «перейти на сайт». Появилось окно входа, ввожу имя пользователя admin и пароль, который задавал на этапе установки Зимбры.
И вижу вот что… Ну сразу предупреждение о лицензии, которую надо активировать. А также вижу, что внизу не хватает меню «Network Modules NG»:
Ну сначала разберусь с лицензией. Жму на «Управление лицензиями» рядом с предупреждением. И справа в углу нахожу такую неприметную кнопочку в виде шестерёнки – жму на неё и там выбираю активацию лицензии.
Вышло уведомление об успешной активации.
Теперь надо разобраться с отсутствием меню «Network Modules NG». В тех.поддержке сказали, что это из-за отсутствия доверенного сертификата. Попробую его установить, в этом мне помогла официальная Zimbra Wiki и документация по certbot:
https://wiki.zimbra.com/wiki/Installing_a_LetsEncrypt_SSL_Certificate
https://certbot.eff.org/lets-encrypt/ubuntubionic-other
Собственно, там написано, что, по уму, рекомендуется поднимать отдельную виртуальную машину для получения сертификатов и дальнейшей их раздачи. Но поскольку мне надо получить сертификат лишь пока единожды, я буду его получать прямо на сервере с Зимброй.
В документации Зимбры написано, что certbot лучше ставить через snap, который в Ubuntu уже предустановлен. Из-под root выполняю команды:
snap install core
snap refresh core
Ставлю Certbot через snap:
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
Теперь пробую получить сертификат:
certbot certonly --standalone --preferred-chain "ISRG Root X1"
Certbot запросит ваш e-mail для всяких уведомлений. Если не указать, то процесс дальше не пойдёт.
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): me@typical-admin.ru
Далее нужно принять условия лицензии:
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
А следующий вопрос идёт, готов ли я, чтоб они потом рассылку делали с новостями. Вот тут отказываюсь:
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Далее надо указать список доменов (через пробел), для которых я запрашиваю сертификат:
Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): typical-admin.ru
Я указал только один, для которого настраиваю Зимбру. И потом получил ошибку:
Could not bind TCP port 80 because it is already in use by another process on
this system (such as a web server). Please stop the program in question and then
try again.
(R)etry/(C)ancel:
Нужно остановить Зимбру, это она заняла порт 80. Для Certbot этот порт нужен лишь временно, так что достаточно просто остановить Зимбру на момент получения сертификата, а после можно её снова запускать. Поэтому из-под пользователя zimbra даю команду:
zmcontrol stop
Потом возвращаюсь в Certbot и жму «r». И всё, получаю сообщение об успешном получении сертификатов:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/typical-admin.ru/fullchain.pem
Key is saved at: /etc/letsencrypt/live/typical-admin.ru/privkey.pem
This certificate expires on 2022-01-17.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Теперь создаю каталог /opt/zimbra/ssl/letsencrypt/ и копирую в него вышеперечисленные файлы /etc/letsencrypt/live/typical-admin.ru/privkey.pem и /etc/letsencrypt/live/typical-admin.ru/privkey.pem. Не забываю поправить права на этот каталог:
chown -R zimbra:zimbra /opt/zimbra/ssl/letsencrypt
Потом уже из-под пользователя zimbra запускаю обратно Зимбру:
zmcontrol start
И копирую один файл вот так:
cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
Затем проделываю вот такую манипуляцию (как это указано на Zimbra Wiki):
wget -O /tmp/ISRG-X1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt
cat /tmp/ISRG-X1.pem >> /opt/zimbra/ssl/letsencrypt/chain.pem
И пробую проверить, устраивает ли Зимбру данная цепочка сертификатов (эта и предыдущие команды по-прежнему из-под пользователя zimbra):
cd /opt/zimbra/ssl/letsencrypt
/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key cert.pem chain.pem
Вывод должен быть таким:
** Verifying 'cert.pem' against '/opt/zimbra/ssl/zimbra/commercial/commercial.key'
Certificate 'cert.pem' and private key '/opt/zimbra/ssl/zimbra/commercial/commercial.key' match.
** Verifying 'cert.pem' against 'chain.pem'
Valid certificate chain: cert.pem: OK
И если оно так, выполняю команду размещения данных сертификатов в Зимбру:
/opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem
Дожидаюсь её окончания и перезапускаю Зимбру:
zmcontrol restart
Однако, при входе в консоль администрирования я опять не увидел меню «Network Modules NG». Пробую листать документацию и нахожу там вот такую команду, которую надо выполнить от пользователя zimbra. Делаю:
zmprov mcf zimbraNetworkAdminNGEnabled TRUE
zmmailboxdctl restart
Ну что ж, зайти в админку и увидеть меню «Network Modules NG» получилось, но с тем нюансом, что работает оно у меня только через браузер Firefox. Баг это или фишка — не понятно. Скорее всего баг, т.к. заходя через Google Chrome, Brave или Opera данное меню по-прежнему не отображается. Но, Firefox, так Firefox…
И сразу наблюдаю уведомления об инициализации. Об этом было предупреждение ещё при установке. Поэтому захожу в подменю backup и жму инициализацию:
Что ж, пробую создать тестовую учётную запись для себя и посмотреть, что там внутри у 9-ой Зимбры. Оказалось, что не доступно редактирование файлов онлайн, а также невозможно создать переговорную. С переговорной оказалось всё проще. Надо зайти в настройку, потом выбрать класс обслуживания default, зайти в него двойным щелчком, там перейти в пункт Team Pro и поставить галочку с кривым переводом «Zimlet Team не найден», хотя в англоязычной версии она называется «Enable connect features»:
После чего можно создавать переговорные с видеосвязью. Но у меня нет вэб-камеры, чтобы эту связь проверить.
Однако, чтобы этот сервис работал лучше, в документации упомянут отдельный Zimbra Connect Video Server. Цитирую: «Zimbra Connect Video Server - это агрегатор потоков WebRTC, который повышает производительность Zimbra Connect путем объединения и декодирования/перекодирования всех потоков в собрании.
В то время как по умолчанию WebRTC создает один входящий и один исходящий поток для каждого участника собрания, с Zimbra Connect Video Server у каждого клиента будет только один агрегированный входящий поток и один агрегированный исходящий поток. Это относится как к видео, так и к аудио.
Zimbra Connect Video Server должен быть установлен на выделенном сервере и иметь следующие системные требования:
Минимум 4-ядерный процессор, желательно 8-ядерный для одновременной работы с более чем 100 пользователей.
1024 Мб оперативной памяти + 1 Мб оперативной памяти для каждого подключенного пользователя.
Публичный IP.
Публично разрешаемое FQDN.
С настройками по умолчанию, пропускная способность 200 кб/с (0,2 мб/с) для каждого подключенного пользователя.
Почтовый сервер будет устанавливать WebSocket на порт 8188 для связи с видеосервером.
Клиенты будут использовать случайный UDP порт между 20000 и 40000»
Получается, надо поднимать ещё одну машину. Однако, как выяснилось, чтобы работало редактирование документов онлайн, требуется также развернуть отдельный сервер документов.
Из документации: «Сервер Zimbra Docs является сердцем службы. Служба размещает каждый документ, открытый с помощью механизма LibreOffice, и отвечает клиенту на каждое нажатие клавиши и изменение. Вот что происходит за кулисами, когда пользователь создает документ:
Zimlet предлагает расширению создать новый, пустой документ.
Расширение создает документ и возвращает его ID клиенту
Zimlet открывает новую вкладку Zimbra, содержащую iframe, указывающий на /service/extension/wopi-proxy
Расширение получает запрос от клиента, создает уникальный токен для нужного документа и отвечает новым URL-адресом.
URL указывает на /docs/[docs-node-id]/[token], который будет проксирован nginx на определенный узел Docs Server.
Сервер Docs Server ответит веб-приложением на Javascript
Веб-приложение открывает WebSocket-соединение, проходящее через nginx
Docs Server получает WebSocket соединение вместе с маркером, отправляет команду read wopi на URL почтового ящика, указанный в параметрах (после проверки URL на разрешенных узлах).
Расширение проверяет токен и отвечает информацией и содержимым.
Узел Docs Server анализирует документ, отображает его и отправляет обратно клиенту.
Документ полностью открыт и доступен для редактирования.
Все почтовые серверы должны иметь возможность напрямую взаимодействовать с сервером Docs Server через порт 8443 (HTTPS Backend), который должен быть открыт с обеих сторон.
Сервер Docs Server взаимодействует с расширением через порт 9980, поэтому входящий трафик со всех почтовых и прокси-серверов на этот порт должен быть разрешен. Компонент Docs Server также должен иметь возможность напрямую взаимодействовать с главным LDAP-сервером, а также со всеми серверами почтовых ящиков.»
Вобщем, тут мозг сломать можно. Однако я не увидел упоминание того, что Zimbra Connect Video Server и Сервер Zimbra Docs нельзя ставить на одну машину. Поэтому попробую их установить на одну машину и посмотрю, как это всё работает на практике.
Процесс установки Ubuntu LTS 18 будет точно таким же, как для сервера Зимбры. С той лишь разницей, что IP-адрес этой машине я дам 192.168.0.151, а имя – docs.typical-admin.ru
После развёртывания операционной системы скачиваю дистрибутив видео сервера с той же самой страницы, откуда качал Зимбру:
https://www.zimbra.com/downloads/zimbra-collaboration/
Распаковываю скачанный архив где-нибудь уже на Ubuntu-машине и запускаю установщик:
./install.sh
На всех этих вопросах жму Enter, отвечая тем самым утвердительно:
System will be modified, would you like to proceed? [Y]
ubuntu-toolchain repo not found. Would you like to install it? [Y]
Would you like to install Zextras VideoServer? [Y]
Установщик начнёт скачивать необходимые пакеты. А потом выйдет запрос, чтобы прописать публичный IP-адрес самого видеосервера:
А потом появится следующее окно, в котором будет написана команда для её ввода на сервере с Зимброй от имени zimbra:
Копирую этот текст временно в какой-нибудь блокнот и дожидаюсь завершения установки. Ну и потом на сервере с Зимброй ввожу команду из окна выше:
zimbra:~$ zxsuite connect video-server add docs.typical-admin.ru port 8188 secret GknVqJNGhz……………….7M3/Pr5f6q
ok
Ругани нет, видимо всё хорошо.
Теперь пришло время установки сервера документов. Также скачиваю его с оф.сайта и распаковываю где-нибудь на второй Ubuntu-машине:
И уже знакомой командой запускаю установщик:
./install.sh
Снова жму Enter, отвечая утвердительно на все эти вопросы:
System will be modified, would you like to proceed? [Y]
python-ldap not found. Would you like to install it? [Y]
Would you like to install Zimbra DOCS? [Y]
А дальше установщик задаст вопрос про LDAP url и прочее. Ответы на эти вопросы можно узнать на сервере с Зимброй, там надо под пользователем zimbra ввести вот такую команду:
zmlocalconfig -s ldap_master_url zimbra_ldap_user zimbra_ldap_userdn zimbra_ldap_password
И в ответ система выдаст это:
ldap_master_url = ldap://zimbra.typical-admin.ru:389
zimbra_ldap_user = zimbra
zimbra_ldap_userdn = uid=zimbra,cn=admins,cn=zimbra
zimbra_ldap_password = y9egerf3a
Собственно, копирую и вставляю это установщику сервера документов:
LDAP url (None): ldap://zimbra.typical-admin.ru:389
LDAP dn (uid=zimbra,cn=admins,cn=zimbra):
LDAP password (None): y9egerf3a
Trying to connect to LDAP...OK
Configuration written
Key not existing, generating a new one
........................................+++++
.........................................................................................................+++++
Generated key in /opt/zimbra/conf/docs/key.pem
Adding server 61a70584-26df-4636-8b56-a6e4c9ce5e2c with hostname 'docs.typical-admin.ru' in LDAP
Changes applied
Config written
systemctl restart zimbra-docs-server
Setup successfully completed.
И на этом установщик закончил работу.
Далее в документации сказано, что надо на сервере документов сгенерировать кэш шрифтов:
dpkg-reconfigure zimbra-docs-server
Затем, конфигурация прокси должна быть создана заново после добавления одного или нескольких серверов Zimbra Docs в инфраструктуру. Для этого запускаю команду на сервере с Зимброй от имени zimbra:
/opt/zimbra/libexec/zmproxyconfgen
Появится много строчек, но в конце должно быть написано:
[] INFO: Proxy configuration files are generated successfully
Затем перезапускаю службу прокси, выполнив:
zmproxyctl restart
Теперь можно пробовать зайти под своим пользователем в вэб-интерфейс Зимбры и открыть какой-нибудь файл для редактирования в Zimbra Drive. Ну и собственно вот:
Ещё одна функция, которую надо проверить – это попытка подключиться с мобильного приложения. Вот так оно выглядит и называется:
При первом открытии запрашивает URL сервера Зимбры:
И вот тут один важный момент: подключается приложение только по https и только, если установлен доверенный сертификат. При удачном подключении будет запрос логина и пароля пользователя:
Ну и после входа получаю интерфейс своего почтового ящика:
На этом статью закончу, возможно потом она будет дополняться.
Донаты принимаются на кошельки:
Yoomoney:
4100118091867315
Карта Т-Банк (бывший Тиньков):
2200 7017 2612 2077
Карта Альфа-Банк:
2200 1539 1357 2013