Настройка Jabber сервера

Обновлено 7 марта 2019

XMPP

Введение

XMPP (ранее известный как Jabber), Extensible Messaging and Presence Protocol (англ. расширяемый протокол обмена сообщениями и информацией о присутствии) - это основанный на XML открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близкому к режиму реального времени. Для хранения учётных записей пользователей и групп используется OpenLDAP-сервер, в качестве XMPP-сервера используется Ejabberd. Необходимое программное обеспечение входит в состав Calculate Directory Server.

Настройка LDAP-сервера

Для хранения учётных записей пользователей и групп утилиты используют OpenLDAP-сервер. Настройте сервис LDAP согласно руководству.

Настройка Jabber-сервера

Установите Jabber-сервис, выполнив:

cl-setup jabber
 * ПРЕДУПРЕЖДЕНИЕ: Выполнение этой программы изменит конфигурационные файлы Jabber сервиса (программа Ejabberd).
Если вы готовы продолжить выполнение программы, введите 'yes', если нет - 'no': yes

Введите пароль для admin@calculate.spb.calculate.ru
Новый пароль:
Повторите новый пароль:
* Пользователь добавлен в Jabber сервис
* Добавлен ldif файл ...                                                            [ ok ]
* Запускается Ejabberd ...                                                          [ ok ]
* Jabber сервис сконфигурирован ...                                                 [ ok ]

После выполнения Jabber будет сконфигурирован с параметрами по умолчанию. В качестве имени хоста Jabber сервиса будет взято имя хоста машины.

Для указания дополнительных jabber-хостов используйте параметр --hosts.

Во время настройки сервиса введите пароль для учетной записи admin.

Учетные записи

Каждый пользователь в сети имеет уникальный идентификатор — Jabber ID (сокращенно JID). Адрес JID, подобно адресу электронной почты, содержит имя пользователя и доменное имя сервера, на котором зарегистрирован пользователь, разделённые знаком @. Например, пользователь user, зарегистрированный на сервере example.org, будет иметь адрес: user@example.org.

Добавление учетной записи сервиса jabber осуществляется командой cl-useradd.

Для добавления пользователя guest@example.org c nickname Гость выполните:

cl-useradd -p -c "Гость" guest jabber
Новый пароль:
Повторите новый пароль:
* Пользователь добавлен в Jabber сервис

Для добавления пользователя guest@example.org с nickname Гость и установкой для него фотографии выполните:

cl-useradd -p -c "Гость" -i pic/guest.png guest jabber

Заметка

Поддерживаемые форматы изображений определяются возможностями ImageMagick. Если в системе его нет, доступен только формат jpeg.

Смена пароля учетной записи сервиса jabber осуществляется командой cl-passwd. Для смены пароля пользователя guest выполните:

cl-passwd guest jabber
Новый пароль:
Повторите новый пароль:
* Пароль пользователя Jabber сервиса изменен

Блокировка учетной записи производится командой cl-usermod -L. Для блокировки учетной записи guest выполните:

cl-usermod -L guest jabber
* Пользователь guest Jabber сервиса заблокирован

Разблокировать учетную запись можно командой cl-usermod -U. Для разблокирования учетной записи guest выполните:

cl-usermod -L guest jabber
* Пользователь guest Jabber сервиса разблокирован

Удаление учетной записи из сервиса jabber осуществляется командой cl-userdel. Для удаления учетной записи guest выполните:

cl-userdel guest jabber
* Пользователь guest Jabber сервиса удален

Группы

Группа - набор JID, использующийся для рассылок сообщений нескольким пользователям одновременно. При подключении пользователя к Jabber-сервису он автоматически получит список групп и их участников. Пользователей без группы в список контактов добавлять придется вручную. Каждый пользователь может входить только в одну группу.

Создание группы сервиса Jabber осуществляется командой cl-groupadd. Для создания группы "Тестовая группа" выполните:

cl-groupadd "Тестовая группа" jabber
 * Группа 'Тестовая группа' добавлена в Jabber сервис

Переименовать существующую группу сервиса Jabber можно командой cl-groupmod. Для переименования группы "Тестовая группа" в группу "My Test" выполните:

cl-groupmod -n 'My Test' 'Тестовая группа' jabber
 * Группа переименована в My Test

Изменять состав группы Jabber можно при помощи команд cl-groupmod и cl-usermod. Для добавления пользователя guest в группу 'Guest group' с помощью команды cl-usermod выполните:

cl-usermod -g "Guest group" guest jabber
* Пользовательская группа изменена

Для удаления пользователя guest из группы 'Guest group' выполните:

cl-groupmod -d guest "Guest group" jabber
* Пользователи удалены из группы Guest group

Для добавления пользователей guest и guest2 в группу 'Guest group' выполните:

cl-groupmod -a guest,guest2 "Guest group" jabber
* Пользователи добавлены в группу Guest group

Ограничения

Если на вашем сервере больше одного сетевого интерфейса и вам нужно, чтобы он работал только на одном из них, добавьте в файле /etc/jabber/ejabberd.yml соответствующую директиву ip: "192.168.0.2" в раздел listen:

/etc/jabber/ejabberd.yml

...
listen:
  -
    port: 5223
    module: ejabberd_c2s
    max_stanza_size: 65536
    tls: true
    ip: "192.168.0.2"
    certfile: "/etc/jabber/ssl.pem"
    shaper: c2s_shaper
    access: c2s
...