Для клиентов:
Установка 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 следующим образом:
- В модуле "Доменные имена" двойным нажатием по имени домена переходите в редактирование записей.
- Нажимаете кнопку на панели инструментов "Создать запись" и выбираете в поле Тип - SRV (сетевой сервис).
- Заполняете поля следующим образом:
Имя: _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.
