Jabber (он же XMPP) – открытый расширяемый протокол обмена сообщениями. Благодаря этим свойствам любой желающий может установить и настроить свой собственный сервер, и можно создать множество пользователей на своем домене, к примеру [email protected] 😉
Jabber активно распространяется в интернете, и многие популярные сайты, такие как В Контакте, ya.ru, qip.ru, GTalk и многие другие создали свои сервера на основе Jabber. Установив сервер на своем домене, можно беспрепятственно общаться с людьми из всех этих сервисов. Взгляните на краткие преимущества Jabber на Youtube.
Итак, хватит словес, инструкция по настройке – под катом!
Установка и настройка
Начнем с установки пакета под незамысловатым названием ejabberd:
# yum install ejabberd
У нас в системе появится пользователь ejabberd и будет создано каталог /etc/ejabberd с файлами ejabberd.cfg, ejabberdctl.cfg и ejabberd.pem. Начнем редактировать первый из них, ejabberd.cfg:
Некоторым пользователям нужно дать права на удаленное управление XMPP-сервером. Для этого нужно вписать следующую строку. Таким образом, администратором сервера будет юзер с JID [email protected]server.ru
{acl, admin, {user, "admin", "myserver.ru"}}.
Обратите внимание, что в конце каждой строки конфигурационного файла нужно ставить точку “.”, а также нужно соблюдать баланс фигурных скобок. Для размещения комментария нужно начать строку с символа процента “%”, так как ejabberd написан на языке Erlang.
Теперь настраиваем привязку XMPP-сервера к домену. Ищем строку по слову hosts и изменяем на следующее:
{hosts, ["myserver.ru"]}.
Проверяем, чтобы была в наличии секция, описывающая рабочие порты XMPP-сервиса. TCP-порт 5222 используется для клиентских подключений, 5269 – для входящих межсерверных подключений (S2S, Server-to-Server), 5280 – порт для веб-админки:
{listen, [ {5222, ejabberd_c2s, [ %% %% If TLS is compiled in and you installed a SSL %% certificate, specify the full path to the %% file and uncomment this line: %% {certfile, "/etc/ejabberd/ejabberd.pem"}, starttls, {access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536} ]}, {5269, ejabberd_s2s_in, [ {shaper, s2s_shaper}, {max_stanza_size, 131072} ]}, {5280, ejabberd_http, [ %%{request_handlers, %% [ %% {["pub", "archive"], mod_http_fileserver} %% ]}, captcha, http_bind, http_poll, %%register, web_admin ]} ]}.
Первый запуск
Основная настройка закончена. Попробуем запустить Jabber-сервер:
# /etc/init.d/ejabberd start Запускается ejabberd: [ OK ]
Проверим, что он действительно запустился:
# netstat -tlnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 27697/beam tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 27697/beam tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 3951/epmd tcp 0 0 0.0.0.0:56819 0.0.0.0:* LISTEN 27697/beam tcp 0 0 0.0.0.0:5269 0.0.0.0:* LISTEN 27697/beam
Также проверить работу Jabber-сервера можно так:
# ejabberdctl status The node [email protected] is started with status: started ejabberd 2.1.6 is running in that node
По умолчанию ejabberd не позволяет регистрировать аккаунты извне с помощью клиентов. Поэтому нужно добавить пользователя на этот хост из консоли. Эта команда зарегистрирует пользователя [email protected] с паролем 123:
# ejabberdctl register admin myserver.ru 123 User [email protected] successfully registered
Веб-админка
Теперь идем по адресу http://myserver.ru:5280/admin/ и вводим данные только что зарегистрированного пользователя admin:
После аутентификации мы попадаем на главную страничку веб-админки. Здесь можно делать много интересных вещей, но здесь я просто покажу, как с помощью веб-админки добавить другого пользователя. Выбираем пункт Virtual Hosts:
Затем выбираем свой домен myserver.ru и попадаем на страницу администрирования домена:
Тут нужно выбрать пункт Пользователи – и вы увидите список всех зарегистрированных пользователей, а также форму добавления нового пользователя. Как видите, все очень просто.
Бекап!
После добавления всех пользователей, которые нужны, не забудьте сделать бекап базы Jabber-сервера. Сделать это очень просто из консоли:
# mkdir -p /var/lib/ejabberd/backup # ejabberdctl backup /var/lib/ejabberd/backup/2011.07.11
Отличная статья. Спасибо !
а если порты не открываются после запуска service ejabberd start , то что делать?
Роман, открыть порты)