Friday, November 17th, 2017

Установка Jabber сервера в Linux

Published on Март 30, 2009 by   ·   Комментариев нет

1.0 Введение

Если вам не пришлось провести последние несколько лет вашей жизни
в пещере, то вы наверняка слышали о сервисах мгновенных сообщений
(Instant Messaging, IM — прим. пер.) и о том, как они изменили
мир общения в Интернете. Согласно http://www.webopedia.com, сервис
мгновенных сообщений — это служба, предупреждающая пользователей
о появлении их друзей или коллег в сети и позволяющая им общаться
в реальном времени через частные каналы. Два наиболее популярных
сервиса — это [23] AOL Instant Messenger (AIM) и [24] MSN Messenger.
К сожалению, большинство наиболее доступных серверов используют
проприетарные протоколы, допускающие общение только с пользователями
той же самой системы. Эти системы несовместимы между собой и не
доступны для разных клиентов.

Jabber — это открытая реализация IM-сервера, способного это изменить.
Он использует потоковые протоколы XML, которые свободны, открыты
и публичны. Эти протоколы были формализованы организацией Internet
Engineering Task Force (IETF) как испытанные для мгновенных сообщений
и утверждены технологии под названием XMPP. Первые технологии Jabber
были разработаны Джереми Миллером (Jeremie Miller) в 1998 году
и теперь используются по всему миру на тысячах серверов для того,
чтобы миллионы пользователей могли общаться друг с другом.

По сравнению с коммерческими IM-серверами Jabber-сервер имеет огромное
преимущество в том, что, поскольку он открыт, любой может запустить
Jabber-сервер для обслуживания, например, работы компании или компании
приятелей. В этой статье я описал шаги, которые я сделал, чтобы
установить Jabber-сервер и как мне удалось преодолеть те трудности,
с которыми я столкнулся. Надеюсь, это поможет вам установить свой
собственный сервер.

2.0 Предварительная настройка

Перед компиляцией сервера нам для повышения безопасности понадобится
внести некоторые изменения в систему, на которой мы установим сервер.
Первое, что нам придется сделать — это создать нового пользователя
для того, чтобы процесс сервера Jabberd не был запущен от рута.
Это настоятельно рекомендуется, поскольку процесс сервера, запущенный
от рута есть крайне плохая идея.

Наверное, вам интересно, что может произойти? Ну, представьте себе
ситуацию: в коде Jabber-сервера найдена ошибка, вызывающая
переполнение буфера. И до выпуска исправлений к коду некто,
ненавидящий вас за то, что вы заняли его место в пятизвездочном
кафетерии узнает, что ваш сервер уязвим и решает атаковать его.
А поскольку ваш сервер запущен от рута, то вы находитесь во власти
хакера, так как он имеет полный контроль над сервером и может делать
с ним все, что ему заблагорассудится. С другой стороны, если бы ваш
сервер работал от другого пользователя, хакеру пришлось бы приложить
массу усилий для того, чтобы получить права рута и он непременно
бы оставил в вашей системе какие-то следы, которые помогли бы вам
его поймать. Что, я вас убедил? Нет? Ну, тогда это — ваши проблемы…
(В оригинале буквально — <<это ваши похороны...>> — прим. пер.)

Для того, чтобы добавить пользователя для сервера, наберите от рута:

   adduser jabber

Затем выберите пароль для новой учетной записи:

  passwd jabber

После изменения пароля нам понадобится создать каталог, где процесс
jabberd будет хранить логи и pid'ы. Сделаем это, набрав следующие
команды:

           mkdir -p /usr/local/var/jabberd/pid/
           mkdir -p /usr/local/var/jabberd/log/

Теперь нам нужно изменить права доступа к этим каталогам для того,
чтобы пользователь jabber мог записывать в них:

           chown -R jabber:jabber /usr/local/var/jabberd/pid/
           chown -R jabber:jabber /usr/local/var/jabberd/log

2.1 Получение Jabber-сервера

Jabber — это проект Open Source и поэтому существуют различные
реализации Jabber-сервера. Список некоторых из них доступен на [25]
http://www.jabber.org/software/servers.shtml. Я решил использовать
реализацию сервера Jabberd 2.x, так как у меня уже был исходный
код сервера на моем компьютере. Кроме того, из-за недавнего взлома
серверы Jabber Studio не работали и, пока выяснялось, что произошло,
загрузки файлов была недоступны.

К счастью, когда вы это прочтете, их машины уже должны быть в порядке
и вы сможете получить последнюю версию Jabberd с их сайта.

2.2 Установка Jabber

Первое, что мы должны сделать после получения исходного кода,
это распаковать его:

     tar -zxf jabberd-2.0s2.tar.gz

Затем сменим рабочий каталог:

    cd jabberd-2.0s2

Большое количество опций Jabbber-сервера можно настроить
в предварительной конфигурации. Для того, чтобы посмотреть
на доступные опции, наберите:

 ./configure --help

Я решил использовать установки по умолчанию, и я просто набрал:

   ./configure

Как только скрипт закончит работу без ошибок, мы можем продолжить
и скомпилировать программу с помощью make. Затем войдем в систему
как рут (Существует прекрасная программа sudo, пожалуйста, используйте
ее! — прим. пер.) и установим ее с помощью

  make install

По умолчанию jabberd использует для хранения своих данных MySQL,
поэтому нам придется установить новую базу данных, к которой jabberd
имел бы доступ. В исходниках jabberd в подкаталоге «tools» есть
скрипт, который весьма облегчит вам эту работу. Просто наберите:

    mysql -u root -p < tools/db-setup.mysql

Наберите пароль администратора MySQL, когда вам это будет предложено.
(Еще раз напоминаю про sudo! — прим. пер.) Этот скрипт создаст новую
базу данных в том виде, который необходим для работы jabber-сервера.
По завершении работы скрипта нам будет нужно создать пользователя
jabberd2 в MySQL для того, чтобы jabberd мог работать с базой данных.
Это можно сделать следующей командой:

   mysql -u root -p

Теперь, когда вам будет предложено, наберите пароль суперпользователя,
(sudo! sudo! sudo! — прим. пер.) и вы увидите приглашение командной
строки MySQL. Наберите следующую команду:

   GRANT     select,insert,delete,update     ON jabberd2.*    to jabberd2
           at localhost IDENTIFIED by &#039;examplepassword&#039;;

заменив «examplepassword» на пароль по

вашему выбору. Запустив
эту команду, наберите exit для выхода из программы. Установка сервера
закончена. Теперь нам нужно настроить сервер для использования.

2.3 Настройка jabberd-сервера

Чтобы настроить сервер, нам придется перейти в католог jabberd:

  cd /usr/local/etc/jabberd/

Затем мы должны подредактировать (от рута) файл sm.xml:

     * Откройте sm.xml в вашем любимом текстовом редакторе



     * Измените   значение  ID сети  с localhost  на jabber.yoursite.com,
       предварительно  убедившись  в том, что в настройках сети корректно
       указаны параметры подключения к DNS-серверу.



     * Найдите      раздел      &#039;User     Options&#039;     и раскомментируйте
       тег <auto-create/>.        Это позволит       незарегистрированным
       пользователям самостоятельно регистрироваться в системе.



     * Если   вы хотите,   чтобы  уже существующий  список  пользователей
       был доступен  всем  новым  пользователям, раскомментируйте в конце
       файла:
       <roster>/usr/local/etc/jabberd/templates/roster.xml</roster>.
       Скоро мы подойдем к содержанию файла roster.xml.

Закончив редактирование, сохраните sm.xml и покиньте редактор. Теперь
нам нужно поправить файл c2s.xml, поэтому:

     * Откройте c2s.xml в вашем любимом текстовом редакторе



     * Найдите  раздел  &#039;Local  network  configuration&#039;  и измените  <id>
       с localhost на jabber.yoursite.com



     * Сохраните изменения и выйдите из редактора

Настройка сервера завершена. Мы получили базовый jabber-сервер,
позволяющий пользователям регистрироваться в системе и разговаривать
между собой. Однако если мы хотим иметь возможность создавать
чат-румы, нам придется установить дополнительную программу
mu-conference. Это не займет у нас много времени.

2.4 Создание списка пользователей по умолчанию

jabberd дает нам возможность создавать <<шаблонные>> списки
пользователей, так что каждый новый пользователь получает список
по умолчанию. Это может быть очень полезно в случаях, когда
администратор хочет знать наверняка то, что каждый пользователь
получит список всех <<нужных>> людей и ему не придется тратить массу
времени для редактирования этого списка вручную.

Файл шаблона хранится в подкаталоге «templates» и называется
roster.xml. Файл имеет следующий вид:

           <query xmlns=&#039;jabber:iq:roster&#039;>
            <!--
             <item name=&#039;Buddy Name&#039; jid=&#039;JID@Host.domain&#039; subscription=&#039;both&#039;>
              <group>BuddyGroup</group>
             </item>
            -->
            </query>

Чтобы добавить необходимых пользователей, нужно раскомментировать
тег и добавить новую строку для каждого пользователя.
Например, если вы хотите добавить в список по умолчанию меня и если
бы мой JID (Jabber ID) был [26] suramya@jabber.suramya.com, то вход
для пользователя с моим именем выглядел бы так:

           <item name=&#039;Suramya&#039; jid=&#039;suramya@jabber.suramya.com&#039; subscription=&#039;both&#039;>
            <group>Support</group>
           </item>

Поле групп указывает клиенту, в какой группе предполагается хранить
каждую учетную запись. В этом случае учетная запись пользователя
Suramya хранится в группе «Support». Все записи должны быть заключены
между тегами , так что полный файл с единственным
пользователем выглядел бы так:

           <query xmlns=&#039;jabber:iq:roster&#039;>
            <item name=&#039;Suramya&#039; jid=&#039;suramya@jabber.suramya.com&#039; subscription=&#039;b
           oth&#039;>
             <group>Support</group>
            </item>
           </query>

2.5 Установка сервера mu-conference

Перед установкой mu-сервера необходимо установить Jabber Component
Runtime(JCR), который можно получить здесь:
http://jabber.terrapin.com/JCR/jcr-0.1.2.tar.gz. Выполните
следующие шаги:

     * Загрузите исходный код: wget http://jabber.terrapin.com/JCR/jcr-0.1.2.tar.gz


     * Распакуйте его: tar -zxf jcr-0.1.2.tar.gz


     * Смените рабочий каталог: cd jcr-0.1.2


     * Скомпилируйте jcr: make

После успешной компиляции jcr мы можем продолжить установку
mu-conference:

     * Загрузите  отсюда  исходный код mu-conference source в каталог jcr


     * Распакуйте архив: tar -zxf mu-conference-0.6.0.tar.gz


     * Скопируйте     main.c     в каталог     src:     cp     src/main.c
       mu-conference-0.6.0/src


     * Скопируйте     jcomp.mk    в каталог    src:    cp    src/jcomp.mk
       mu-conference-0.6.0/src


     * Перейдите      в исходный      каталог      mu-conference:      cd
       mu-conference-0.6.0/src


     * Скомпилируйте mu-conference: make -f jcomp.m


     * Скопируйте   бинарный  файл  mu-conference,  созданный  в каталоге
       jabberd: cp mu-conference /usr/local/bin


     * Скопируйте  конфигурационный  файл  в каталог настроек jabberd: cp
       ../muc-jcr.xml /usr/local/etc/jabberd/

Теперь нам нужно настроить mu-conference редактированием файла
muc-jcr.xml:

     * Откройте muc-jcr.xml в вашем любимом редакторе


     * Измените поля name и host на conference.yoursite.com


     * Добавьте <user>jabberd</user> перед строкой &#039;secret&#039;


     * Измените строки spool, logdir и pidfile на:
       /usr/local/var/jabberd/spool
       /usr/local/var/jabberd/log
       /usr/local/var/jabberd/pid


     * Создайте каталог spool: mkdir -p /usr/local/var/jabberd/spool/

Настройка сервера mu-conference окончена и теперь мы готовы
его запустить.

2.5 Запуск сервера Jabberd

Чтобы стартовать сервер, наберите в командной строке:

     * Войдите в систему пользователем jabber: su jabber


     * Запустите сервер jabberd: /usr/local/bin/jabberd &


     * Запустите  сервер  mu-conference:  /usr/local/bin/mu-conference -c
       /etc/jabberd/muc-jcr.xml &

3.0 Заключение

Надеюсь, я избавил вас от кучи неприятных сюрпризов, рассказав,
как легко и быстро установить jabberd-сервер. Если этот документ помог
вам или у вас есть какие-либо комментарии или вопросы, пожалуйста,
не стесняйтесь обращаться ко мне. Однако я должен вас предупредить,
что я слегка ленив, поэтому могу ответить на ваше письмо не сразу.

4.0 Document Information/History

Created by: Suramya Tomar
Last updated: 14th February 2005

4.1 Copyright

This document is Copyright © 14th July 2005, Suramya Tomar.
It is released to the public under the [30] Creative Commons
Attribution-ShareAlike 1.0 License

4.2 Благодарности

В этом разделе я с удовольствием представляю вам людей, без которых
этот документ, возможно, никогда не увидел бы свет:

* Создателей и мэйнтейнеров сайта http://www.jabber.com, откуда
я собрал информацию

* Alf Eaton за описание шагов, которые он предпринял для запуска
Jabber conference

* Renny Koshy за то, что разрешил мне установку Jabber-сервера
на его машине

* Matt Hoskins и Kevin Walsh за то, что пробудили мой интерес
к Линукс

* Моим друзьям и моей семье за то, что терпели меня, пока я трудился
над этим документом.

zp8497586rq












































































































Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]