Ставим собственный Jabber-сервер

Опубликовано

Поскольку я отказался от использования ICQ, решил уделить немного времени вопросам установки и настройки Jabber-сервера. Поскольку у меня есть аккаунт в Google Hosted Servises, где настроен мой домен, JID в собственном домене у меня уже есть (и друзьям-знакомым-родственникам в случае надобности сделаю), а подъем собственного Jabber-сервера я делал сугубо в исследовательских целях.Для начала о том какие бывают Jabber-сервера и

на чем их пишут.

  1. Djabberd - реализация на Perl
  2. ejabberd - наиболее популярное решение на Erlang
  3. jabberd14 - хорошо обросший мхом Jabber-сервер на C
  4. jabberd2 - это не более новая версия jabberd14, это отдельный проект, написан на C
  5. OpenFire - экс-WildFire, Jabber-сервер с удобным и понятным Web-интерфейсом, написан на Java
  6. pretzel - Jabber-сервер на Python
  7. OpenIM - еще один сервер на Java

Список, конечно, не полный, это те реализации, о которых я знаю. Из всего этого много образия для своих экспериментов я выбрал ejabberd. Этот сервер наиболее полно соответсвует стандартам и на этом ПО работает крупнейший Российский сервис jabber.ru, собственно поэтому он.Для установки берем ящик с FreeBSD внутри, сойдет и VDS, собственно на него я и ставил.Сама установка, как и первичная настройка, никаких сложностей из себя не представляет Делаем примерно так

# pkg_add -r erlang-lite# cd /usr/ports/net-im/ejabberd && make install clean

Пока все это собирается нужно создать SRV-записи в доменной зоне, которую будет обслуживать Jabber-сервер. Вот такие примерно

_jabber._tcp.domain.ru. IN SRV 5 0 5269 jabber.domain.ru._xmpp-server._tcp.domain.ru. IN SRV 5 0 5269 jabber.domain.ru._xmpp-client._tcp.domain.ru. IN SRV 5 0 5222 jabber.domain.ru.

Естественно, имя jabber.domain.ru должно резолвиться на тот IP, где будет установлен Jabber-сервер.Как только все собралось идем в каталог /usr/local/etc/ejabberd, и копируем файлы *.example в нормальные.Добавляем в ejabberd.cfg вот такую примерно строчку чтобы определить кто у нас будет админом

{acl, admin, {user, "user", "domain.ru"}}.

Для работы шифрования нужно сгенерировать самоподписанный сертификат либо получить настоящий, об этом я уже как-то писал, поэтому ищущих отправляю к моим прошлым заметкам.Путь к объединенному файлу, содержащему сертификат и ключ нужно будет указать в ejabberd.cfg

tls, {certfile, "/usr/local/etc/ejabberd/ssl.pem"}]},

и

{s2s_certfile, "/usr/local/etc/ejabberd/ssl.pem"}.

После чего включаем запуск сервера при старте системы и запускаем.

# echo 'ejabberd_enable="YES"' >> /etc/rc.conf# /usr/local/etc/rc.d/ejabberd start

Осталось только зарегистрировать админский аккаунт с помощью Jabber-клиента.Собственно на сегодня все. Jabber-сервер готов к использованию. О тонкостях настройки, подключении транспортов в другие IM-сети и т.п. обещаю рассказать в следующие разы.Интересное в двух словах:

  • Я в последнее время перестал удивляться находя ресурсы, которым вроде бы и несвойственно быть в интернете, вот сегодня - интернет магазин мужской одежды. Ну все вроде бы хорошо, но лично мне перед покупкой вещь нужно примерить.
  • Еще один интересный ресурс для повышения скила в области сео и раскрутки сайтов - Раскрутка сайта от inetManager.ru. Есть что почитать про увеличение тИЦ и PR, ускорение переиндексации сайта.
  • Оценил полезность интернет-магазинов, в которых есть Моментальная доставка. Вот надо срочно на мобильник денег положить - пожалуйста заплати webmoney и получи пин-код.