Рано или поздно очередной «исследователь» бюджетных альтернатив 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).
Указанный префикс домена используется в адресе авторизации 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.
Если вы сначала включили XMPP, а затем добавили записи DNS — не беда. Нужно дождаться, пока ejabberd автоматически получит сертификаты, или вручную перезапустить docker-контейнер ejabberd-mailcow с помощью команды:
$ docker-compose restart ejabberd-mailcow
После включения ejabberd вы можете повторно запустить анализ DNS-записей в панели управления mailcow, где вы найдете еще две SRV-записи.
# 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.
Управление доступом
Проверка сертификатов
Когда все настроено, убедитесь, что 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, стала — средством унифицированных коммуникаций. Почти…
Автор: Andrey Korhonen