Пользователь
0,0
рейтинг
28 февраля 2012 в 09:48

Администрирование → Установка легковесного Jabber сервера Prosody с LDAP аутентификацией через SASL из песочницы

Это простой рецепт для настройки IM сервера для общения внутри компании. В нашей компании для общения внутри сети используется Jabber и некоторое время назад мы стали замечать что jabberd14 нещадно протекает и грузит сервер. Поиски легковесной замены привели к северу Prosody написаному на языке Lua. По заверению разработчиков это современный гибкий сервер для общения, ориентированый на простоту настройки и нетребовательный к ресурсам. Работа последние пару месяцев это в принципе подтверждает.

Сервер на котором крутится Jabber у нас с Ubuntu 10.04 LTS, и установка, как и для любого основанного на Debian дистрибутива, довольно проста — добавить репозиторий в /etc/apt/sources.list:

deb packages.prosody.im/debian lucid main

добавить ключ:

wget prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -

и установить:

apt-get update && apt-get install prosody-0.9 liblua5.1-cyrussasl0 libsasl2-modules-ldap sasl2-bin

Как вы выше заметили, параллельно мы устаовили SASL, который используем для аутентификации в LDAP компании (настройка самого LDAP не рассматривается — считаем что он уже есть).

Настроим параметры демона saslauthd для работы с механизмом LDAP — добавим в /etc/default/saslauthd следующее:

START=yes
MECHANISMS="ldap"


Созданим настройку для XMPP сервиса /etc/sasl/xmpp.conf, будем проверять через механизмы PLAIN и LOGIN:

pwcheck_method: saslauthd
mech_list: plain login


В конфигурационном файле /etc/saslauthd.conf укажем адрес LDAP сервера и базовый DN, по которому будем искать пользователей:

ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=users,dc=example,dc=com


Теперь можно перезапустить демона аутентификации saslauthd:

/etc/init.d/saslauthd restart

Настройка Prosody довольно проста — файлы конфигурации пердставляют собой Lua скрипты. Добавим в /etc/prosody/prosody.cfg.lua:

-- Enable the cyrus backend
c2s_require_encryption = true
anonymous_login = false
allow_unencrypted_plain_auth = false
authentication = "cyrus"
cyrus_service_name = "xmpp" -- Optional, defaults to "xmpp"
cyrus_application_name = "xmpp"


Перезапускаем Prosody:

/etc/init.d/prosody restart

Теперь пользователи могут пользоваться Jabber сервером и поедание ресурсов jabberd14 в прошлом. Мы не разбирались почему именно jabberd14 поедает ресуры, возможно был виноват один из установленых плагинов, но Prosody выполняет все необходимые нам функции потребляя минимум ресурсов.

Дополнительные плагины, которые мы используем с Prosody:
  • roster_command — для управления ростерами через prosodyctl (у нас крон подписывает всех на всех)
  • muc_log — запись разговоров в конференциях
  • muc_log_http — встроеный web-интерфейс для просмотра разговров в конференциях записаных mod_muc_log
  • webpresence — публикует Jabber статус пользователей

Дополнительное чтение:
Anatoliy Okhotnikov @AcidumIrae
карма
4,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (9)

  • –1
    Эх. Где же вы были неделю назад?
  • 0
    было бы интересно услышать все-таки какие ресурсы кушает?
  • +1
    А чего не Ejabberd? Или искали именно что-то легкое?
    Сколько оно памяти ест сейчас?
  • 0
    Для вендового сервера сборка есть?
  • 0
    У меня стоит jabberd2. Он функционалом не устроил? У меня задачи только между пользователями сообщения передавать. На внешние сети доступа нет. Чаты так и не запустил, да и всё равно на ejabberd в своё время никто не пользовался. Перешёл на jabberd2 после того, как начались нехватки оперативки на сервере с ejabberd. Не только он был виноват. Да и памяти было очень мало.
  • 0
    У ejabberd есть BOSH, с его помощью я, например, сделал чатик на сайт. Ну то есть посетитель приходит и может сразу написать определенному юзеру. Без всяких сторонних плагинов или сервисов.
    За это я ему (ejabberd`у) благодарен и не променяю ни на что :)
  • 0
    А есть ли у него готовый модуль для записи логов сообщений?
    И планируется ли поддержка кластеризации?
  • 0
    А как заполняете vcard у пользователей? Было бы логично тянуть все данные из ldap. Какой-то модуль используете?

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