- PVSM.RU - https://www.pvsm.ru -

Мессенджер в «почтовой корове»? Дайте — два

Мессенджер в «почтовой корове»? Дайте — два - 1


Рано или поздно очередной «исследователь» бюджетных альтернатив MS Exchange сталкивается с почтовым сервером из Германии – mailcow [1]. Кто-то, не замечая, «проносится» мимо, кто-то, «притормаживая», знакомится ближе. Находятся и те, кто идёт дальше и разворачивает данное почтовое решение в своей ИТ-инфраструктуре. Например – я, который в середине 2020 года мигрируя с сервисов Google, внедрил «почтовую корову» у себя, разместив основную и резервную площадки на виртуальных вычислительных ресурсах географически разнесённых дата-центров RUVDS [2].

Базируемый на программном обеспечении с открытым исходным кодом и разворачиваемый в докер-контейнерах, этот почтовый сервер обладает функционалом, сопоставимыми с возможностями MS Exchange. Почта с антивирусом и антиспамом, календари, задачи, контакты, мультидоменность и мультиарендность – всего лишь малая часть того, о чём бы стоило рассказать. Но учитывая тот факт, что в сети уже предостаточно материала о mailcow, как о решении для обмена электронной почтой, в этой статье расскажу о нём, как о решении для мгновенного обмена сообщениями.

Так случилось, что в процессе эволюции мессенджеры стали значимым инструментом для коммуникаций между людьми и зачастую востребованы потребителями даже больше чем электронная почта. Причём у бизнес-консьюмеров требования, например, к той же безопасности пересылаемых данных – особые.

Эта «востребованность», однажды, настигла в моей деятельности и меня, поставив перед выбором: «Какой мессенджер использовать?»

Пользователь желал чего-то популярного то, что подсказывал ему «отравленный» различными видами маркетинга мозг [3]. Мне же, как администратору собственного почтового сервера, хотелось, чтобы служба мгновенного обмена сообщениями не только хостилась на подконтрольных мне вычислительных ресурсах, но и как электронная почта, была частью федеративной системы — т.е. не ограничивала пользователей в общении с пользователями иных, не подконтрольных мне, но использующих единый открытый протокол серверов.

К сожалению или нет, но воплотить свои «хотелки» собственными силами я не успел, ибо меня опередил «заводчик [4]» mailcow – предложив их «из коробки»:

▍- ejabberd

Первый мессенджер, о котором хочу рассказать, построен на базе свободного (GNU GPL), распределённого и устойчивого к отказам MQTT, SIP и XMPP-сервера.

Да-Да! На базе сервера, который использует тот самый Джа́ббер (англ. Jabber «болтовня, трёп, тарабарщина»), теперь известный как XMPP (англ. eXtensible Messaging and Presence Protocol) — открытый, основанный на XML, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близком к режиму реального времени. Спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети.

В отличие от коммерческих систем мгновенного обмена сообщениями, XMPP является федеративной, расширяемой и открытой системой. Любой желающий может открыть свой сервер мгновенного обмена сообщениями, регистрировать на нём пользователей и взаимодействовать с другими серверами XMPP.
источник [5]

Настройка

По умолчанию ejabbberd в mailcow отключён. Для того, чтобы его активировать, необходимо включить поддержку XMPP для выбранного домена в панели управления (mailcow UI).

image

Указанный префикс домена используется в адресе авторизации XMPP (JabberID). Например, JID для пользователя почтового ящика cowboy@example.org будет таким cowboy@im.example.org. Пароль же совпадает с почтовым.

Перед включением поддержки XMPP для домена не не забудьте добавить две необходимые для получения сертификата записи CNAME в DNS в следующем формате:

# CNAMES
# Name              Type       Value
xmpp_prefix         IN CNAME   mail.example.org. (ваш ${MAILCOW_HOSTNAME})
*.xmpp_prefix       IN CNAME   mail.example.org. (ваш ${MAILCOW_HOSTNAME})

где, xmpp_prefix в нашем примере это im

Правильность добавления можно проверить с помощью инструмента анализа DNS-записей в панели управления mailcow.

image

Если вы сначала включили XMPP, а затем добавили записи DNS — не беда. Нужно дождаться, пока ejabberd автоматически получит сертификаты, или вручную перезапустить docker-контейнер ejabberd-mailcow с помощью команды:

$ docker-compose restart ejabberd-mailcow

После включения ejabberd вы можете повторно запустить анализ DNS-записей в панели управления mailcow, где вы найдете еще две SRV-записи.

image

# SRV records
# Name                            Type       Value
_xmpp-client._tcp.xmpp_prefix     IN SRV     10 1 5222 mail.example.org. (ваш ${MAILCOW_HOSTNAME})
_xmpp-server._tcp.xmpp_prefix     IN SRV     10 1 5269 mail.example.org. (ваш ${MAILCOW_HOSTNAME})

Эти записи необходимы для автоконфигурации клиентов XMPP и межсерверных соединений. Добавить их можно в любое время без перезагрузки ejabberd.

​Управление доступом

image

​Проверка сертификатов

Когда все настроено, убедитесь, что ejabberd смог получить сертификаты:

Если вы видите сообщение, похожее на это …

ejabberd-mailcow_1   | 2021-02-13 14:40:19.507956+01:00 [error] Failed to request certificate for im.example.org, pubsub.im.example.org and 3 more hosts: Challenge failed for domain conference.im.example.org: ACME server reported: DNS problem: NXDOMAIN looking up A for conference.im.example.org - check that a DNS record exists for this domain (error type: dns

… возможно, вам потребуется перепроверить конфигурацию DNS или перезапустить docker-контейнер ejabberd-mailcow для возобновления процесса в случае медленного обновления DNS

Открытие

https:/xmpp_prefix.domain.tld:5443/upload 

должно направить вас на страницу 404 с действующим сертификатом.

На этом активацию и основную настройку XMPP на сервере mailcow можно считать завершённой. Подбирайте удобный jabber-клиент и общайтесь с родственниками, друзьями, коллегами, клиентами с глазу на глаз или в групповых чатах, в том числе c использованием end-to-end шифрования.

▍- DeltaChat

Второй мессенджер доступный к использованию в mailcow – это скорее выглядящий как Telegram или WhatsApp почтовый клиент, который, а в качестве транспорта использует электронные сообщения со сквозным шифрованием. Своих серверов не имеет, доверив их роль почтовым, которые эти сообщения хранят и доставляют. Может работать с обычной, нешифрованной почтой. Углубляться в подробности не буду, ибо материала в сети достаточно. Например здесь [6].

На стороне mailcow настроек для использования этого мессенджера не требуется. Папка «DeltaChat» для хранения сообщений в аккаунте пользователя, создаётся автоматически глобальными фильтрами по факту начала общения.

​ ​В итоге

«Почтовая корова» приросла функциями и при использовании универсальных mail-клиентов, таких как eM Client [7] или Thunderbird [8], стала — средством унифицированных коммуникаций. Почти…

Автор: Andrey Korhonen

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/xmpp/364434

Ссылки в тексте:

[1] mailcow: https://mailcow.email/

[2] дата-центров RUVDS: https://ruvds.com/ru-rub

[3] мозг: http://www.braintools.ru

[4] заводчик: https://www.servercow.de/

[5] источник: https://ru.wikipedia.org/wiki/XMPP

[6] здесь: https://habr.com/ru/company/ruvds/blog/532304/

[7] eM Client: https://www.emclient.com

[8] Thunderbird: https://www.thunderbird.net

[9] Источник: https://habr.com/ru/post/558240/?utm_source=habrahabr&utm_medium=rss&utm_campaign=558240