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

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

Author: Blacksmith dated 2-06-2013, 07:34
Установка XMPP-сервера Prosody на Ubuntu 12.04Prosody — это кроссплатформенный 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" в таком случае не нужен.


 
  • Creative Commons Licence
  • Norton Safeweb
  • Powered by MariaDB
  • Powered by MariaDB
  • Website Uptime Monitoring By ServiceUptime.com
  • Yandex.Metrica