Отдел продаж:

+7 (495) 663-73-72

Другие контакты »

Установка Jabber-сервера Ejabberd

Ejabberd - это отказоустойчивый и надежный jabber сервер с большим количеством возможностей.

Сеть Jabber, в сравнении с другими системами общения, имеет такие преимущества, как широкая функциональность (поддержка чатов, транспортов в другие сети), децентрализованность и независимость, безопасность (поддержка SSL-шифрования заложена в протокол), отсутствие проблем с кодировками, быстрый вход в сеть. Осутствуют ограничений на объем сообщений, спам, присутствует возможность находиться в режиме online одновременно с нескольких мест.

Для инсталляции мы выбрали сервер под управлением системы FreeBSD. Установка производится на сервер с набором предустановленного ПО Soft2006, можно также установить и на чистую систему (темплейт FreeBSD), однако это потребует больше времени.P>

В случае установки на чистую систему (темплейт FreeBSD) предварительно следует установить пакет erlang-lite.

# cd /usr/ports/lang/erlang-lite/
# make install clean

Иначе зависимости Ejabbed потребуют установки полного порта erlang, который в свою очередь потребует установки Java (diablo-jdk), на что потребуется лишнее время и место на диске.

Сборка порта erlang-lite потребует также установки зависимостей, оставляем все опции "по умолчанию".

Затем, после установки erlang-lite производим установку самого Ejabberd. Если установка происходит на сервер с темплейтом Современное ПО (Soft2006), как и рекомендовалось вначале статьи, то тогда сразу переходим к этому пункту.

# cd /usr/ports/net-im/ejabberd
# make install clean

[ ] ODBC Enable ODBC support - включать не нужно.

После установки (или во время ее, чтобы не терять время необходимое для обновления кэша DNS) следует прописать следующие записи в DNS для домена на котором установлен Jabber:

_jabber._tcp.example.com. IN SRV 5 0 5269 example.com.
_xmpp-server._tcp.example.com. IN SRV 5 0 5269 example.com.
_xmpp-client._tcp.example.com. IN SRV 5 0 5222 example.com.

Где example.com - это ваш домен. Записи произвести можно через панель управления ISPmanager следующим образом:

  1. В модуле "Доменные имена" двойным нажатием по имени домена переходите в редактирование записей.
  2. Нажимаете кнопку на панели инструментов "Создать запись" и выбираете в поле Тип - SRV (сетевой сервис).
  3. Заполняете поля следующим образом:
       Имя: _jabber._tcp
       Адрес: example.com. (не забудьте поставить точку в конце)
       Приоритет: 5
       Условный вес SRV-записи: 0
       Порт: 5269

Аналогично создаете записи и для других записей домена.

Проверить корректность и работу записей можно следующими командами:

В системах Unix

# host -t srv _jabber._tcp.example.com

В ответ получите строку

_jabber._tcp.example.com has SRV record 5 0 5269 example.com.

Или можно использовать команду dig

# dig -t srv _xmpp-server._tcp.example.com

В Windows можно воспользоваться командой nslookup:

# nslookup -type=srv _xmpp-server._tcp.example.com

Записи в DNS очень важны, иначе связь будет возможна только между клиентами подключенными к данному jabber-серверу.

Теперь, когда сборка и установка порта завершилась, следует произвести настройку конфигурации Ejabberd.

Скопируйте файлы конфигурации

# cp /usr/local/etc/ejabberd/ejabberd.cfg.example /usr/local/etc/ejabberd/ejabberd.cfg
# cp /usr/local/etc/ejabberd/inetrc.example /usr/local/etc/ejabberd/inetrc

Затем отредактируйте /usr/local/etc/ejabberd/ejabberd.cfg. В месте где написано

%% The 'admin' ACL grants administrative privileges to Jabber accounts.
%% You can put as many accounts as you want.

Добавьте строку

{acl, admin, {user, "user", "example.com"}}.

Это будет пользователь вашего сервера, который имеет права администратора как через Jabber-клиент, так и через веб-интерфейс.

По умолчанию веб-интерфейс доступен по адресу http://имя_сервера:5280/admin/, в качестве логина указывается Jabber полностью, например, [email protected]

Настройка поддержки SSL

Пропишите в файле /usr/local/etc/ejabberd/ejabberd.cfg полный путь к файлу ssl.pem (по умолчанию он не указан)

{5222, ejabberd_c2s, [
                        %%
                        %% If TLS is compiled and you installed a SSL
                        %% certificate, put the correct path to the
                        %% file and uncomment this line:
                        %%
                        {certfile, "/usr/local/etc/ejabberd/ssl.pem"}, starttls,
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {max_stanza_size, 65536}
                        ]},
{5223, ejabberd_c2s, [
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {certfile, "/usr/local/etc/ejabberd/ssl.pem"}, tls,
                        {max_stanza_size, 65536}
                        ]},

Затем создайте pem-файл сертификата

# cd /usr/local/etc/ejabberd/
# openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem -subj "/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=example.com emailAddress=[email protected]"
# cat privkey.pem >> server.pem
# rm privkey.pem
# mv server.pem ssl.pem

Укажите имя сервера

%% hosts: Domains served by ejabberd.
%% You can define one or several, for example:
%% {hosts, ["example.net", "example.com", "example.org"]}.
%%
{hosts, ["example.com"]}.

Добавьте сервер в автозагрузку. Для этого в /etc/rc.conf пропишите строку для автозапуска:

echo 'ejabberd_enable="YES"' >> /etc/rc.conf

И затем запустите Ejabberd командой

# /usr/local/etc/rc.d/ejabberd start

Проконтролируйте то, что jabber-сервер запустился:

# ps axu | grep jabber
ejabberd 49006 0.0 0.1 1444 828 ?? SJ 7:22AM 0:00.00 /usr/local/lib/erlang/erts-5.6.5/bin/epmd -daemon
ejabberd 49007 0.0 2.5 31008 25520 ?? SJ 7:22AM 0:02.37 [beam]

Регистрация новых пользователей производится из Jabber-клиента или через веб-интерфейс администратором, возможно также в настройках через веб запретить автоматическую регистрацию.

Официальная документация по серверу ejabbed находится по адресу http://www.process-one.net/en/ejabberd/docs.