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

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

Author: Tatyana dated 2-06-2013, 07:34
  • Dislike
  • +5
  • Like

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" в таком случае не нужен.



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