Администрирование Как установить Jabber-сервер
- Подробности
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 'examplepassword';
заменив "examplepassword" на пароль по вашему выбору. Запустив
эту команду, наберите exit для выхода из программы. Установка сервера
закончена. Теперь нам нужно настроить сервер для использования.
2.3 Настройка jabberd-сервера
Чтобы настроить сервер, нам придется перейти в католог jabberd:
cd /usr/local/etc/jabberd/
Затем мы должны подредактировать (от рута) файл sm.xml:
* Откройте sm.xml в вашем любимом текстовом редакторе
* Измените значение ID сети с localhost на jabber.yoursite.com,
предварительно убедившись в том, что в настройках сети корректно
указаны параметры подключения к DNS-серверу.
* Найдите раздел 'User Options' и раскомментируйте
тег <auto-create/>. Это позволит незарегистрированным
пользователям самостоятельно регистрироваться в системе.
* Если вы хотите, чтобы уже существующий список пользователей
был доступен всем новым пользователям, раскомментируйте в конце
файла:
<roster>/usr/local/etc/jabberd/templates/roster.xml</roster>.
Скоро мы подойдем к содержанию файла roster.xml.
Закончив редактирование, сохраните sm.xml и покиньте редактор. Теперь
нам нужно поправить файл c2s.xml, поэтому:
* Откройте c2s.xml в вашем любимом текстовом редакторе
* Найдите раздел 'Local network configuration' и измените <id>
с localhost на jabber.yoursite.com
* Сохраните изменения и выйдите из редактора
Настройка сервера завершена. Мы получили базовый jabber-сервер,
позволяющий пользователям регистрироваться в системе и разговаривать
между собой. Однако если мы хотим иметь возможность создавать
чат-румы, нам придется установить дополнительную программу
mu-conference. Это не займет у нас много времени.
2.4 Создание списка пользователей по умолчанию
jabberd дает нам возможность создавать <<шаблонные>> списки
пользователей, так что каждый новый пользователь получает список
по умолчанию. Это может быть очень полезно в случаях, когда
администратор хочет знать наверняка то, что каждый пользователь
получит список всех <<нужных>> людей и ему не придется тратить массу
времени для редактирования этого списка вручную.
Файл шаблона хранится в подкаталоге "templates" и называется
roster.xml. Файл имеет следующий вид:
<query xmlns='jabber:iq:roster'>
<!--
<item name='Buddy Name' jid='JID@Host.domain' subscription='both'>
<group>BuddyGroup</group>
</item>
-->
</query>
Чтобы добавить необходимых пользователей, нужно раскомментировать
тег <item name> и добавить новую строку для каждого пользователя.
Например, если вы хотите добавить в список по умолчанию меня и если
бы мой JID (Jabber ID) был [26]
Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
, то вход
для пользователя с моим именем выглядел бы так:
<item name='Suramya' jid='
Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
' subscription='both'>
<group>Support</group>
</item>
Поле групп указывает клиенту, в какой группе предполагается хранить
каждую учетную запись. В этом случае учетная запись пользователя
Suramya хранится в группе "Support". Все записи должны быть заключены
между тегами <query> </query>, так что полный файл с единственным
пользователем выглядел бы так:
<query xmlns='jabber:iq:roster'>
<item name='Suramya' jid='
Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
' subscription='b
oth'>
<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> перед строкой 'secret'
* Измените строки 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 &
Источник: X-news.ru

Странный темный шар около Солнца
В США разработано новое оружие: "луч боли" для разгона митингов
"Корабль пришельцев" у Солнца оказался торнадо
Михаил Горбачев уснул во время саммита нобелевских лауреатов
Представлять Россию на конкурсе «Евровидение-2012» будет коллектив из Удмуртии
Ученые нашли в глубинах космоса планетарную систему ранних времен Большого взрыва
В Великобритании запретили на рабочем месте носить кресты
Обзор нового планшета от Apple
Сьюзен Эман: к 42 годам я хочу весить 725 кг
Врач Лиза Кадди из сериала "Доктор Хаус" снялась обнаженной в рамках участия в кампании РЕТА
10-летняя девочка из Колумбии родила ребёнка
Эпизодические роли Сильвестра Сталлоне
В Британии место в очереди на новый iPad продается через eBay
Новинка от Sony - Xperia S
Призывать в армию собираются без повесток
Красной «изюминкой» на открытии Женевского автосалона стал Lamborghini Aventador J
Вирусный ролик "добавить драму" привлек внимание 22 миллионов человек
Лучшие места для пикника в Москве
Около 100 редких фотографий Мэрилин Монро выставят на аукцион
Израильские ученые изобрели вакцину от рака









