Zimbra почта
Содержание:
Ограничение размера ящика и письма
Zimbra в качестве MTA использует Postfix, где эти ограничения задаются переменными:
# устанавливаем ограничение на ящик в 100Мб и на письмо в 10Мб mailbox_size_limit = 102400000 message_size_limit = 10240000
Конфигурационный файл /opt/zimbra/postfix/conf/main.cf генерируется при каждом запуске зимбры, поэтому исправлять его нет смысла. Редактируем файл /opt/zimbra/conf/zmmta.cf, но так как он доступен только для чтения, то сначала придётся сменить права:
$ chmod u+w ./zmmta.cf
Находим вышеуказанные переменные, присваиваем нужные значения, перезагружаем зимбру:
$ zmcontrol restart
Перенос учётных записей
Перенесём (импортируем) учётные записи из предыдущей почтовой системы. У меня использовался 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.
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:
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:
|
|
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:
|
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:
For example: http://localhost:7070/home/john.doe/inbox.rss?auth=ba |
Дополнительные настройки
Добавление отправителей в белый список
Может возникнуть ситуация, при которой нам нужно изменить назначение СПАМ-балов для некоторых отправителей. Для этого открываем файл:
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»
Настройка 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»
Что такое Zextras
Продукт Zextras состоит из двух компонентов — Zextras Suite и Team Pro. Рассмотрим функционал каждого из них. Начнем с Zextras Suite и его основных возможностей (не всех):
- Одноканальный (1:1) мессенджер с поддержкой аудио и видео звонков.
- Создание и редактирование документов, таблиц, презентаций в интегрированной LibreOffice с поддержкой форматов документов Microsoft Office, кроме бизнес аналитики, OLAP.
- Совместная работа с документами через web интерфейс. В том числе преобразование в pdf в один клик.
- Индивидуальный виртуальный диск Drive для хранения документов с возможностью делиться файлами.
- Поддержка различных Storage для хранения информации, в том числе объектные, типа S3 с приоритезацией хранения данных на хранилищах разных типов.
- Расширенная возможность бэкапа (компрессия, дедупликация) и восстановления данных, в том числе удаленных писем и т.д. Все это связано с поддержкой различных Storage из предыдущего пункта.
- Поддержка мобильных устройств, в том числе с помощью Active Sync. Есть мобильные приложения для iOS и Android.
- Поддержка клиента Microsoft Outlook с помощью того же Active Sync.
- Расширенные возможности администрирования. Делегирование нескольким администраторам ограниченных прав, логирование их действий и т.д.
Продукт Team Pro дает дополнительные возможности к перечисленным выше:
- Многоканальные видеозвонки для организации видеоконференций.
- Возможность общения с внешними пользователями, не зарегистрированными в системе.
- Демонстрация своего экрана для одного или нескольких зрителей, возможность делиться файлами.
Все перечисленные возможности интегрированы в стандартный интерфейс Zimbra и управляются через него. Расширения Zextras являются надстройкой, не изменяя код самого почтового сервера. Их можно без проблем удалить. Аудио и видеочаты реализованы на базе WebRTC, поэтому работают через браузер и не требуют установки дополнительного ПО.
Zextras полностью платный продукт. Open source версии нет. Можно воспользоваться 30-ти дневным триалом для тестирования функционала. Стоимость различных лицензий можно узнать у официального партнера Zextras в РФ — SVZcloud.
С теорией и описанием закончили. Переходим к установке и настройке. Начнем с установки Zimbra.
Чат и видеозвонки
Возможности чата не слишком большие, но тем не менее, есть крутая штука, которая мало у кого реализована. Я имею ввиду не популярные мессенджеры, а закрытые чаты, которые можно развернуть на своем сервере. Есть индикация того, прочитано ли твое сообщение. Реализовано так же, как во всех популярных мессенджерах в виде галочки. Одна галочка — сообщение доставлено, но не прочитано. Две галочки — прочитано.
Тут же из разговора можно осуществить звонок, в том числе с видео. Я смог протестировать этот режим в формате видеозвонка даже с одного своего ноутбука позвонив самому себе в разные учетки, открытые в двух браузерах.
Входящий звонок в почтовом клиенте выглядит так.
При этом пиликает звук из динамиков компьютера. Поговорить самому с собой через один микрофон у меня получилось. Так выглядит интерфейс видеозвонка.
Тут же можно расшарить свой экран, но для этого надо установить отдельное расширение для Chrome.
Вообще, до этого момента я немного прохладно относился ко всей этой затее с Zimbra и Zextras. Вроде и функционально, но не везде удобно, да и денег стоит. Но когда увидел этот чат с видео, с демонстрацией экрана, который у меня сразу и без проблем заработал, я проникся. Ведь это реально очень удобно. Сидишь, работаешь, получил почту. Что-то не понял, тут же написал в чат, договорился о звонке. Созвонились, поговорили, показали друг другу экраны, все объяснили. Это реально круто и удобно.
Плюс, можно создавать отдельные комнаты и проводить конференции. Ведущий запускает у себя камеру, шарит экран и начинает объяснять или что-то рассказывать. Остальные либо просто слушают, либо с включенными веб камерами сидят. И при этом не нужен никакой дополнительный софт. Все работает через браузер. И ты можешь сюда запускать людей со стороны, просто давая им ссылки на чат комнаты.
О, Zimbra почта
Вход в почту может быть осуществлен как с мобильного устройства так и с компьютера стационарного типа. Для того чтобы воспользоваться преимуществами корпоративной почты, а именно для таких целей и создана Zimbra, нужно всего лишь одно: получить логин и пароль доступа к корпоративному почтовому серверу и установить на используемое вами устройство соответствующее ПО (например, для Windows ОС можно скачать вот эту программу клиент — Zimbra Desktop). Или же воспользоваться традиционным способом:
Введите в поисковой строке своего браузера адрес: https://mail.iks.ru/
Прописываем соответствующие секретные коды доступа и вуа-ля — вы там, где комфорт и эффективность правят балом, а если быть точнее…разница будет лицеприятна и понятна в плане управления.
Zimbra Collaboration
Zimbra release notes are specific to each version of the server. Select your version from the list below to see the release notes for it.
Release | Codename | Patch Level | Third-Party Patch Level | General Availability | Download the Release Notes |
---|---|---|---|---|---|
9.0.0 GA Release | Kepler | Patch 20 | No released patches | 04/07/2020 | |
8.8.15 GA Release (LTS Release) | Joule | Patch 27 | No released patches | 07/22/2019 | |
8.8.12 GA Release | Isaac-Newton | Patch 6 | No released patches | End of General Support 12/31/2019 04/01/2019 | |
8.8.11 GA Release | Homi-Bhabha | Patch 5 | No released patches | End of Technical Guidance 12/17/2019 12/17/2018 | |
8.8.10 GA Release | Konrad-Zuse | Patch 8 | No released patches | End of Technical Guidance 10/01/2019 10/03/2018 | |
8.8.9 GA Release | Curie | Patch 10 | No released patches | End of Technical Guidance 07/09/2019 07/10/2018 | |
8.8.8 GA Release | Turing | Patch 10 | No released patches | End of Technical Guidance 03/29/2019 04/02/2018 | |
8.8.7 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 03/29/2019 03/08/2018 | |
8.8.6 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 03/29/2019 01/15/2018 | |
8.8 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 03/29/2019 12/12/2017 | |
8.7.11 GA Release | JudasPriest | Patch 14 | No released patches | End of General Support 12/31/2019 06/08/2017 | |
8.7.10 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 05/31/2017 | |
8.7.9 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 05/11/2017 | |
8.7.8 Early Developer Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 04/27/2017 | |
8.7.7 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 04/13/2017 | |
8.7.6 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 03/30/2017 | |
8.7.5 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 03/16/2017 | |
8.7.4 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 03/02/2017 | |
8.7.3 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 02/17/2017 | |
8.7.2 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 02/02/2017 | |
8.7.1 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 10/27/2016 | |
8.7.0 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 07/13/2016 | |
8.6.0 GA Release | JudasPriest | Patch 14 | No released patches | End of Technical Guidance 9/30/2019 12/15/2014 | |
8.5.1 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2018 11/03/2014 | |
8.5.0 GA Release | JudasPriest | Patch 2 | No released patches | End of Technical Guidance 9/30/2018 08/28/2014 | |
8.0.9 GA Release | IronMaiden | No released patches | No released patches | End of Technical Guidance 9/10/2017 11/03/2014 | |
8.0.8 GA Release | IronMaiden | No released patches | No released patches | End of Technical Guidance 9/10/2017 09/25/2014 | |
8.0.7 GA Release | IronMaiden | Patch 2 | End of Technical Guidance 9/10/2017 04/08/2014 | ||
8.0.6 GA Release | IronMaiden | No released patches | End of Technical Guidance 9/10/2017 12/03/2013 | ||
8.0.5 GA Release | IronMaiden | Patch 1 | End of Technical Guidance 9/10/2017 09/10/2013 | ||
8.0.4 GA Release | IronMaiden | Patch 2 | End of Technical Guidance 9/10/2017 05/24/2013 | ||
8.0.3 GA Release | IronMaiden | Patch 3 | End of Technical Guidance 9/10/2017 03/05/2013 | ||
8.0.2 GA Release | IronMaiden | Patch 1 | No released patches | End of Technical Guidance 9/10/2017 12/10/2012 | |
8.0.1 GA Release | IronMaiden | No released patches | No released patches | End of Technical Guidance 9/10/2017 11/05/2012 | |
8.0.0 GA Release | IronMaiden | No released patches | No released patches | End of Technical Guidance 9/10/2017 09/07/2012 | |
7.2.7 GA Release | Helix | No released patches | No released patches | End of Technical Guidance 3/31/2015 03/14/2014 |
Try Zimbra
Want to get involved?
Other help Resources
Looking for a Video?
Настройка DNS
Для корректной работы почты необходимо настроить DNS для нашего домена.
1. Запись MX.
Позволяет определить почтовый сервер для домена. Подробнее о том, что это и как ее правильно прописать в статье Что такое MX-запись.
2. Запись A.
Для нашего сервера, который определен как MX запись нужна запись А, которая указывает на его IP-адрес. В моем примере это сервер zimbra.dmosk.ru, который из сети Интернет должен разрешаться во внешний IP-адрес.
3. PTR.
Данная запись представляет из себя обратное разрешение IP-адреса в домен. С ее помощью подтверждается легитимность отправителя. Подробнее в статье Что такое PTR-запись.
4. SPF.
Это запись TXT, которая определяет список серверов для домена, с которых разрешена отправка почты. Подробнее — Что такое SPF.
5. DKIM.
Подтверждение владельца домена. Письмо отправляется с зашифрованным заголовком и расшифровать его можно с помощью последовательности, хранящейся в TXT-записи на DNS. Соответственно, если владелец домена разместил такую последовательность, то он и является его владельцем. Подробнее — Что такое DKIM. Также в данной инструкции ниже мы разберем настройку DKIM на Zimbra.
6. DMARC.
Определяет для домена политику проверки писем. Подробнее — Что такое DMARC.
Такие полезные опции: фишки Zimbra функционала
Что тут сказать, интерфейс потрясает: все плавно и подробно (необычность не только в описании — эжто нужно проверить, пощупать и принять на вооружение)
Кнопки на своем действительном и, что немаловажно, ожидаемом месте. Пальцы сами находят нужный раздел и письма открываются как по велению мыслей пользователя
Кстати, о спаме можно совсем забыть, как о явлении, не имеющем места быть в Zimbra в принципе и априори. Конечно же если сисадмин на фирме все правильно настроил и нигде не допустил «непоправимых упущений».
Главное достоинство Zimbra — это софт, который работает безупречно и по-умному. Мгновенное быстродействие — это недостаточное описание молниеносно происходящего процесса «обмен сообщениями», которые, кстати, по многим характеристикам (например, ограниченность традиционных серверов почты — письмо в 25 МБ и ни байта больше!) в разы превосходит «долгоиграющие аналоги в Сети.
Сегодня вопрос о защите персональных данных в Интернете всё больше набирает популярности. Особенно, тенденцию к улучшению уровня защиты информации можно заметить у различных фирмах и корпорациях, которые дорожат своими секретами. Если же говорить о защите переписок, то здесь уместно будет сказать о сервисе Zimbra, который имеет ряд особенностей, о чем мы далее и поговорим.