Развертывание офисных рабочих мест Zextras/Zimbra в Яндекс.Облако
Введение
Оптимизация офисной инфраструктуры и развертывание новых рабочих мест — серьезная проблема для компаний всех типов и размеров. Оптимальным вариантом для нового проекта является аренда ресурсов в облаке и приобретение лицензий, которые можно использовать как у провайдера, так и в собственном ЦОД. Одним из решений для такого сценария является Zextras Suite, который позволяет создать платформу для совместной работы и корпоративных коммуникаций предприятия как в облачной среде, так и на своей инфраструктуре.
Решение рассчитано на офисы любого размера и имеет два основных сценария развёртывания: при наличии до 3000 тысяч почтовых ящиков и отсутствии высоких требований к отказоустойчивости, можно использовать установку в варианте single-server, а вариант установки multi-server поддерживает надежную и отзывчивую работу десятков и сотен тысяч почтовых ящиков. Во всех случаях пользователь получает доступ к почте, документам и сообщениям через единый веб-интерфейс с рабочего места с любой ОС без установки и настройки дополнительного ПО, или через мобильные приложения для iOS и Android. Возможно использование привычных клиентов Outlook и Thunderbird.
Для развертывания проекта партнер Zextras — SVZ выбрал Яндекс.Облако, т. к. его архитектура аналогична AWS и имеется поддержка S3 совместимого хранилища, что позволит удешевить стоимость хранения большого объема почты, сообщений и документов и повысит отказоустойчивость решения.
В среде Яндекс.Облако для установки single-server используются базовые средства управления виртуальными машинами «Compute Cloud» и возможности управления виртуальными сетями «Virtual Private Cloud». Для multi-server инсталляции в дополнение к указанным средствам необходимо использовать технологии «Групп размещения», при необходимости (в зависимости от масштаба системы) — также и «Instance Groups», и сетевой балансировщик Yandex Load Balancer.
S3-совместимое объектное хранилище Yandex Object Storage может использоваться в обоих вариантах инсталляции, а также может быть подключено к системам, развёрнутым on-premise для экономного и отказоустойчивого хранения данных почтового сервера в Яндекс.Облаке.
Для single-server инсталляции, в зависимости от количества пользователей и/или почтовых ящиков, требуется: для основного сервера 4-12 vCPU, 8-64 GB vRAM (конкретные значения vCPU и vRAM зависят от количества почтовых ящиков и фактической нагрузки), не менее 80 GB диска для операционной системы и приложений, а также дополнительное дисковое пространство для хранения почты, индексов, логов и т.п., зависящее от количества и среднего размера почтовых ящиков и которое может динамически изменяться во время эксплуатации системы; для вспомогательных серверов Docs: 2-4 vCPU, 2-16 GB vRAM, 16 GB дискового пространства (конкретные значения ресурсов и количество серверов зависят от фактической нагрузки); дополнительно может потребоваться сервер TURN/STUN (его необходимость как отдельного сервера и ресурсы зависят от фактической нагрузки). Для multi-server инсталляций количество и назначение ролевых виртуальных машин и выделяемые им ресурсы определяются индивидуально в зависимости от требований пользователя.
Цель статьи
Описание развертывания в среде Яндекс.Облако продуктов Zextras Suite на базе почтового сервера Zimbra в варианте установки single-server. Полученная инсталляция может быть использована в продуктивной среде (опытные пользователи могут сделать необходимые настройки и добавить ресурсы).
В состав системы Zextras Suite/Zimbra входят:
- Zimbra — корпоративная электронная почта с возможностью делиться почтовыми ящиками, календарями и списками контактов (адресными книгами).
- Zextras Docs — встроенный офисный пакет на базе LibreOffice online для создания и совместной работы с документами, таблицами, презентациями.
- Zextras Drive — индивидуальное файловое хранилище, позволяющее редактировать, хранить и делиться с другими пользователями файлами и папками.
- Zextras Team — мессенджер с поддержкой аудио- и видеоконференций. Доступны версии Team Basic, позволяющая только коммуникации 1:1, и Team Pro, поддерживающая многопользовательские конференции, каналы, возможность демонстрации экрана, обмена файлами и другие функции.
- Zextras Mobile — поддержка мобильных устройств через Exchange ActiveSync для синхронизации почты с мобильными устройствами с функциями управления MDM (Mobile Device Management). Позволяет использовать Microsoft Outlook в качестве почтового клиента.
- Zextras Admin — реализация мультитенантного администрирования системы с делегированием администраторов для управления группами клиентов и классами сервисов.
- Zextras Backup -резервирование и восстановление данных полного цикла в режиме реального времени
- Zextras Powerstore — иерархическое хранилище объектов почтовой системы с поддержкой классов обработки данных, с возможностью хранения данных локально или в облачных хранилищах архитектуры S3, включая Yandex Object Storage.
По окончании установки пользователь получает работающую в среде Яндекс.Облако систему.
Условия и ограничения
- Не описывается выделение дискового пространства для почтовых ящиков, индексов и других типов данных, т. к. Zextras Powerstore поддерживает различные типы хранилищ. Тип и размер хранилищ зависят от задач и параметров системы. При необходимости это может быть сделано позднее в процессе перевода описанной инсталляции в продуктивную.
- Для упрощения установки не рассматривается использование управляемого администратором DNS сервера для разрешения внутренних (непубличных) доменных имён, используется стандартный DNS-сервер Яндекс.Облака. При использовании в продуктивной среде рекомендуется использовать DNS-сервер, возможно уже есть в корпоративной инфраструктуре.
- Предполагается, что используется учётная запись в Яндекс.Облако с настройками по умолчанию (в частности, при входе в «Консоль» сервиса существует только каталог (в списке «Доступные облака» под именем default). Пользователи, знакомые с работой в Яндекс.Облако, могут по своему усмотрению, создать отдельный каталог для тестового стенда, или использовать существующий.
- У пользователя должна быть публичная зона DNS, к которой у него должен быть административный доступ.
- У пользователя должен быть доступ к каталогу в «Консоли» Яндекс.Облако по крайней мере с ролью «editor» (у «Владельца облака» все необходимые права есть по умолчанию, для предоставления доступа другим пользователям к облаку есть руководства: раз, два, три)
- В данной статье не описывается установка пользовательских X.509 сертификатов, используемых для защиты сетевых коммуникаций посредством механизмов TLS. По окончании установки будут использованы самоподписанные сертификаты, что позволяет использовать браузеры для доступа к установленной системе. Они как правило выводят уведомление об отсутствии у сервера верифицируемого сертификата, но позволяют продолжить работу. До установки верифицируемых клиентскими устройствами сертификатов (подписанных публичными и/или корпоративными удостоверяющими центрами) с установленной системой могут не работать приложения для мобильных устройств. Поэтому установка указанных сертификатов в продуктивной среде необходима, и производится после завершения теста в соответствии с корпоративными политиками безопасности.
Описание процесса инсталляции системы Zextras/Zimbra в варианте «single-server»
1. Предварительная подготовка
Перед началом установки необходимо обеспечить:
а) Внесение изменений в публичную DNS зону (создание A-записи для сервера Zimbra и MX-записи для обслуживаемого почтового домена).
б) Настройку виртуальной сетевой инфраструктуры в Яндекс.Облако.
При этом, после внесения изменений в зону DNS, необходимо некоторое время на распространение этих изменений, но, с другой стороны, нельзя создать A-запись, не зная IP-адреса, с ней связанного.
Поэтому действия производятся в следующей последовательности:
1. Зарезервировать публичный IP-адрес в Яндекс.Облако
1.1 В «Консоли Яндекс.Облака» (при необходимости выбрав каталок в «доступные облака») зайти в раздел Virtual Private Cloud, подраздел IP-адреса, после чего нажать кнопку «Зарезервировать адрес», выбрать предпочитаемую зону доступности (или согласиться с предлагаемым значением; эта зона доступности впоследствии должна использоваться для всех описываемых в дальнейшем действий в Яндекс.Облако, если на соответствующих формах есть возможность выбора зоны доступности), в открывшемся диалоговом окне, при желании можно, но не обязательно, выбрать опцию «Защита от DDoS», и нажать кнопку «Зарезервировать» (см. также документацию).
После закрытия диалога в списке IP-адресов будет доступен выделенных системой статический IP-адрес, который можно скопировать и использовать на следующем шаге.
1.2 В «прямой» зоне DNS сделать A-запись для сервера Zimbra, указывающую на выделенный ранее IP-адрес, A-запись для сервера TURN, указывающую на тот же самый IP-адрес, и MX-запись для обслуживаемого почтового домена. В нашем примере это будут mail.testmail.svzcloud.ru (сервер Zimbra), turn.testmail.svzcloud.ru (сервер TURN), и testmail.svzcloud.ru (почтовый домен) соответственно.
1.3 В Яндекс.Облако в выбранной зоне доступности для подсети, которая будет использоваться для развёртывания виртуальных машин, включить NAT в Интернет.
Для этого в разделе Virtual Private Cloud, подраздел «Облачные сети», выбрать соответствующую облачную сеть (по умолчанию там доступна только сеть default), в ней выбрать соответствующую зону доступности и в её настройка выбрать пункт «Включить NAT в интернет».
Статус изменится в списке подсетей:
Подробнее см. в документации: раз и два.
2. Создание виртуальных машин
2.1. Создание виртуальной машины для Zimbra
Последовательность действий:
2.1.1 В «Консоли Яндекс.Облака» зайти в раздел Compute Cloud, подраздел «Виртуальные машины», нажать кнопку «Создать ВМ» (подробнее о создании ВМ см. документацию).
2.1.2 Там необходимо задать:
- Имя — произвольно (в соответствии с поддерживаемым Яндекс.Облаком форматом)
- Зона доступности — должна соответствовать ранее выбранной для виртуальной сети.
- В «Публичные образы» выбрать Ubuntu 18.04 lts
- В дисках установить загрузочный диск размером не менее 80ГБ. Для тестовых целей достаточно типа HDD (и также для продуктивного использования при условии вынесения некоторых типов данных на диски типа SSD). При необходимости дополнительные диски можно будет добавить после создания ВМ.
В «вычислительных ресурсах» задать:
- vCPU: не менее 4-х.
- Гарантированная доля vCPU: на время выполнения описываемых в статье действий не менее 50%, после окончания установки, при необходимости, можно будет уменьшить.
- RAM: рекомендуется 8ГБ.
- Подсеть: выбрать подсеть, для которой на этапе предварительной подготовки был включен NAT в Интернет.
- Публичный адрес: выбрать из списка IP-адрес, ранее использованных для создания A-записи в DNS.
- Пользователь: по своему усмотрению, но отличный от пользователя root и от системных учётных записей Linux.
- Обязательно надо задать публичный (открытый) SSH-ключ.
→ Подробнее об использовании SSH
См. также Приложение 1. Создание ключей SSH в openssh и putty и конвертация ключей из формата putty в openssh.
2.1.3 По окончании настройки нажать «Создать ВМ».
2.2. Создание виртуальной машины для Zextras Docs
Последовательность действий:
2.2.1 В «Консоли Яндекс.Облака» зайти в раздел Compute Cloud, подраздел «Виртуальные машины», нажать кнопку «Создать ВМ» (подробнее о создании ВМ см. тут).
2.2.2 Там необходимо задать:
- Имя — произвольно (в соответствии с поддерживаемым Яндекс.Облаком форматом)
- Зона доступности — должна соответствовать ранее выбранной для виртуальной сети.
- В «Публичные образы» выбрать Ubuntu 18.04 lts
- В дисках установить загрузочный диск размером не менее 80ГБ. Для тестовых целей достаточно типа HDD (и также для продуктивного использования при условии вынесения некоторых типов данных на диски типа SSD). При необходимости дополнительные диски можно будет добавить после создания ВМ.
В «вычислительных ресурсах» задать:
- vCPU: не менее 2-х.
- Гарантированная доля vCPU: на время выполнения описываемых в статье действий не менее 50%, после окончания установки, при необходимости, можно будет уменьшить.
- RAM: не менее 2ГБ.
- Подсеть: выбрать подсеть, для которой на этапе предварительной подготовки был включен NAT в Интернет.
- Публичный адрес: без адреса (к данной машине не требуется доступ из Интернета, только исходящий доступ с этой машины в Интернет, который обеспечивается опцией «NAT в Интернет» используемой подсети).
- Пользователь: по своему усмотрению, но отличный от пользователя root и от системных учётных записей Linux.
- Обязательно надо задать публичный (открытый) SSH-ключ, можно тот же самый, что и для сервера Zimbra, можно сгенерировать отдельную ключевую пару, т. к. закрытый ключ для сервера Zextras Docs потребуется поместить на диск сервера Zimbra.
См. также Приложение 1. Создание ключей SSH в openssh и putty и конвертация ключей из формата putty в openssh.
2.2.3 По окончании настройки нажать «Создать ВМ».
2.3 Созданные виртуальные машины будут доступны в списке виртуальны машин, где отображается, в частности, их статус и используемые IP-адреса, как публичные, так и внутренние. Информация об IP-адресах потребуется на последующих шагах установки.
3. Подготовка сервера Zimbra к инсталляции
3.1 Установка обновлений
Необходимо зайти на сервер Zimbra по его публичному IP-адресу посредством предпочитаемого вами ssh-клиента с использованием закрытого (частного, приватного) ключа ssh и используя имя пользователя, заданного при создании виртуальной машины.
После входа выполнить команды:sudo apt update sudo apt upgrade
(при выполнении последней команды ответить «y» на вопрос о том, уверены ли вы в установке предлагаемого списка обновлений)
После установки обновлений можно (но не обязательно) выполнить команду:sudo apt autoremove
И в завершении шага выполнить командуsudo shutdown –r now
3.2 Доустановка приложений
Необходимо установить NTP-клиент для синхронизации системного времени и приложение screen следующей командой:sudo apt install ntp screen
(при выполнении последней команды ответить «y» на вопрос о том, уверены ли вы в установке прилагаемого списка пакетов)
Также можно установить дополнительные утилиты для удобства администратора. Например, Midnight Commander может быть установлен командой:sudo apt install mc
3.3. Изменение системной конфигурации
3.3.1 В файле /etc/cloud/cloud.cfg.d/95-yandex-cloud.cfg изменить значение параметра manage_etc_hosts c true на false.
Примечание: редактор для изменения этого файла надо запускать с правами пользователя root, например, «sudo vi /etc/cloud/cloud.cfg.d/95-yandex-cloud.cfg» или, если установлен пакет mc, можно использовать команду «sudo mcedit /etc/cloud/cloud.cfg.d/95-yandex-cloud.cfg»
3.3.2 Отредактировать /etc/hosts следующим образом, заменив в строке, определяющей FQDN хоста, адрес с 127.0.0.1 на внутренний IP-адрес этого сервера, а имя — с полного имени в зоне .internal на публичное имя сервера, указанное ранее в A-записи зоны DNS, и соответствующим образом изменив короткое имя хоста (если оно отличается от короткого имени хоста из A-записи публичного DNS).
Например, в нашем случае файл hosts имел вид:
После редактирования он принял вид:
Примечание: редактор для изменения этого файла надо запускать с правами пользователя root, например, «sudo vi /etc/hosts» или, если установлен пакет mc, можно использовать команду «sudo mcedit /etc/hosts»
3.4 Задать пароль пользователя
Это необходимо в связи с тем, что в дальнейшем будет производиться настройка файрвола, и в случае возникновения каких-либо проблем с ним, при наличии у пользователя пароля, можно будет зайти на виртуальную машину с использованием сериальной консоли из веб-консоли Яндекс.Облако и отключить файрвол и/или исправить ошибку. При создании виртуальной машины пользователь не имеет пароля, и поэтому доступ возможен только по SSH с использованием аутентификации по ключам.
Для задания пароля необходимо выполнить команду:sudo passwd <имя пользователя>
Например, в нашем случае это будет команда «sudo passwd user».
4. Инсталляция Zimbra и Zextras Suite
4.1. Скачивание дистрибутивов Zimbra и Zextras Suite
4.1.1 Скачивание дистрибутива Zimbra
Последовательность действий:
1) Зайти браузером по URL www.zextras.com/download-zimbra-9 и заполните форму. Вам придет письмо со ссылками на загрузку Zimbra для разных ОС.
2) Выбрать актуальную версию дистрибутива для платформы Ubuntu 18.04 LTS и скопировать ссылку
3) Скачать дистрибутив Zimbra на сервер Zimbra и распаковать его. Для этого в ssh-сеансе на сервере zimbra выполнить командыcd ~
mkdir zimbra
cd zimbra
wget (в нашем примере это «tar —zxf zcs-9.0.0_OSE_UBUNTU18_latest-zextras.tgz») 4.1.2 Скачивание дистрибутива Zextras Suite Последовательность действий: 1) Зайти браузером по URL www.zextras.com/download 2) Заполнить форму, введя необходимые данные, и нажать кнопку «DOWNLOAD NOW»
3) Откроется страница для скачивания
На ней есть два интересующих нас URL: один вверху страницы для самого Zextras Suite, который будет необходим нам сейчас, а другой внизу в блоке Docs Server для Ubuntu 18.04 LTS, который понадобится позже для установки Zextras Docs на ВМ для Docs. 4) Скачать дистрибутив Zextras Suite на сервер Zimbra и распаковать его. Для этого в ssh-сеансе на сервере zimbra выполнить командыcd ~
mkdir zimbra
cd zimbra (если после предыдущего шага не изменялась текущая директория — команды выше можно не выполнять)wget http://download.zextras.com/zextras_suite-latest.tgz
tar –zxf zextras_suite-latest.tgz 4.2. Инсталляция Zimbra Последовательность действий 1) Перейти в директорию, в которую распаковались файлы на шаге 4.1.1 (можно просмотреть командой ls, находясь в директории ~/zimbra). В нашем примере это будет:cd ~/zimbra/zcs-9.0.0_OSE_UBUNTU18_latest-zextras/zimbra-installer 2) Запустить инсталляцию Zimbra командойsudo ./install.sh 3) Отвечаем на вопросы инсталлятора На вопросы инсталлятора можно отвечать «y» (сответствует «да»), «n» (соответствует «нет») или оставить предложение инсталлятора без изменений (он предлагает варианты, отображая их в квадратных скобках, например, «[Y]» или «[N]». Do you agree with the terms of the software license agreement? — да. Use Zimbra’s package repository? — по умолчанию (да). «Install zimbra-ldap?», «Install zimbra-logger?», «Install zimbra-mta?» — по умолчанию (да). Install zimbra-dnscache? — нет (в операционной системе по умолчанию включен свой кэширующий DNS сервер, поэтому у этого пакета будет с ним конфликт из-за используемых портов). Install zimbra-snmp? — по желанию, можно оставить вариант по умолчанию (да), можно не устанавливать этот пакет. В нашем примере оставлен вариант по умолчанию. «Install zimbra-store?», «Install zimbra-apache?», «Install zimbra-spell?», «Install zimbra-memcached?», «Install zimbra-proxy?» — по умолчанию (да). Install zimbra-snmp? — нет (пакет фактически не поддерживается и функционально заменяется Zextras Drive). Install zimbra-imapd? — по умолчанию (нет). Install zimbra-chat? — нет (функционально заменяется Zextras Team) После чего инсталлятор спросит, продолжать ли установку?
Отвечаем «да» если можно продолжать, иначе отвечаем «нет» и получаем возможность изменить ответы на ранее заданные вопросы. После согласия на продолжение инсталлятор выполнит установку пакетов. 4.) Отвечаем на вопросы первичного конфигуратора 4.1) Поскольку в нашем примере различаются DNS-имя почтового сервера (имя A-записи) и имя обслуживаемого почтового домена (имя MX-записи), конфигуратор выводит предупреждение и предлагает задать имя обслуживаемого почтового домена. Соглашаемся с его предложением и вводим имя MX-записи. В нашем примере это выглядит следующим образом:
Примечание: задать обслуживаемого почтового домена отличным от имени сервера можно и в том случае, если для имени сервера есть одноимённая MX-запись. 4.2) Конфигуратор отображает основное меню.
Нам необходимо задать пароль администратора Zimbra (пункт меню 6 в нашем примере), без которого невозможно продолжение инсталляции, и изменить настройку zimbra-proxy (пункт меню 8 в нашем примере; при необходимости эту настройку можно изменить и после инсталляции). 4.3) Изменение настроек zimbra-store В приглашение конфигуратора вводим номер пункта меню и нажимаем Enter. Попадаем в меню настройки хранилища:
где в приглашении конфигуратора вводим номер пункта меню Admin Password (в нашем примере 4), нажимаем Enter, после чего конфигуратор предлагает случайно сгенерированный пароль, с которым можно согласиться (запомнив его) либо ввести свой. В обоих случаях в конце надо нажать Enter, после чего с пункта «Admin Password» будет снят маркер ожидания ввода информации от пользователя:
Возвращаемся в предыдущее меню (соглашаемся с предложением конфигуратора). 4.4) Изменение настроек zimbra-proxy По аналогии с предыдущим шагом, в главном меню выбираем номер пункта «zimbra-proxy» и вводим его в приглашение конфигуратора.
Конфигуратор предложит выбрать один из режимов, вводим в его приглашение «redirect» и нажимаем Enter. После чего возвращаемся в основное меню (соглашаемся с предложением конфигуратора). 4.5) Запуск конфигурации Для запуска конфигурации вводим «a» в приглашение конфигуратора. После чего он спросит, сохранить ли введённую конфигурацию в файл (который можно использовать для повторной инсталляции) — можно согласиться с предложением по умолчанию, если сохранение будет произведено — спросит, в каком файле сохранить конфигурацию (также можно согласиться с предложением по умолчанию или ввести своё имя файла).
На данном этапе еще можно отказаться от продолжения и внести изменения в конфигурацию, согласившись с ответом по умолчанию на вопрос «The system will be modified — continue?». Для начала инсталляции на этот вопрос необходимо ответить «Yes», после чего конфигуратор будет некоторое время применять введённые ранее настройки. 4.6) Завершение инсталляции Zimbra Перед завершением инсталлятор спросит, уведомлять ли Zimbra о произведённой инсталляции? Можно как согласиться с предложением по умолчанию, так и отказаться (ответив «No») от уведомления. После чего инсталлятор еще некоторое время будет проделывать завершающие операции и выведет уведомление о завершении конфигурирования системы с предложением нажать любую клавишу для выхода из инсталлятора.
4.3. Инсталляция Zextras Suite Подробнее об установке Zextras Suite см. инструкцию. Последовательность действий: 1) Перейти в директорию, в которую распаковались файлы на шаге 4.1.2 (можно просмотреть командой ls, находясь в директории ~/zimbra). В нашем примере это будет:cd ~/zimbra/zextras_suite 2) Запустить инсталляцию Zextras Suite командойsudo ./install.sh all 3) Отвечаем на вопросы инсталлятора Принцип работы инсталлятора аналогичен работе инсталлятора Zimbra, за исключением отсутствия конфигуратора. На вопросы инсталлятора можно отвечать «y» (соответствует «да»), «n» (соответствует «нет») или оставить предложение инсталлятора без изменений (он предлагает варианты, отображая их в квадратных скобках, например, «[Y]» или «[N]». Для начала процесса инсталляции необходимо последовательно ответить «да» на следующие вопросы: Do you agree with the terms of the software license agreement? Do you wish for Zextras Suite to automatically download, install and upgrade the ZAL Library? После чего будет выведено уведомление с предложение нажать Enter для продолжения:
После нажатия на Enter начнётся процесс инсталляции, иногда прерываемый вопросами, на которые, впрочем, отвечаем согласием с предложениями по умолчанию («да»), а именно: Zextras Suite Core will now be installed. Proceed?Do you wish to stop the Zimbra Web Application (mailbox)?The Zextras Suite Zimlet will now be installed. Proceed? Перед началом финальной части установки будет выведено уведомление о необходимости настройки фильтра DOS с предложением нажать Enter для продолжения. После нажатия на Enter начинается финальная часть установки, в конце выводится финальное уведомление и работа инсталлятора завершается.
4.4. Первичный тюнинг настройки и определение параметров конфигурации LDAP 1) Все последующие действия выполняются из-под пользователя zimbra. Для этого необходимо выполнить командуsudo su - zimbra 2) Изменяем настройку DOS фильтра командойzmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 150 3) Для установки Zextras Docs понадобится информация о некоторых параметрах настройки Zimbra. Для этого можно выполнить команду:zmlocalconfig –s | grep ldap В нашем примере будет выведена следующая информация:
Для дальнейшего использования понадобятся ldap_url, zimbra_ldap_password (и zimbra_ldap_userdn, хотя инсталлятор Zextras Docs обычно выдаёт правильные предположения об имени пользователя LDAP). 4) Завершить работу под пользователем zimbra, выполнив команду logout 5. Подготовка сервера Docs к инсталляции 5.1. Загрузка закрытого ключа SSH на сервер Zimbra и вход на сервер Docs Необходимо поместить на сервер Zimbra закрытый ключ пары SSH ключей, публичный ключ которой был использован на шаге 2.2.2 п.2.2 при создании виртуальной машины Docs. Его можно загрузить на сервер по SSH (например, по sftp) или вставить через буфер обмена (если позволяют возможности используемого SSH-клиента и среды его выполнения). Считаем, что закрытый ключ помещён в файл ~/.ssh/docs.key и пользователь, используемый для входа на сервер Zimbra является его владельцем (если загрузка/создание этого файла осуществлялись из-под этого пользователя — он автоматически стал его владельцем). Необходимо однократно выполнить команду:chmod 600 ~/.ssh/docs.key В дальнейшем для входа на сервер Docs необходимо выполнять следующую последовательность действий: 1) Зайти на сервер Zimbra 2) Выполнить командуssh -i ~/.ssh/docs.key user@<внутренний ip-адрес сервера Docs> Где значение <внутренний ip-адрес сервера Docs> можно узнать в «Консоли Яндекс.Облако», например, как это показано в п.2.3. 5.2. Установка обновлений После входа на сервер Docs выполнить команды аналогично таковым для сервера Zimbra:sudo apt update
sudo apt upgrade (при выполнении последней команды ответить «y» на вопрос о том, уверены ли вы в установке предлагаемого списка обновлений) После установки обновлений можно (но не обязательно) выполнить команду:sudo apt autoremove И в завершении шага выполнить командуsudo shutdown –r now 5.3. Доустановка приложений Необходимо установить NTP-клиент для синхронизации системного времени и приложение screen, аналогично такому же действию для сервера Zimbra, следующей командой:sudo apt install ntp screen (при выполнении последней команды ответить «y» на вопрос о том, уверены ли вы в установке прилагаемого списка пакетов) Также можно установить дополнительные утилиты для удобства администратора. Например, Midnight Commander может быть установлен командой:sudo apt install mc 5.4. Изменение системной конфигурации 5.4.1. В файле /etc/cloud/cloud.cfg.d/95-yandex-cloud.cfg так же, как и для сервера Zimbra, изменить значение параметра manage_etc_hosts c true на false. Примечание: редактор для изменения этого файла надо запускать с правами пользователя root, например, «sudo vi /etc/cloud/cloud.cfg.d/95-yandex-cloud.cfg» или, если установлен пакет mc, можно использовать команду «sudo mcedit /etc/cloud/cloud.cfg.d/95-yandex-cloud.cfg» 5.4.2. Отредактировать /etc/hosts, добавив в него публичный FQDN сервера Zimbra, но с внутренним IP-адресом, назначенным Яндекс.Облако. При наличии управляемого администратором внутреннего DNS-сервера, используемого виртуальными машинами (например, в продуктивной среде), и способного разрешать публичный FQDN сервера Zimbra внутренним IP-адресом при получении запроса из внутренней сети (для запросов из Интернет FQDN сервера Zimbra должно разрешаться публичным IP-адресом, а сервер TURN должен разрешаться публичным IP-адресом всегда, в т.ч. при обращении с внутренних адресов), эта операция не требуется. Например, в нашем случае файл hosts имел вид:
Примечание: редактор для изменения этого файла надо запускать с правами пользователя root, например, «sudo vi /etc/hosts» или, если установлен пакет mc, можно использовать команду «sudo mcedit /etc/hosts» 6. Инсталляция Zextras Docs 6.1. Зайти на сервер Docs Порядок входа на сервер Docs описан в п.5.1. 6.2. Скачивание дистрибутива Zextras Docs Последовательность действий: 1) Со страницы, с которой в п. 4.1.2. Скачивание дистрибутива Zextras Suite скачивался дистрибутив Zextras Suite (на шаге 3), скопировать URL для сборки Docs для Ubuntu 18.04 LTS (если он не был скопирован ранее). 2) Скачать дистрибутив Zextras Suite на сервер Zimbra и распаковать его. Для этого в ssh-сеансе на сервере zimbra выполнить командыcd ~
mkdir zimbra
cd zimbra
wget (в нашем случае выполняется команда «wget download.zextras.com/zextras-docs-installer/latest/zextras-docs-ubuntu18.tgz»)tar –zxf <имя скачанного файла> (в нашем случае выполняется команда «tar —zxf zextras-docs-ubuntu18.tgz») 6.3. Инсталляция Zextras Docs Подробнее о установке и настройке Zextras Docs см. тут. Последовательность действий: 1) Перейти в директорию, в которую распаковались файлы на шаге 4.1.1 (можно просмотреть командой ls, находясь в директории ~/zimbra). В нашем примере это будет:cd ~/zimbra/zextras-docs-installer 2) Запустить инсталляцию Zextras Docs командойsudo ./install.sh 3) Отвечаем на вопросы инсталлятора На вопросы инсталлятора можно отвечать «y» (соответствует «да»), «n» (соответствует «нет») или оставить предложение инсталлятора без изменений (он предлагает варианты, отображая их в квадратных скобках, например, «[Y]» или «[N]»). System will be modified, would you like to proceed? — принимаем вариант по умолчанию («да»). После этого начнётся установка зависимостей: инсталлятор будет показывать, какие пакеты он хочет установить и спрашивать подтверждение на их установку. Во всех случаях соглашаемся с предложениями по умолчанию. Например, он может спрашивать «python2.7 not found. Would you like to install it?», «python-ldap not found. Would you like to install it?» и т.п. После установки всех необходимых пакетов инсталлятор запрашивает согласие на установку Zextras Docs: Would you like to install Zextras DOCS? — принимаем вариант по умолчанию («да»). После чего некоторое время идёт установка пакетов, собственно, Zextras Docs и переход к вопросам конфигуратора. 4) Отвечаем на вопросы конфигуратора Конфигуратор по очереди запрашивает конфигурационные параметры, в ответ в вводятся значения, полученные на шаге 3 в п.4.4. Первичный тюнинг настройки и определение параметров конфигурации LDAP. В нашем примере настройки имеют вид:
5) Завершение инсталляции Zextras Docs После ответа на вопросы конфигуратора инсталлятор завершает локальную конфигурацию Docs и регистрирует установленный сервис на основном сервере Zimbra, установленном ранее. Для single-server инсталляции как правило этого достаточно, но в некоторых случаях (если документы не будут открываться в Docs в вебклиенте на вкладке Drive) может понадобится выполнение действия, обязательного для мультисерверной установки — в нашем примере на основном сервере Zimbra потребуется выполнение из-под пользователя Zimbra команд /opt/zimbra/libexec/zmproxyconfgen и zmproxyctl restart. 7. Первичная настройка Zimbra и Zextras Suite (кроме Team) 7.1. Первичный вход в консоль администратора Войти в браузере по URL: https:// При желании, можно войти в веб-клиент по URL: https:// При входе браузеры показывают предупреждение о небезопасном подключении в связи с невозможностью проверить сертификат. Необходимо ответить браузеру о согласии перейти на сайт несмотря данное предупреждение. Это связано с тем, что после установки используется самоподписанный X.509 сертификат для TLS-соединений, который впоследствии можно (в продуктивном использовании — нужно) заменить на коммерческий сертификат или иной сертификат, признаваемый используемыми браузерами. В форме для аутентификации ввести имя пользователя в формате admin@<ваш обслуживаемый почтовый домен> и пароль администратора Zimbra, заданный при установке сервера Zimbra на шаге 4.3 в п.4.2. В нашем примере это выглядит следующим образом: Консоль администратора:
Веб-клиент: Примечание 1. Если не указать обслуживаемый почтовый домен при входе в консоль администратора или в веб-клиент, пользователи будут аутентифицироваться в почтовом домене, созданном при инсталляции сервера Zimbra. После инсталляции это единственный существующий на этом сервере обслуживаемый почтовый домен, но при эксплуатации системы могут быть добавлены дополнительные почтовые домены, и тогда явное указание домена в имени пользователя будет иметь значение. Примечание 2. При входе в веб-клиент браузер может запрашивать разрешение на отображение уведомлений с сайта. Необходимо дать согласие на получение уведомлений с этого сайта. Примечание 3. После входа в консоль администратора может быть выведено уведомление о наличии сообщений администратору, как правило, являющихся напоминанием о необходимости настроить Zextras Backup и/или о необходимости приобрести лицензию Zextras до окончания срока действия триальной лицензии, установленной по умолчанию. Эти действия можно произвести позднее, а потому имеющиеся на момент входа сообщения можно игнорировать и/или отметить их как прочитанные в меню Zextras: Оповещение Zextras. Примечание 4. Особо необходимо отметить, что в мониторе состояния сервера статус службы Docs отображается как «не доступна» даже если Docs в веб клиенте работает корректно:
Это особенность триальной версии и может быть устранена только после приобретения лицензии и обращения в службу поддержки. 7.2. Развёртывание компонентов Zextras Suite В меню Zextras: Core необходимо нажать на кнопку «Развернуть» для всех зимлетов, которые предполагается использовать.
При развёртывании зимлетов выводится диалог с результатом операции следующего вида: В нашем примере производится развёртывание всех зимлетов Zextras Suite, после чего форма Zextras: Core примет следующий вид: 7.3. Изменение настроек доступа 7.3.1. Изменение глобальных настроек В меню Настройка: Глобальные настройки, подменю Прокси-сервер, изменить следующие параметры: Режим веб-прокси: redirect Включить прокси-сервер консоли администрирование: поставить чекбокс. После чего в правой верхней части форму нажать на «Сохранить». В нашем примере после внесённых изменений форма имеет следующий вид:
7.3.2. Изменения настроек сервера основного Zimbra В меню Настройка: Серверы: <имя основного сервера Zimbra>, подменю Прокси-сервер, изменить следующие параметры: Режим веб-прокси: нажать на кнопку «Сбросить на значение по умолчанию» (при этом само значение не изменится, т. к. уже было задано при установке). Включить прокси-сервер консоли администрирование: проверить, что чекбокс стоит (должно было примениться значение по умолчанию, если не применилось — можно нажать кнопку «Сбросить на значение по умолчанию» и/или поставить вручную). После чего в правой верхней части формы нажать на «Сохранить». В нашем примере после внесённых изменений форма имеет следующий вид:
Примечание: (может потребоваться перезапуск, если не заработает вход по этому порту) 7.4. Новый вход в консоль администратора Войти в консоль администратора в браузере по URL: https:// В дальнейшем использовать для входа этот URL Примечание: для single-server инсталляции как правило достаточно изменения, проделанного на предыдущем шаге, но в некоторых случаях (если при входе по указанному URL не отображается страница сервера) может понадобится выполнение действия, обязательного для мультисерверной установки — в нашем примере на основном сервере Zimbra потребуется выполнение из-под пользователя Zimbra команд /opt/zimbra/libexec/zmproxyconfgen и zmproxyctl restart. 7.5. Редактирование COS по умолчанию В меню Настройка: Класс обслуживания выбрать COS с именем «default». В подменю «Возможности» снять чекбокс для функции «Портфель», после чего в правой верхней части формы нажать на «Сохранить». В нашем примере после настройки форма имеет следующий вид:
Также рекомендуется в подменю Drive поставить чекбокс для настройки «Включить общий доступ к файлам и папкам», после чего в правой верхней части формы нажать на «Сохранить». В нашем примере после настройки форма имеет следующий вид:
В тестовой среде в этом же классе обслуживания можно включить функции Team Pro, для чего в подменю Team включить чекбокс с одноимённым названием, после чего форма настройки примет следующий вид:
При отключенных функциях Team Pro пользователям будут доступны только функции Team Basic. Обращаем ваше внимание на то, что Zextras Team Pro лицензируется независимо от Zextras Suite, что позволяет приобрести его на меньшее количество почтовых ящиков, чем собственно Zextras Suite; функции Team Basic включены в лицензию Zextras Suite. Поэтому при использовании в продуктивной среде может потребоваться создание отдельного класса обслуживания для пользователей Team Pro, в котором будут включены соответствующие функции. 7.6. Настройка файрвола Необходимо для основного сервера Zimbra: а) Разрешить доступ из Интернета к портам ssh, http/https, imap/imaps, pop3/pop3s, smtp (основной порт и дополнительные порты для использования почтовыми клиентами) и порт консоли администрирования. б) Разрешить все подключения из внутренней сети (для которой на шаге 1.3 в п.1 был включен NAT в Интернет). Для сервера Zextras Docs настраивать файрвол не требуется, т.к. к нему отсутствует доступ из Интернета. Для этого необходимо выполнить следующую последовательность действий: 1) Зайти в текстовую консоль основного сервера Zimbra. При входе по SSH необходимо выполнить команду «screen» во избежание прерывания выполнения команд при временной потери связи с сервером из-за изменения настроек файрвола. 2) Выполнить командыsudo ufw allow 22,25,80,110,143,443,465,587,993,995,9071/tcp
sudo ufw allow from <адрес_вашей_сети>/<длина CIDR маски>
sudo ufw enable В нашем примере это выглядит следующим образом:
7.7. Проверка доступа к веб-клиенту и консоли администратора Для контроля работоспособности файрвола можно зайти в браузере по следующим URL Консоль администратора: https:// Веб-клиент: http:// При этом по альтернативному URL https:// Веб-клиент в нашем примере выглядит следующим образом:
Примечание. При входе в веб-клиент браузер может запрашивать разрешение на отображение уведомлений с сайта. Необходимо дать согласие на получение уведомлений с этого сайта. 8. Обеспечение работы аудио- и видеоконференций в Zextras Team 8.1. Общие сведения Выполнение описанных далее действие не требуется, если все клиенты Zextras Team взаимодействуют друг с другом без использования NAT (при этом взаимодействия с самим сервером Zimbra может осуществляться с использованием NAT, т.е. важно отсутствие NAT именно между клиентами), или если используется только текстовый мессенджер. Для обеспечения взаимодействия клиентов в режиме аудио- и видеоконференцсвязи: а) Необходимо установить либо использовать существующий сервер TURN. б) Т.к. сервер TURN как правило имеет также и функциональность сервера STUN, рекомендуется использовать его и в этом качестве тоже (в качестве альтернативы можно использовать публичные серверы STUN, но одной лишь функциональности STUN как правило недостаточно). В продуктивной среде из-за потенциально высокой нагрузки рекомендуется выносить сервер TURN на отдельную виртуальную машину. Для тестирования и/или небольшой нагрузки сервер TURN может быть совмещен с основным сервером Zimbra. В нашем примере рассматривается установка сервера TURN на основной сервер Zimbra. Установка TURN на отдельный сервер аналогична с той разницей, что шаги, относящиеся у установке и конфигурированию программного обеспечения TURN выполняются на сервере TURN, а шаги по настройке сервера Zimbra на использование этого сервера — выполняются на основном сервере Zimbra. 8.2. Установка TURN-сервера Предварительно зайдя по SSH на основной сервер Zimbra выполнить командуsudo apt install resiprocate-turn-server 8.3. Настройка TURN сервера Примечание. Редактор для изменения всех указанных далее конфигурационных файлов надо запускать с правами пользователя root, например, «sudo vi /etc/reTurn/reTurnServer.config» или, если установлен пакет mc, можно использовать команду «sudo mcedit /etc/reTurn/reTurnServer.config» Упрощённое создание пользователя Для упрощения создания и отладки тестового подключения к TURN серверу мы отключим использование хешированных паролей в базе пользователей TURN сервера. В продуктивной среде рекомендуется использовать хэшированные пароли; в этом случае генерацию хешей паролей для них необходимо выполнять в соответствии с инструкциями, содержащимися в файлах /etc/reTurn/reTurnServer.config и /etc/reTurn/users.txt. Последовательность действий: 1) Отредактировать файл /etc/reTurn/reTurnServer.config Изменить значение параметра «UserDatabaseHashedPasswords» с «true» на «false». 2) Отредактировать файл /etc/reTurn/users.txt Задать в нём имя пользователя, пароль, realm (произвольный, не используется при настройке подключения Zimbra) и установить учётной записи статус «AUTHORIZED». В нашем примере файл изначально имел вид:
После редактирования принял вид: 3) Применение конфигурации Выполнить командуsudo systemctl restart resiprocate-turn-server 8.4. Настройка файрвола для сервера TURN На данном этапе устанавливаются дополнительные правила файрвола, необходимые для работы сервера TURN. Необходимо разрешить доступ к основному порту, на котором сервер принимает запросы, и к динамическому диапазону портов, используемых сервером для организации медиапотоков. Порты указаны в файле /etc/reTurn/reTurnServer.config, в нашем случае это:
и
Для установки правил файрвола необходимо выполнить командыsudo ufw allow 3478,49152:65535/udp
sudo ufw allow 3478,49152:65535/tcp 8.5. Настройка использования сервера TURN в Zimbra Для настройки используется FQDN сервера сервер TURN, созданное на шаге 1.2 п.1, и которое должно DNS-серверами разрешаться одним и тем же публичным IP-адресом как для запросов из Интернет, так и для запросов с внутренних адресов. Просмотреть текущую настройку подключения «zxsuite team iceServer get», выполняемой из-под пользователя zimbra. Подробнее о настройке использования сервера TURN см. раздел «Установка Zextras Team для использования TURN сервера» в документации. Для настройки необходимо выполнить следующие команды на сервере Zimbra:sudo su - zimbra
zxsuite team iceServer add stun: В качестве <имя пользователя> и <пароль> используются значения имени пользователя и пароля соответственно, заданные на шаге 2 в п.8.3. В нашем примере это выглядит следующим образом:
9. Разрешение прохождения почты по протоколу SMTP В соответствии с документацией, в Яндекс.Облаке всегда блокируется исходящий трафик на TCP-порт 25 в Интернет и на виртуальные машины Yandex Compute Cloud, при обращении через публичный IP-адрес. Это не помешает проверить приём почты на обслуживаемый почтовый домен, отправленной с иного почтового сервера, но помешает отправить почту за пределы сервера Zimbra. В документации указано, что Яндекс.Облако может открыть TCP-порт 25 по запросу в поддержку, если вы соблюдаете Правила допустимого использования, и оставляет за собой право снова заблокировать порт в случае нарушения правил. Для открытия порта необходимо связаться со службой поддержкой Яндекс.Облака. Создание ключей SSH в openssh и putty и конвертация ключей из формата putty в openssh 1. Создание ключевых пар для SSH В Windows с использованием putty: запустить команду puttygen.exe и нажать кнопку «Generate» В Linux: выполнить командуssh-keygen 2. Конвертация ключей из формата putty в openssh В Windows: Последовательность действий: В Linux 1. Установить пакет инструментов PuTTY: в Ubuntu:sudo apt-get install putty-tools в Debian-подобных дистрибутивах:apt-get install putty-tools в RPM-based дистрибутивах на основе yum (CentOS и др.):yum install putty 2. Для конвертации закрытого ключа выполнить команду:puttygen 3. Для генерации открытого ключа (если необходимо):puttygen После установки в соответствии с рекомендациями, пользователь получает настроенный в инфраструктуре Яндекс.Облако почтовый сервер Zimbra с расширением Zextras для корпоративных коммуникаций и совместной работы с документами. Настройки сделаны с определенными ограничениями для тестовой среды, но перевести инсталляцию в продуктивный режим и добавить опции использования объектного хранилища Яндекс.Облако и другие не сложно. С вопросами по развертыванию и использованию решения обращайтесь к партнеру Zextras — SVZ или представителям Яндекс.Облако. По всем вопросам, связанными c Zextras Suite вы можете обратиться к Представителю компании «Zextras» Екатерине Триандафилиди по электронной почте katerina@zextras.com
Приложение
Результат