LINUX-BG   Адрес : http://www.linux-bg.org
Jabber (XMPP) сървър под Debian Squeeze
От: SmashThePain
Публикувана на: 28-09-2012
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=449591378
XMPP (Extensible Messaging and Presence Protocol) или както е оригиналното име Jabber, е протокол за моментални съобщения и съобщения за състояние, оформен като свободен стандарт, базиран на XML. Има различни видове XMPP сървъри за Линукс. В тази статия ще ви запозная с инсталацията и конфигурацията на jabberd14 под Debian 6.0 Squeeze.

За да осъществите всички стъпки по инсталацията на XMPP сървър, ще ви трябва малко време и root терминал.

Първата стъпка е инсталирането на jabber демона:

apt-get install jabber

Текущата версия в хранилищата на Debian е 1.6.1.1. След като го инсталирате, вече трябва да имате работещ Jabber сървър.

Първата и основна стъпка е да се запознаете с конфигурационите файлове на сървъра. Основните файлове са в директорията /etc/jabber. Конфигурацията на сървъра се осъществява чрез файла /etc/jabber/jabber.xml.
Стойностите за стартиращите параметри на jabberd се намират във файла /etc/default/jabberd14.
Идеята на този файл е да се редактират параметрите на демона, без да се пипа в init скриптовете.

Със задаването на името на сървъра започва същинската конфигурация.
Отворете с любимия редактор /etc/jabber/jabber.xml и намерете:

 <host><jabberd:cmdline 
 flag="h">localhost</jabberd:cmdline></hos
 t>
 
На мястото на localhost поставете избраното от вас име.

За да работи правилно сървъра е необходимо да промените и hostnamе-a в /etc/default/jabberd14. Редактирайте стойността на променливата:

HOSTNAME=localhost

След като направите описаните конфигурации е време да проверите работата на сървъра.
Първо е необходимо да рестартирата jabberd, /etc/init.d/jabberd14 restart.

XMPP сървъра по подразбиране следи за свързвания на порт 5222. Тъй като XMPP протокола е отворен и е базиран на XML е много лесно да се комуникира с Jabber сървъра през telnet.

telnet localhost 5222

След като сте се свързали със сървъра изпратете:

  <stream:stream
   to='localhost'
   xmlns='jabber:client'
   xmlns:stream='http://etherx.jabber.org/streams'>
 

На мястото на localhost поставете името на вашия host. След това изпратете:

 <iq id='reg1' type='get'>
   <query xmlns='jabber:iq:register'/>
 </iq>
 

Ако всичко е наред сърърът ще отговори с необходимата информация за регистриране на нови потребители. Ако възникне грешка, убедете се че сте конфигурирали правилно името на сървъра.

След тази стъпка отворете любимия си Jabber клиент като Pidgin например и създайте нов потребител.
На този етап е трябва да конфигурирате клиента да използва криптиран канал, само ако е наличен. Също и да разрешите оторизирането, чрез чист текст.
След като влезете в акаунта си и XMPP сървъра ви приветсва с добре дошли, можете да изпращате съобщения до другите потребители на вашия сървър.
Например може да решите да изпратите съобщение до потребителя foo@hostname. Хубаво е да знаете, че съобщенията, които ще разменяте с foo, са лесна плячка за хората, които подслушват трафика ви. Тоест, цялата комуникация между вас и foo не минава през криптиран канал.
За да се убедите в това:

tcpdump -A -i eth0 port 5222

Сега може да наблюдавате трафика, който минава през вашия XMPP сървър. Както ще забележите всички съобщения, които се изпращат вие можете да ги прочетете без никакви пречки. Същото могат да направят и хората, които подслушват нечия мрежа, през която се изпращат съобщения към вашия Jabber сървър.

За щастие Jabber демона подържа интеграция на SSL сертификати. С помощта на такъв сертификат, трафикът между клиентите и вашия сървър ще бъде криптиран.
Препоръчителния вариант за издаване на SSL сертификат е да бъде издаден от оторизирана организация. При подписаните сертификати, вашите потребители ще бъдат обезопасени допълнително и няма да са податливи на атаки, чрез фалшифициране на сертификата.
Издаването на такъв сертификат не е много евтино и едва ли е по джоба на всеки потребител. Поради тази причина, в текущата статия, ще подпишем собственоръчно сертификат с помощта на OpenSSL.

Първата стъпка е генериране на частен ключ:

openssl genrsa -out jabber.pem

С помощта на този ключ, може да генерирате и сертификата:

openssl req -new -x509 -key jabber.pem -out jabber- cert.pem -days 1095

Променете групата на ключа и сертификата, така че Jabber демона да има достъп до тях:

chown root:jabberd jabber.pem
chown root:jabberd jabber-cert.pem


След като вече сме генерирали сертификата и частния ключ е време да конфигурираме сървъра да ги използва. Отворете /etc/jabber/jabber.xml и намерете <tls>.
След него въведете следната конфигурация:

<key id='*' type='chain' private- key='/etc/jabber/jabber.pem'>/etc/jabber/jabber- cert.pem</key>

Рестартирайте сървъра и конфигурирайте Jabber клиентите да използват SSL/TLS криптиране, както и одобрете генерирания от нас сертификат.
Накрая докато си пишете с третото Ви гадже, може да се убедите, че останалите няма как да подслушват връзката:

tcpdump -A -i eth0 port 5222


<< Интервю на „Линукс за българи“ с Хюсеин Исмаил | Как работи DNS, част 1 - Resolvers и Cache сървъри. >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 0 wallclock secs ( 0.16 usr + 0.04 sys = 0.20 CPU)