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

XMPP (ранее известный как Jabber) — Extensible Messaging and Presence Protocol (англ. расширяемый протокол обмена сообщениями и информацией о присутствии), это основанный на XML открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близкому к режиму реального времени.

Настройка jabber сервера производится в несколько этапов:

Установка Jabber сервиса в систему

Jabber сервис, настраиваемый с помощью пакета Calculate-Server, требует, чтобы в системе был установлен сервис ldap. Если сервис не был ранее установлен, установим его командой:

cl-setup ldap

Установка jabber сервиса производится командой

cl-setup jabber

В этом случае сервис будет установлен с параметрами по умолчанию: имя хоста jabber сервиса - имя хоста машины, лог сообщений пользователей вестись не будет.

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

cl-setup --hosts jabber.myhost.ru jabber

Установка сервиса с ведением лога сообщений пользователей, производится командой:

cl-setup --history on jabber

Сообщения будет сохраняться в директорию /var/log/jabber

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

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

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

Управление учетными записями

Добавление учетной записи

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

# добавить пользователя guest@домен c Nickname Гость
cl-useradd -p -c "Гость" guest jabber
# добавить пользователя guest@домен с Nickname Гость, и установить для него фотографию
cl-useradd -p -c "Гость" -i pic/guest.png guest jabber

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

Смена пароля

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

cl-passwd guest jabber

Блокировка и удаление учетной записи

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

cl-userdel guest jabber

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

cl-usermod -L guest jabber

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

cl-usermod -U guest jabber

Группы

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

Управление группами

Создание группы

Создание группы сервиса jabber осуществляется командой cl-groupadd

# создать группу с названием "Тестовая группа" 
cl-groupadd "Тестовая группа" jabber

Имя группы будет отображаться у пользователей в списке контактов.

Удаление группы

Удалить группу из сервиса jabber можно командой cl-groupdel

# удалить "Тестовую группу" 
cl-groupdel "Тестовая группа" jabber

Удаляется только группа, все пользователи, которые были включены в эту группу остаются без группы.

Переименование группы

Переименовать существующую группу сервиса jabber можно командой cl-groupmod

# назначить группе 'My test' новое имя 'Тестовая группа'
cl-groupmod -n 'Тестовая группа' 'My test' jabber

Изменение состава группы

Изменять состав jabber группы можно при помощи команд cl-groupmod и cl-usermod

# Поместить пользователя guest в группу 'Guest group' 
cl-usermod -g "Guest group" guest jabber
# Удалить пользователя guest из группы 'Guest group'
cl-groupmod -d guest "Guest group" jabber
# Добавить пользователей guest,guest2 в группу 'Guest group'
cl-groupmod -a guest,guest2 "Guest group" jabber

Ограничения

Если на вашем сервере больше одного сетевого интерфейса, и вы желаете чтобы он работал только на одном из них, внесите в его конфиг соответствующую директиву {ip, {xxx, xxx, xxx, xxx}}, в раздел "listen". Обратите внимание! Разряды IP отделяются не точками, а запятыми!

{5223, ejabberd_c2s, [
                       {access, c2s},
                       {shaper, c2s_shaper},
                       {ip, {192, 168, 1, 6}},
                       {certfile, "/etc/jabber/ssl.pem"}, tls,
                       {max_stanza_size, 65536}
                     ]},

Соответственно, эту директиву можно прописать во всех службах ejabberd: ejabberd_s2s, ejabberd_http, и т д.

Спасибо!