Установка и настройка zimbra на linux

Введение

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

Немного поясню, о чем дальше пойдет речь.

  1. Почтовый сервер Zimbra. Думаю, он не нуждается в отдельном представлении. Старый и известный продукт, про который много информации в интернете. В том числе о внедрении и эксплуатации. Скажу честно, что сам никогда не обслуживал этот сервер, но много о нем слышал и наводил справки. У меня были на собеседованиях люди, которые администрировали в том числе кластеры из этих серверов. Расспрашивал их о зимбре, так как сам достаточно много настраивал и поддерживал почтовых серверов. И сейчас это делаю. В целом, я слышал в основном положительную информацию об этом сервере. Из разряда быстро установил, настроил и забыл. Есть opensource и коммерческая редакция zimbra.
  2. Пакет расширений Zextras — отдельное коммерческое решение, которое работает на базе Zimbra OSE (open source edition). С его помощью расширяется интерфейс zimbra. Появляется новый функционал, где помимо почты есть совместное редактирование и обмен документами, видеочат, виртуальный диск и некоторые другие возможности, которые мы рассмотрим далее.

Я давно собирался написать обзор на Зимбру и вот представилась возможность. Далее немного подробнее разберем функционал представленных продуктов.

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

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

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

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»

Настройка zimbra после установки

Чтобы начать пользоваться сервером, внесем основные настройки. Для этого открываем браузер и вводим адрес https://<IP-адрес сервера>:7071 — должна открыться страница с ошибкой, разрешаем открытие страницы и мы увидим форму для входа в панель администрирования Zimbra. Вводим логин admin и пароль, который задавали при установке.

Добавление домена

Если мы не меняли рабочий домен в настройках во время установки сервера, то основной домен будет таким же, как имя сервера. Как правило, это не то, что нам нужно. И так, заходим в Настройка — Домены. В правой части окна кликаем по значку шестеренки и Создать:

Задаем название для нового домена:

… и кликаем Далее.

В следующем окне выбираем сервер:

… можно нажать Готово.

Теперь поменяем домен по умолчанию. Переходим в Настройка — Глобальные настройки. Меняем значение для поля «Домен по умолчанию»:

… и нажимаем Сохранить.

Создание почтового ящика

Переходим с главного меню панели администрирования в Управление — Учетные записи. Справа кликаем по шестеренке — Создать:

Задаем имя учетной записи, а также фамилию пользователя:

Задаем пароль пользователя и, по желанию, ставим галочку Требуется сменить пароль:

При необходимости создания административной учетной записи ставим галочку Глобальный администратор:

Нажимаем Готово.

Что такое Zextras

Продукт Zextras состоит из двух компонентов — Zextras Suite и Team Pro. Рассмотрим функционал каждого из них. Начнем с Zextras Suite и его основных возможностей (не всех):

  1. Одноканальный (1:1) мессенджер с поддержкой аудио и видео звонков.
  2. Создание и редактирование документов, таблиц, презентаций в интегрированной LibreOffice с поддержкой форматов документов Microsoft Office, кроме бизнес аналитики, OLAP.
  3. Совместная работа с документами через web интерфейс. В том числе преобразование в pdf в один клик.
  4. Индивидуальный виртуальный диск Drive для хранения документов с возможностью делиться файлами.
  5. Поддержка различных Storage для хранения информации, в том числе объектные, типа S3 с приоритезацией хранения данных на хранилищах разных типов.
  6. Расширенная возможность бэкапа (компрессия, дедупликация) и восстановления данных, в том числе удаленных писем и т.д. Все это связано с поддержкой различных Storage из предыдущего пункта.
  7. Поддержка мобильных устройств, в том числе с помощью Active Sync. Есть мобильные приложения для iOS и Android.
  8. Поддержка клиента Microsoft Outlook с помощью того же Active Sync.
  9. Расширенные возможности администрирования. Делегирование нескольким администраторам ограниченных прав, логирование их действий и т.д.

Продукт Team Pro дает дополнительные возможности к перечисленным выше:

  1. Многоканальные видеозвонки для организации видеоконференций.
  2. Возможность общения с внешними пользователями, не зарегистрированными в системе.
  3. Демонстрация своего экрана для одного или нескольких зрителей, возможность делиться файлами.

Все перечисленные возможности интегрированы в стандартный интерфейс Zimbra и управляются через него. Расширения Zextras являются надстройкой, не изменяя код самого почтового сервера. Их можно без проблем удалить. Аудио и видеочаты реализованы на базе WebRTC, поэтому работают через браузер и не требуют установки дополнительного ПО.

Zextras полностью платный продукт. Open source версии нет. Можно воспользоваться 30-ти дневным триалом для тестирования функционала. Стоимость различных лицензий можно узнать у официального партнера Zextras в РФ — SVZcloud.

С теорией и описанием закончили. Переходим к установке и настройке. Начнем с установки Zimbra.

Zimbra DNSCache

Вместе с зимброй мы установили службу dnscache, которая позволяет увеличить производительность почтового сервера. Однако, принцип работы сети немного меняется, а именно, в файле /etc/resolv.conf появляется запись:

nameserver 127.0.0.1

… а разрешение DNS имени в IP-адреса перестает работать. Удаление или смена записи в файле resolv.conf ни к чему не приводит, так как, по прошествии некоторого времени, настройка принимает исходный вид.

Для корректной настройки службы dnscache необходимо сначала посмотреть Master DNS в настройках Zimbra:

su — zimbra -c «zmprov getServer ‘$myhostname’ | grep DNSMasterIP»

* где $myhostname — имя сервера, на котором установлена Zimbra (в данной конфигурации, zimbra.dmosk.ru).

В моем случае было:

zimbraDNSMasterIP: 127.0.0.53

Удалить данную запись:

su — zimbra -c «zmprov ms ‘$myhostname’ -zimbraDNSMasterIP 127.0.0.53»

И добавить свои рабочие серверы DNS, например:

su — zimbra -c «zmprov ms ‘$myhostname’ +zimbraDNSMasterIP  192.168.1.1»

su — zimbra -c «zmprov ms ‘$myhostname’ +zimbraDNSMasterIP  8.8.8.8»

su — zimbra -c «zmprov ms ‘$myhostname’ +zimbraDNSMasterIP  77.88.8.8»

* где 192.168.1.1 — DNS сервер в моей сети; 8.8.8.8 — DNS сервер от Google; 77.88.8.8 — DNS сервер от Яндекс.

Теперь DNS-запросы на сервере будут работать.

zimbraMtaLmtpHostLookup

Если наш сервер находится за NAT и разрешение IP происходит не во внутренний адрес, а внешний (можно проверить командой nslookup <имя сервера>), после настройки наш сервер не сможет принимать почту, а в логах мы можем увидеть ошибку delivery temporarily suspended: connect to 7025: Connection refused). Это происходит из-за попытки Zimbra передать письмо в очереди по внутреннему порту локальной почты 7025 (LMTP) на внешний адрес, который недоступен из NAT. Для решения проблемы можно использовать внутренний DNS с другими А-записями (split dns) или собственный поиск IP-адресов для lmtp, а не для DNS. Рассмотрим второй вариант — вводим две команды:

su — zimbra -c «zmprov ms $myhostname zimbraMtaLmtpHostLookup native»

su — zimbra -c «zmprov mcf zimbraMtaLmtpHostLookup native»

* где $myhostname — имя нашего почтового сервера.

После перезапускаем службы зимбры:

su — zimbra -c «zmmtactl restart»

Настройка 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»

Examples

Note: For the examples here, we will assume the hostname of the zimbra server is «zimbra.example.com» with an IP address of 10.10.130.10.

Note: Make sure that the localhost «127.0.0.0/8» network is included.

Making sure the LAN interface of the zimbra server itself is allowed

If you see lines like this one in /var/log/zimbra.log when a webmail user (for example, «user@example.com») tries to send mail (for example, to «somebody@domain.com»):

Jun 28 06:39:23 zimbra postfix/smtpd: NOQUEUE: reject: 
RCPT from zimbra.example.com: 554 <somebody@domain.com>: 
Relay access denied; from=<user@example.com> to=<somebody@domain.com> 
proto=SMTP helo=<zimbra.example.com>

You probably see this as well:

postconf mynetworks
mynetworks = 127.0.0.0/8

If you want to allow all the other machines on the 10.10.130.x network to relay, configure the server like this:

zmprov ms zimbra.example.com zimbraMtaMyNetworks '127.0.0.0/8 10.10.130.0/24'
postfix reload

If you don’t want to allow relaying for the network, but only for the zimbra server itself, configure the server like this:

zmprov ms zimbra.example.com zimbraMtaMyNetworks '127.0.0.0/8 10.10.130.10/32'
postfix reload

Allowing relaying for a remote machine

Let’s say you have a single machine on a remote network (for example, an automated mailing list manager with the IP address 10.10.200.25), and the current settings look like this:

postconf mynetworks
mynetworks = 127.0.0.0/8 10.10.130.0/24

Add the remote machine like this:

zmprov ms zimbra.example.com zimbraMtaMyNetworks '127.0.0.0/8 10.10.130.0/24 10.10.200.25/32'
postfix reload

Allowing relaying for a remote network

Let’s say you have POP or IMAP users on a remote network (for example, 192.168.1.x, with a netmask of 255.255.255.0), and the current settings look like this:

postconf mynetworks
mynetworks = 127.0.0.0/8 10.10.130.0/24

Add the remote network like this:

zmprov ms zimbra.example.com zimbraMtaMyNetworks '127.0.0.0/8 10.10.130.0/24 192.168.1.0/24'
postfix reload

Маршрутизация почты (mail routing)

Так как Zimbra использует Postfix как МТА, то маршрутизацию (перенаправление) почты настраиваем в нём. Создаём файл с описанием маршрутов /opt/zimbra/postfix/conf/transport-table:

mydomain.com     :
mydomain.ru      :

В этой таблице мы перенаправляем всю почту для домена mydomain.com на другой адрес в Интернете mail.otherdomain.com, а почту для домена mydomain.ru передаём почтовому серверу 192.168.0.10 в локальной сети. При этом имя пользователя (адресата) не изменяется.

! Маршрутизация почты не затрагивает правила IP маршрутизации и меняет лишь домен назначения. Таким образом, после того как эти правила были применены дальнейшее разрешение DNS имён и отправка IP пакетов идут своим обычным чередом.
  • Подробнее про маршрутизацию почты в Zimbra см в официальной документации:

Полезные команды

Все команды запускаются от имени пользователя zimbra:

$ zmcontrol — управление всеми сервисам Zimbra сразу (status | stop | start | maintenance)

$ zmcontrol <имя_сервиса> команда — управление отдельным сервисом (status | stop | start | maintenance)

$ zmprov — работа с каталогом (LDAP). Запустив без параметров, зайдём в командный интерфейс и получим мощный инструмент для адмиинистрирования:

prov> help

 zmprov is used for provisioning. Try:

     zmprov help account         help on account-related commands
     zmprov help calendar        help on calendar resource-related commands
     zmprov help commands        help on all commands
     zmprov help config          help on config-related commands
     zmprov help cos             help on COS-related commands
     zmprov help domain          help on domain-related commands
     zmprov help freebusy        help on free/busy-related commands
     zmprov help list            help on distribution list-related commands
     zmprov help log             help on logging commands
     zmprov help misc            help on misc commands
     zmprov help mailbox         help on mailbox-related commands
     zmprov help notebook        help on notebook-related commands
     zmprov help right           help on right-related commands
     zmprov help search          help on search-related commands
     zmprov help server          help on server-related commands
     zmprov help share           help on share related commands

Checking the current configuration

Note: For the examples here, we will assume the hostname of the zimbra server is «zimbra.example.com» with an IP address of 10.10.130.10.

Get the current value from postconf:

# su - zimbra
$ postconf mynetworks
mynetworks = 127.0.0.0/8 10.10.130.0/23 

This shows that postfix will relay for all machines with 10.10.130.x and 10.10.131.x IP addresses.

Check next whether this is set in the server configuration in the zimbra ldap:

zmprov gs zimbra.example.com zimbraMtaMyNetworks

Up until at least ZCS 4.5.5, this is unset by default; in a future release, this will probably be set. If set, this value will propagate to postconf’s mynetworks when the MTA is restarted.

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

Независимо от выбранного дистрибутива 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 -A INPUT -p tcp —match multiport —dports 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995 -j ACCEPT 

netfilter-persistent save

в) Если используем 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.

Перенос учётных записей

Перенесём (импортируем) учётные записи из предыдущей почтовой системы. У меня использовался Postfix под управлением PostfixAdmin.

Для такого случая есть специальный скрипт.

#!/usr/bin/php

// Postfixadmin (http://postfixadmin.sourceforge.net/) to Zimbra
// (www.zimbra.com) migration script
//
// History:
// Based on work from: Jaros Baw Czarniak
// Enhanced by NERvOus (www.nervous.it) on 1-12-2009

<?php
/////////////////////////////////////////////////////////

$user="postfix";
$pass="postfixadmin";
$db="postfix";
$table_mbox="mailbox";
$table_alias="alias";
$file="import.sh";

/////////////////////////////////////////////////////////
echo "This script generates a bash script called: $file
The script contains the commands to re-create the mboxes and
aliases on zimbra server.\n\n
";

$mydb = mysql_connect('localhost',$user, $pass) or die ('Error connecting to server');
mysql_select_db($db);
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8");

$query = "SELECT username,password,name,maildir,quota,domain
                FROM $table_mbox";
$dane = mysql_query($query) or die ('Error during query for '.mysql_error());

echo "Writing to $file ...\n";
$fh = fopen($file, "w");

fwrite($fh, "#!/bin/sh -x\n\n");

while ($row = mysql_fetch_array($dane, MYSQL_NUM))
{
    $data_mbox = "zmprov ca ".$row." dsfs123hsdyfgbsdgfbsd displayName '".$row."'\n";
    $data_mbox .= "zmprov ma ".$row." userPassword '{crypt}".$row."'"."\n";
    fwrite($fh, $data_mbox);
}
// skip domain aliases, aliases that forward to themselves and aliases
// for which a mbox exists
$query = "SELECT address, trim(trailing ',' from goto) AS dest
                FROM ".$table_alias."
                WHERE address NOT LIKE '@%'
                        AND address NOT IN (SELECT username FROM $table_mbox)
                HAVING address != dest";
$dane = mysql_query($query) or die ('Error during query for '.mysql_error());
while ($row = mysql_fetch_array($dane, MYSQL_NUM)) {
        // multiple dests
        unset($rawdest_r);
        unset($dest_r);
        $rawdest_r = preg_split('/,/', $row);
        foreach ($rawdest_r as $dest) {
                if ($dest != $row) {
                // don't forward to itself
                        $dest_r[] = $dest;
                }
        }
        if (count($dest_r) > 1) {
                // distribution list
                $data_list .= "zmprov cdl $row\n";
                foreach ($dest_r as $dest) {
                        $data_list .= "zmprov adlm $row $dest\n";
                }
        }
        if (count($dest_r) == 1) {
                preg_match('/@(.*)$/', $row, $matches);
                $acct_domain = $matches;
                preg_match('/@(.*)$/', $dest_r, $matches);
                $alias_domain = $matches;
                if ($acct_domain == $alias_domain) {
                        // we are adding an alias, not a forward
                        // try to create alias both for a normal
                        // account and for a distribution list. One of the
                        // commands will fail, pity.
                        $data_alias .= "zmprov aaa $dest_r $row\n";
                        $data_alias .= "zmprov adla $dest_r $row\n";
                } else {
                        // we are adding a forward
                        $data_alias .= "zmprov ca $row " . rand_str(11) . "\n";
                        $data_alias .= "zmprov ma $row zimbraprefmailforwardingaddress $dest_r\n";
                }
        }
}

// first create all distribution lists, last all aliases
// We cannot create aliases for distribution lists that do not
// exist yet
fwrite($fh, $data_list . $data_alias);
fclose($fh);


echo "Done.

Now copy $file to zimbra server and run:
# su - zimbra
$ sh ./$file
";


function rand_str($length = 32, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890')
{
    // Length of character list
    $chars_length = (strlen($chars) - 1);

    // Start our string
    $string = $chars{rand(0, $chars_length)};

    // Generate random string
    for ($i = 1; $i < $length; $i = strlen($string))
    {
        // Grab a random character from our list
        $r = $chars{rand(0, $chars_length)};

        // Make sure the same two characters don't appear next to each
        // other
        if ($r != $string{$i - 1}) $string .=  $r;
    }

    // Return the string
    return $string;
}

Полученный с помощью этого скрипта файл import.sh выполняем на сервере Zimbra.

Автоматизация переноса учёток

Почтовая учётная запись создаётся двумя командами:

/opt/zimbra/bin/zmprov ca user@domain.ru userpass displayName "Фамилия Имя Отчество"
/opt/zimbra/bin/zmprov ma user@domain.ru userPassword 'userpass'

где userpass — пароль пользователя

Первая команда создаёт пользователя с открытым паролем, вторая — перезаписывает открытый пароль шифрованным (поэтому первый пароль может быть любым).

Если есть список пользоватей и их пароли, то скрипт можно составить, например, в OpenOffice Calc добавить необходимые поля (команды, кавычки), и затем сохранить в формате csv с разделителем «пробел».

Можно сначала создать все учётные записи, а зетем у всех поменять пароль.

Чтобы корректно отображались кирилические буквы, скрипт лучше выполнять от имени root или можно настроить локаль. Проверить настройки локали можно командной:

# echo $LANG
ru_RU.UTF-8

а установить командами:

LANG=ru_RU.UTF-8
export $LANG

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

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

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

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

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

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

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

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

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

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

Adblock
detector