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, будет иметь адрес: 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, и т д.