Установка XMPP-сервера Prosody на Ubuntu 12.04

Prosody — это кроссплатформенный XMPP-сервер, написанный на языке Lua. Цель его разработки включает в себя низкое потребление ресурсов, простота в использовании и расширяемость. Разработка Prosody была начата Matthew Wild в августе 2008 года и его первый релиз, 0.1.0, был выпущен в декабре 2008 года. Изначально Prosody был под лицензией GNU General Public License (version 2), но позже переключился на лицензии MIT в своем 3-м выпуске. Расписывать преимущества Prosody я не буду, так как всё зависит от целей использования. Лично мне Prosody показался более удобным, стабильным и простым, по сравнению с Ejabberd, который я использовала ранее. Плюс, работает у меня это всё без спотыканий на дохленькой машине с одноядерным процессором и 128 mb оперативной памяти. Установка производилась на Ubuntu 12.04. Добавляем в sources репозиторий Prosody.

deb http://packages.prosody.im/debian precise main

Добавляем ключ.

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

Обновляем список.

sudo apt-get update

Стоит заметить, что данный репозиторий имеет разделы для Ubuntu версий Lucid, Precise, Quantal, а так же для Debian версий Sid, Squeeze, Wheezy. Установка.

aptitude install prosody

На момент написания заметки последняя стабильная версия — 0.8.2. Можно так же поставить первую бету версии 0.9, изменив «prosody» на «prosody-0.9», но бета — всё же бета, хотя на тестовой машине и в ней глюков не наблюдалось. Но глубоко я не копала. Далее нужно отредактировать конфигурационный файл «prosody.cfg.lua» по адресу /etc/prosody/. Строки, на которые следует обратить внимание:

admins = { };

В данной строку указываем админов, помещая каждый аккаунт в кавычки, разделяя их запятой. Пример:

admins = { "user1@example.com", "user2@example.net" };

«register»;

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

"watchregistrations";

Админы будут получать сообщения от сервера о регистрации новых пользователей.

allow_registration = false;

Значение «false» в этой строке запретит регистрацию новых пользователей. По умолчанию она запрещена в целях экономии ресурсов. Для включения регистрации необходимо установить значение «true», при этом должен быть загружен модуль «register».

daemonize = true;

Включает загрузку демона при старте системы.

ssl = {
key = "/etc/prosody/certs/localhost.key";
certificate = "/etc/prosody/certs/localhost.cert";
}

Адреса сертификата и ключа для локального хоста. Генерируются автоматически при установке Prosody.

c2s_require_encryption = false
s2s_require_encryption = false

Значение «true» включит принудительный запрос шифрования при авторизации контактов. По умолчанию отключено, так как не все сервера поддерживают s2s-шифрование, или оно на них отключено. При включении этих строк пользователь не сможет авторизовать в своём ростере контакт со стороннего сервера с отключенной опцией s2s. Включая gmail.com.

VirtualHost "example.com"

Адрес нашего хоста.

enabled = false

Необходимо удалить или закомментировать (—) эту строку для включения хоста.

ssl = {
key = "/etc/prosody/certs/prosody.key";
certificate = "/etc/prosody/certs/prosody.crt";
}

Адреса сертификата и ключа для нашего виртуального хота. Если у вас есть заверенный сертификат, требующий пароль, то в эту секцию можно добавить строку пароля.

password = "KEYWORD";

Где KEYWORD — пароль. Пример:

ssl = {
key = "/etc/prosody/certs/prosody.key";
certificate = "/etc/prosody/certs/prosody.crt";
password = "KEYWORD";
}

В противном случае, можно использовать данные localhost (см. выше), либо создать отдельный самоподписанный сертификат с помощью утилиты «openssl».

openssl req -new -x509 -days 365 -nodes -out prosody.crt -keyout prosody.key

Где сертификат и ключ имеют имя «prosody», а значение «365» указывает на то, что сертификат будет годен год.

Component "conference.example.com" "muc"

Включает многопользовательский чат и возможность создания комнат по адресу conference.example.com. На этом настройка закончена. Конфигурационный файл Prosody очень хорошо комментирован, поэтому не составляет труда понять за что отвечает какая-либо строка. В данном примере лишь основное. Перезагружаем XMPP-сервер.

/etc/init.d/prosody restart

Создание аккаунта. Для создание аккаунтов можно использовать настольный клиент (в моём случае Psi Plus), при условии что регистрация разрешена и модуль «register» загружен. Или можно воспользоваться утилитой «prosodyctl».

prosodyctl adduser user@example.com

Мы создали пользователя user на хосте example.com Основные команды: prosodyctl adduser JID — Создание аккаунта. prosodyctl passwd JID — Установка пароля для ааккаунта. prosodyctl deluser JID — Удаление аккаунта. prosodyctl start — Запуск сервера. prosodyctl stop — Остановка сервера. prosodyctl restart — Перезагрузка сервера. prosodyctl reload — Перезагрузка конфигурации сервера и обновление логов. prosodyctl status — Рапорт о состоянии сервера. Подключаем базу данных MySQL. Prosody имеет два плагина: «internal» и «sql». По умолчанию данные о пользователях, vCards и прочее хранится во внутренней базе. При желании это можно поправить для более привычного использования. В моём случае — MySQL. Так же данные могут храниться в PostgreSQL и SQLite3. Для работы Prosody с базой данных MySQL следует обратить внимания на следующие строки конфигурационного файла:

storage = "sql" -- Default is "internal"

sql = { driver = «MySQL»,
database = «prosody»,
username = «prosody»,
password = «secret»,
host = «localhost» }

Раскомментируем строку «storage = «sql»» для загрузки плагина «sql». А так же строку с указанием на драйвер MySQL, изменив значения «database», «username», «password» и «host» на свои. Далее перезагружаем Prosody. В случае с Ubuntu 12.04 необходимо подключить ещё один репозиторий, так как репозиторий Ubuntu не удовлетворяет зависимости нужного нам компонента, а именно «liblua5.1-dbi0», для которого требуется «libmysqlclient15off». Добавляем репозиторий Percona (форк MySQL). В sources добавляем строку

deb http://repo.percona.com/apt precise main

Далее добавляем ключ.

gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
gpg -a --export CD2EFD2A | apt-key add -

После чего обновляем список и ставим «liblua5.1-dbi0»

apt-get update
aptitude install liblua5.1-dbi0

Теперь перезагружаем Prosody и пользуемся. База будет храниться в MySQL. *** обновлено Для установки на Debian 7, или Ubuntu 14.04 и хранения базы данных в MySQL, или Percona, или MariaDB необходимо установить пакет «lua-dbi-mysql», который есть в основных репозиториях этих операционных систем. Пакет «liblua5.1-dbi0» в таком случае не нужен.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *