Pull to refresh
2727.48
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

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

Reading time4 min
Views12K

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

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

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

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

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

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

▍- ejabberd


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

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

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

Настройка


По умолчанию 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 почтовый клиент, который, а в качестве транспорта использует электронные сообщения со сквозным шифрованием. Своих серверов не имеет, доверив их роль почтовым, которые эти сообщения хранят и доставляют. Может работать с обычной, нешифрованной почтой. Углубляться в подробности не буду, ибо материала в сети достаточно. Например здесь.

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

​ ​В итоге


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

UPD: В июльском обновлении 2021 года функционал XMPP разработчиками был отключён. :( Как говорят, по результатам голосования сообщества.


Tags:
Hubs:
Total votes 57: ↑53 and ↓4+49
Comments0

Articles

Information

Website
ruvds.com
Registered
Founded
Employees
11–30 employees
Location
Россия
Representative
ruvds