Внедрение zimbra collaboration open source, авторизация через ad и автоматическое создание почтовых ящиков

Совместная работа с документами

В интерфейсе пользователя есть вкладка Drive. Здесь можно хранить свои файлы и делиться ими с другими пользователями системы. Есть возможность давать доступ на чтение или редактирование, а так же на редактирование и возможность так же назначать права для доступа других пользователей.

Отсюда можно запустить редактирование документа. Оно основано на онлайн версии популярного офисного пакета LibreOffice и поддерживает более 100 форматов документов, в т. ч. Microsoft Office. При работе над файлом каждое действие фиксируется, благодаря чему при желании можно будет не только вернуться к любому этапу создания документа, но и отследить порядок внесения правок в него, что помогает участвовать в процесс редактирования другим сотрудникам. Тут же можно будет быстро сохранить документ в виде pdf файла.

Я скажу честно, не протестировал этот функционал. Судя по тому, что все остальное у меня заработало, не думаю, что тут будут какие-то фатальные проблемы. Просто сервер для редактирования документов рекомендуется ставить на отдельную VPS, не на этот же сервер. В рамках тестирования у меня не было подходящей инфраструктуры под рукой, чтобы быстро связать все это дело. Судя по документации, там никаких сложностей нет. Так же качается пакет, ставится одной командой и потом связывается с основным сервером через ввод параметров для связи — адрес сервера и учетка для авторизации.

Думаю, что все это можно поставить и на один сервер, но не было времени проверить и разобраться.

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

Добавление отправителей в белый список

Может возникнуть ситуация, при которой нам нужно изменить назначение СПАМ-балов для некоторых отправителей. Для этого открываем файл:

vi /opt/zimbra/conf/amavisd.conf.in

Находим строку:

   { # a hash-type lookup table (associative array)
   …
   }

… и внутри фигурных скобок {} добавим нужный нам домен или конкретного отправителя:

   …
   ‘dmosk.ru’                           =>  -10.0,
   ‘sender@dmosk2.ru’                   =>  -10.0,
}

* таким образом мы сказали, что для писем с домена dmosk.ru и отправителя sender@dmosk2.ru отнимать 10 баллов за СПАМ. Такие письма начнут приходить без блокировки (при условии, что не будет отправлен явный СПАМ, который наберет очень много баллов).

После настройки перезапускаем amavis:

su — zimbra -c «zmamavisdctl stop && zmamavisdctl start»

Размер отправляемого сообщения

Задать максимальный размер сообщений можно командой:

su — zimbra -c ‘zmprov modifyConfig zimbraMtaMaxMessageSize 31457280’

* в данном примере мы задаем максимальный размер сообщения 30 мб.

После перезапускаем postfix:

su — zimbra -c «postfix reload»

Чат и видеозвонки

Возможности чата не слишком большие, но тем не менее, есть крутая штука, которая мало у кого реализована. Я имею ввиду не популярные мессенджеры, а закрытые чаты, которые можно развернуть на своем сервере. Есть индикация того, прочитано ли твое сообщение. Реализовано так же, как во всех популярных мессенджерах в виде галочки. Одна галочка — сообщение доставлено, но не прочитано. Две галочки — прочитано.

Тут же из разговора можно осуществить звонок, в том числе с видео. Я смог протестировать этот режим в формате видеозвонка даже с одного своего ноутбука позвонив самому себе в разные учетки, открытые в двух браузерах.

Входящий звонок в почтовом клиенте выглядит так.

При этом пиликает звук из динамиков компьютера. Поговорить самому с собой через один микрофон у меня получилось. Так выглядит интерфейс видеозвонка.

Тут же можно расшарить свой экран, но для этого надо установить отдельное расширение для Chrome.

Вообще, до этого момента я немного прохладно относился ко всей этой затее с Zimbra и Zextras. Вроде и функционально, но не везде удобно, да и денег стоит. Но когда увидел этот чат с видео, с демонстрацией экрана, который у меня сразу и без проблем заработал, я проникся. Ведь это реально очень удобно. Сидишь, работаешь, получил почту. Что-то не понял, тут же написал в чат, договорился о звонке. Созвонились, поговорили, показали друг другу экраны, все объяснили. Это реально круто и удобно.

Плюс, можно создавать отдельные комнаты и проводить конференции. Ведущий запускает у себя камеру, шарит экран и начинает объяснять или что-то рассказывать. Остальные либо просто слушают, либо с включенными веб камерами сидят. И при этом не нужен никакой дополнительный софт. Все работает через браузер. И ты можешь сюда запускать людей со стороны, просто давая им ссылки на чат комнаты.

Overview

Command Format

The format of a Zimbra REST command is:

{protocol}://{host}:{port}/home/{user}/{object}?{params} 

HTTP methods are for reading items. HTTP methods are for creating/modifying items. The following describes the components of the Zimbra REST command:

Component Description
The transport protocol, for example, .
The host name or IP address of the Zimbra Collaboration Suite server
The port number, for example, 7070.
The user. To load an explicit user account, specify the user in one of the following formats:

  • john.doe
    http://localhost:7070/home/john.doe/inbox.rss
    
  • john.doe@mydomain.com
http://localhost:7070/home/john.doe@mydomain.com/inbox.rss

You can also use «~» as a shortcut to the current authenticated user. For example:

http://localhost:7070/home/~/inbox.rss
Designates the object to perform the command against. This might be a folder (such as inbox or drafts) or omitted (to download a specific item). If omitted, the query parameters provide the information the command requires.

For example, to download the inbox folder as XML:

http://localhost:7070/home/john.doe/inbox.rss

For example, to download an item:

http://localhost:7070/home/john.doe/?id=657
A list of command-specific URL parameters. See the specific command for a list of the required and optional parameters.

Response Formats

The following describes the various response formats, designated using the parameter. Not all commands support all formats. See the specific command for a list of supported formats and command-specific details:

Format Description
Hyper Text Markup Language file format. Produced the output as a web page.
Data compression and archive format.
Data archive format («tar»).
Compressed file.
Common Separated Values file format. A specific CSV format can be designated using the parameter. Supported CSV formats include:

  • zimbra-csv
  • yahoo-csv
  • thunderbird-csv
  • outlook-2000-csv
  • outlook-2003-csv
Requests that the server return additional meta-data in the response headers. When using this option, the headers are returned inline of the response, unless you specify .

For example, get a mail message by item id and return the meta-data in the response headers and inline.

http://localhost:7070/home/john.doe/?id=288&fmt=sync

For example, get a mail message by item id and return the meta-data in the response headers only.

http://localhost:7070/home/john.doe/?id=288&fmt=sync&nohdr=1

The following is a list of the meta-data headers:

  • X-Zimbra-ItemId
  • X-Zimbra-FolderId
  • X-Zimbra-Tags
  • X-Zimbra-Flags
  • X-Zimbra-Received
  • X-Zimbra-Modified
  • X-Zimbra-Change
  • X-Zimbra-Revision
  • X-Zimbra-Conv

Authentication

There are multiple methods to authenticate as a user when accessing a mailbox. Using the parameter, you can designate how to authenticate and whether or not to set the authentication cookie.

Default is . Meaning: first, check for a cookie auth token; second, check for query parameter auth token; thrid, prompt for basic authentication.

The parameter supports a list of comma-separated values which include:

Value Description
The authentication token will be retrieved from the cookie.

For example:

http://localhost:7070/home/john.doe/inbox.rss?auth=co
The authentication token will be retrieved from request parameter .

For example:

http://localhost:7070/home/john.doe/inbox.rss?auth=qp&zauthtoken=0_thisismyzauthtokenthisismyzauthtoken_thisismyzauthtoken
These methods refer to Basic Authentication:

  • = Use Basic Authentication and do not set cookie after authentication.
  • = Same as .
  • = Use Basic Authentication and set cookie after authentication.

For example:

http://localhost:7070/home/john.doe/inbox.rss?auth=ba

Настройка DKIM

Отдельно рассмотрим процесс настройки подписи DKIM на почтовом сервере Zimbra. Формирование ключей выполняется для каждого из доменов из командной строки. Подключаемся к серверу по SSH и вводим команду:

su — zimbra -c «/opt/zimbra/libexec/zmdkimkeyutil -a -d dmosk.ru»

* данная команда создаст последовательности ключей для домена dmosk.ru.

Мы должны получить ответ на подобие:

Public signature to enter into DNS:
5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey IN      TXT     ( «v=DKIM1; k=rsa; »
          «p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5iLy58AJ1fdB15BZgh/VtGfZsi+TrDyvqqZaL5pJ+MQaQrpqHW8AF5kyxW2QzAMjyKzySMZX0PoHUuV93Yxf2t52IFihvb7ivqmRwlqFV3gU7j8zqbAGWHfZo4Ydw0kUmU6pm+Z85aWt4k7rQ7vWXludQGf8yIaSMMmodxze9E5VUOtUA18dIEEPcbwSgOO6YhQLuC78T4FiF5»
          «8epQnsX0voSfg9tMW+r+P1b5fTy5Guyqh1plWYseKxPzHKHbc4Lokcgo1AZzKG5Mvo5OCXsKUE1fSoc366AFSoUnWr23P7oUbf+NjXzPMS8ESGA9TfpDA6eRJT4QEpi72AdIy4rQIDAQAB» )  ; —— DKIM key 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 for dmosk.ru

В данном ответе нас интересуют записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey — это имя для TXT в домене dmosk.ru; «v=DKIM1; k=rsa; » «p=M…AB» — содержимое записи.

В настройках домена необходимо добавить данную запись, после чего подождать, минут 15. После выполняем проверку:

opendkim-testkey -d dmosk.ru -s 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 -x /opt/zimbra/conf/opendkim.conf

* где dmosk.ru — наш домен; 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 — селектор, который мы видели в записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey.
* если при вводе команды мы получим ошибку «Command ‘opendkim-testkey’ not found», необходимо установить opendkim-tools командой apt-get install opendkim-tools (deb) или yum install opendkim-tools (RPM).

Для просмотра имеющихся записей DKIM можно воспользоваться командой:

su — zimbra -c «/opt/zimbra/libexec/zmdkimkeyutil -q -d dmosk.ru»

Подготовка сервера

Независимо от выбранного дистрибутива Linux или редакции Zimbra выполняем следующие действия для подготовки сервера к корректной работы почтового сервера.

1. Настройка времени

Устанавливаем корректный часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере мы зададим московское время.

Теперь установим утилиту для синхронизации времени и запустим ее.

а) если используем систему на базе RPM (CentOS / Red Hat):

yum install chrony

systemctl enable chronyd —now

б) если используем систему на базе deb (Ubuntu):

apt-get install chrony

systemctl enable chrony —now

2. Безопасность

SELinux

Если на сервере используется SELinux (по умолчанию, на системах RPM), рекомендуется ее отключить. Для этого вводим 2 команды:

setenforce 0

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

* подробнее в статье Как отключить SELinux.

Брандмауэр

Для нормальной работы Zimbra нужно открыть много портов:

  • 25 — основной порт для обмена почтой по протоколу SMTP.
  • 80 — веб-интерфейс для чтения почты (http).
  • 110 — POP3 для загрузки почты.
  • 143 — IMAP для работы с почтовым ящиком с помощью клиента.
  • 443 — SSL веб-интерфейс для чтения почты (https).
  • 465 — безопасный SMTP для отправки почты с почтового клиента.
  • 587 — SMTP для отправки почты с почтового клиента (submission).
  • 993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
  • 995 — SSL POP3 для загрузки почты.
  • 5222 — для подключения к Zimbra по протоколу XMPP.
  • 5223 — для защищенного подключения к Zimbra по протоколу XMPP.
  • 7071 — для защищенного доступа к администраторской консоли.
  • 8443 — SSL веб-интерфейс для чтения почты (https).
  • 7143 — IMAP для работы с почтовым ящиком с помощью клиента.
  • 7993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
  • 7110 — POP3 для загрузки почты.
  • 7995 — SSL POP3 для загрузки почты.
  • 9071 — для защищенного подключения к администраторской консоли.

В зависимости от утилиты управления фаерволом, команды будут следующие.

а) Если используем firewalld (Red Hat, CentOS):

firewall-cmd —permanent —add-port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995}/tcp

firewall-cmd —reload

б) Если используем iptables (Ubuntu):

Порты для веб:

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

Порты для почты:

iptables -I INPUT -p tcp —match multiport —dports 25,110,143,465,587,993,995 -j ACCEPT

Порты для Zimbra:

iptables -I INPUT -p tcp —match multiport —dports 5222,5223,9071,7071,8443,7143,7993,7110,7995 -j ACCEPT 

Сохраняем правила: 

netfilter-persistent save

* если команда вернет ошибку, то установим пакет: apt-get install iptables-persistent.

в) Если используем ufw (Ubuntu):

ufw allow 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995/tcp

3. DNS и имя сервера

Для корректной работы почтового сервера необходимо создать mx-записи для домена (подробнее о ).

Но для установки Zimbra важнее, чтобы в локальном файле hosts была запись о нашем сервере, в противном случае, установка прервется с ошибкой. И так, задаем FQDN-имя для сервера:

hostnamectl set-hostname zimbra.dmosk.ru

Теперь открываем на редактирование файл:

vi /etc/hosts

… и добавляем:

192.168.1.15      zimbra.dmosk.ru zimbra

* где 192.168.1.15 — IP-адрес нашего сервера; zimbra — имя сервера; dmosk.ru — наш домен.

Не совсем очевидная проблема, но если в системе не будет пакета hostname, при попытке запустить установку зимбры, мы будем получать ошибку определения IP-адреса по имени. Устанавливаем пакет.

а) для CentOS (Red Hat):

yum install hostname

б) если Ubuntu (Debian):

apt-get install hostname

4. Системная переменная для имени сервера

Чтобы нам было удобнее вводить команды, где требуется указать имя сервера, создадим системную переменную:

myhostname=zimbra.dmosk.ru

Теперь мы можем в команде использовать переменную $myhostname.

Заключение

Инструментов Zimbra и Zextras достаточно, чтобы организовать коллективную работу с почтой и документами практически в любой организации. Продукт нормально масштабируется, так что подойдет как для среднего, так и для большого бизнеса. Примеры реализации для государственных учреждений и сервис-провайдеров можете посмотреть по ссылкам.

Мне довелось пообщаться с одним администратором, который работал в банке и занимался только тем, что управлял кластером Zimbra, который обеспечивал почтой работу всего банка. Банк не сильно большой и известный, тем не менее я все равно был удивлен увидеть этот продукт там.

Возможность гибко управлять пользователями, делегировать полномочия администраторов являются приятной особенностью описанного решения. Не так много продуктов могут этим похвастаться. С точки зрения управления системой реализовано все не плохо. Не скажу, что удобно, но тем не менее, функционал есть и можно настраивать. В комплекте хорошие бэкапы и работа с томами. Особенно это будет актуально для больших почтовых архивов в облачной инфраструктуре, когда старую почту можно будет выгрузить на дешевые s3 хранилища.

Если у вас есть реальный опыт использования Zimbra или Zextras прошу поделиться информацией. Так же было бы любопытно узнать, кто что использует в организациях для совместной работы. Первое, что приходит на ум, это продукты Microsoft, но они дорогие. Полностью Open Source решения костыльные и неудобные. Все потребности не закрывают. Приходится искать компромиссы.

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

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

Adblock
detector