vendredi 30 mai 2008

Jabberd 2.x sur Linux Fedora

Pourqoi nous choisissons le Jabberd 2.x?

Cette version apporte de nombreuses améliorations, notament le fait que le serveur utilise maintenant une base de données (MySQL,PgSQL,...) afin de stocker les informations des utilisateurs. Jabberd 2.X a été entièrement repensé afin d'être plus modulaire. D'après le site jabber.org, 77% des fonctionnalités du protocole jabber ont été implementées.

Préconfiguration

1.Téléchargement le package "libidn"

wget download.fedora.redhat.com/pub/fedora/linux/releases/7/Everything/x86_64/os/Fedora/libidn-0.6.8-4.x86_64.rpm (en 64 bits)

ou

wget download.fedora.redhat.com/pub/fedora/linux/releases/7/Everything/i386/os/Fedora/libidn-0.6.8-4.i386.rpm (en 32 bits

2.Installation le package "libidn" (par exemple, en 32 bits)

rpmbuild --rebuild libidn-0.6.8-4.i386.rpm

cd /usr/src/redhat/RPMS/i386

rpm -ivh libidn-0.6.8-4.i386.rpm libidn-devel-0.6.8-4.i386.rpm

ou

rpmbuild --recompile libidn-0.6.8-4.i386.rpm

cp -R /var/tmp/libidn-0.6.8-root/* /

PS: Sur Fedora, il a besoin que une seule commande en "yum install libidn"

3.Installation MySQL-shared Library

wget http://downloads.mysql.com/archives/mysql-3.23/MySQL-shared-3.23.58-1.i386.rpm

rpm -ivh MySQL-shared-3.23.58-1.i386.rpm

4.Configuration l'environnement de Linux

-Pour ajouter un utilisateur au serveur, exécutez la commande suivante en tant que root :

adduser jabber

-Choisissez ensuite un mot de passe pour ce compte à l'aide de la commande suivante :

passwd jabber

-Après avoir changé le mot de passe, nous devons créer un répertoire dans lequel le processus stockera ses journaux et ses pids. Pour ce faire, exécutez les commandes suivantes :

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

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

-Une fois les répertoires créés, changeons l'appartenance des répertoires de façon à ce que l'utilisateur jabber puissent écrire dedans. Exécutez les commandes suivantes :

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

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

Installation et configuration Jabberd 2.x

Nous pouvons télécharger le dernier version de Jabberd 2.X sur la site http://web.archive.org/web/20061010224606/jabberd.jabberstudio.org/2/, mais d'ici nous voulons installer et tester jabberd-2.0s11.

tar zxf http://jabberstudio.rediris.es/jabberd2/jabberd-2.0s11.tar.gz

cd jabberd-2.0s11

./configure --enable-ssl

make

make install

PS: Avant compiler les fichiers d'installation, il nous faut vérifier les compilateurs de Linux suivant qui sont déjà installés :

  1. GNU c compliler
  2. GNU make
  3. autoconf
  4. automake
  5. GNUlib
  6. libtool
  7. libglib2

1.Configuration une base de données MySQL

-Configuration une nouvelle base de données MySQL à laquelle jabberd peut accéder :

mysql -u root -p <>

-Saisissons le mot de passe root de MySQL à l'invite. Ce script crée une nouvelle base de données et la peuple avec les tables nécessaires au serveur jabberd. Une fois que le script se termine, nous devons créer un utilisateur appelé jabberd2 dans MySQL pour permettre à jabberd de manipuler la base de données. Pour ce faire, exécutez la commande suivante :

mysql -u root -p

-Saisissons à présent le mot de passe root à l'invite, et nous obtenons l'invite de commande de MySQL. À cette invite, saisissons la commande suivante :

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

PS: en remplaçant "examplepassword" par un mot de passe de notre choix, puis saisissons "exit" sous terminal pour quitter la script de MySQL.

ou

cd /path_to_jabberd_source/tools


mysql -u root -p


mysql>\. db-setup.mysql


mysql>grant select,insert,delete,update on jabberd2.* to jabberd2@localhost identified by 'secret';


mysql>flush privileges;


mysql>quit

2.Configuration le fichier sm.xml

-Configuration "Hostname" :

<sm>
<id>hostname.domain.name</id>

...

-Suppression les commentaires pour la ligne suivant:

<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>

3.Configuration le fichier c2s.xml

-Configuration "Hostname" :

<local>
<id>hostname.domain.name</id>

...

-Suppression les commentaires pour deux lignes suivant:

<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>


<ssl-port>5223</ssl-port>

PS: Pour modifier un fichier à l'aide de la commande "vi", donc "vi /usr/local/etc/jabberd/sm.xml" et "vi /usr/local/etc/jabberd/c2s.xml" pour modifier les fichiers de sm.xml et c2s.xml.

Création un cryptage SSL

cd /usr/local/etc/jabberd


openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem


openssl rsa -in privkey.pem -out privkey.pem


cat privkey.pem >> server.pem

rm privkey.pem


chown root:jabber server.pem


chmod 640 server.pem

Démarrage le serveur Jabberd 2

su -c "/usr/local/bin/jabberd &" - jabber

Autorisation les portes de sortie

iptables -A INPUT -p tcp -m multiport --dports 5222,5223,5269 -j ACCEPT

PS: la porte 5222 : le client pour connecter le serveur

la porte 5223 : communication entre le client et le serveur par SSL

la porte 5269 : communication entre deux serveurs