Installation d'un serveur de messagerie instantanée Jabber
Cet article est une variante de l'article original paru dans le numéro 25 (Août 2003), du magazine Planète-Linux.
Jabber est un protocole de communication XML développé sous l'égide de la Jabber Software Foundation. Un protocole, c'est un "langage" particulier permettant à des ordinateurs de communiquer entre eux Jabber est plus particulièrement développé pour la messagerie instantanée, et c'est un protocole libre (licence GPL/JOSL). Comme ses principaux concurrents privés (AIM, ICQ, MSN, Yahoo), il permet de connaître et de faire connaître votre état de présence sur le réseau Internet et d'envoyer ou de recevoir des messages instantanément. Si vous n'êtes pas connecté, vos messages sont stockés et distribués dès que vous revenez en ligne.
L'intérêt de Jabber ? il y en a plusieurs. Le protocole Jabber est libre, public, ouvert et basé sur un langage connu (XML), gage de pérennité et de développement futur. Il est et restera non payant. Il permet donc de créer des serveurs extensibles (ajout d'une brique au serveur), décentralisés (création de son propre serveur) et sûr (sans espion logiciel, avec cryptage SSL). Il n'est par contre pas nativement multi-protocole, mais des passerelles vers les autres services de messagerie instantanée existent, à installer en complément du serveur de base.
Outre le serveur de messagerie instantanée Jabber, il existe de nombreux autres serveurs utilisant le protocole Jabber. WPJabber est une alternative libre à Jabber, tandis que le site http://www.jabber.com diffuse un des nombreux serveurs sous licence payante et propriétaire. Un bref comparatif des serveurs existant est disponible ici. Le choix est donc vaste et devrait permettre de couvrir vos besoins : de Windows à Solaris, en passant par OS X, intégrable avec une base de données MySql, Oracle ou LDAP, vous trouverez forcément une version publique ou commerciale du serveur Jabber qui vous conviendra.
Enfin, pour se connecter à votre serveur, une multitude de clients existent, en licence libre ou propriétaire : on peut citer Gabber, Gaim et Psi sous Linux, Exodus sous Windows.
L'article qui suit devrait vous permettre d'installer un serveur de messagerie instantanée Jabber (version 1.4.2), soit à partir des sources, soit à partir des paquetages rpm, sur un serveur Mandrake 9.1. Mais le principe est identique pour toute distribution. Le hostname du serveur sera jabber.masociete.com et l'adresse IP 192.168.0.1.
Le matériel requis dépend du nombre de personnes qui vont se connecter à votre serveur : un système Linux équipé d'un processeur de type Pentium avec 512 Mo de Ram peut supporter de 100 à 1000 utilisateurs, avec un taux de charge maximum de 50%. La bande passante nécessaire est de 15 bits par seconde par utilisateur connecté Attention, sans recompilation, Linux n'accepte pas plus de 1024 connexions simultanées .
Rappel : si votre distribution contient un paquetage pour jabber, préférez utiliser ce paquetage plutôt que les sources. Certains puristes prétendrons qu'utiliser les sources c'est l'esprit Linux, mais ce sont surtout des problèmes de dépendances non gérées, des choix par forcément simple à faire sur l'utilisation de telle ou telle fonctionnalité du logiciel que l'on désire compiler.
Pour vérifier que votre distribution contient un paquetage pour jabber, il faut utiliser l'outil de gestion de paquetage de celle-ci. Par exemple :
Votre distribution contient aussi presque surement un outil graphique pour obtenir cette information. Pour plus d'information sur ces questions, consulter cette documentation. |
Se logger comme root.
Récupérer la source du serveur Jabberd à l'adresse suivante : http://jabberd.jabberstudio.org/downloads/jabber-1.4.2.tar.gz
et la copier dans le répertoire /usr/local
Décompresser le fichier source :
Renommer le répertoire jabber-1.4.2 :
Récupérer le code source de openssl (openssl-0.9.7b.tar.gz) à l'adresse suivante : http://www.openssl.org. Et la copier dans le répertoire /usr/local. Décompresser le fichier source :
Renommer le répertoire openssl-0.9.7b :
Changer de répertoire :
Compiler openssl (Perl5 doit notamment être installé) :
Changer de répertoire :
Installer le serveur jabber, avec prise en charge du cryptage de la connexion ssl :
Vérifier que ssl a bien été pris en compte. Les premières lignes du fichier sortie.txt doivent contenir :
Une erreur existe dans le fichier résultant platform-settings, qu'il faut corriger. Editer le fichier avec vi par exemple :
Repérer la ligne :
Et la transformer en :
Faire la même modification pour la ligne CCFLAGS. Taper alors :
Et c'est terminé, votre serveur de messagerie instantanée est installé (enfin presque...) !
L'essentiel de la configuration du serveur s'effectue en intervenant sur le fichier /usr/local/jabber/jabber.xml (ou /etc/jabber/jabber.xml si vous avez utilisé un paquet Mandrake). Avant toute modification, il est judicieux de faire une copie de secours du fichier original
Ouvrir le fichier jabber.xml et modifier la ligne :
en remplaçant localhost par votre nom de domaine (jabber.masociete.com par exemple), ou par l'adresse IP de votre serveur Jabber (déconseillé). Si vous créer un serveur jabber interne, sans lien avec internet, vous pouvez commenter cette ligne :
C'est la commande permettant de contrôler automatiquement la présence de mise à jour sur le serveur jabber.org. Configurer alors le répertoire destiné à stocker les fichiers de profils des utilisateurs :
en remplaçant jabber.masociete.com par le nom que vous avez indiqué ci-dessus à la place de localhost dans la balise <host> du fichier jabber.xml. Démarrez Jabber et tester son fonctionnement sans cryptage ssl (voir rubrique [#demarrer-arreter Démarrer/Arrêter le serveur]). Si tout fonctionne normalement, on peut passer à la suite.
Il faut maintenant créer la clé de cryptage SSL. Rester dans le répertoire /usr/local/jabber et repérer l'emplacement de l'éxécutable openssl :
Il réside normalement dans le répertoire /usr/bin/openssl. C'est ce chemin qui devra figurer dans la première ligne du fichier keygen.sh.
Créer un fichier keygen.sh :
et taper le code suivant :
Enregistrer et rendre exécutable ce fichier :
Exécuter ce fichier :
Répondre aux questions posées. A la fin de l'éxécution, vous devez trouver dans le répertoire /usr/local/jabber un fichier key.pem. Tester alors le mode ssl :
en remplaçant 192.168.0.1 par l'adresse ip de votre serveur. Vous devez recevoir une réponse du type :
Ouvrir le fichier /usr/local/jabber/jabber.xml et valider la prise en charge du mode SSL en repérant la ligne :
et en ajoutant la ligne suivante à la suite :
De même, repérer la ligne :
Redémarrez le serveur et tester avec cryptage ssl (voir rubrique [#demarrer-arreter Démarrer/Arrêter le serveur]).
Si compiler les sources vous paraît trop compliqué, sous Mandrake 9.1 et KDE 3.1, il suffit d'utiliser l'interface graphique (Configuration / Paquetages / Installer des logiciels). Le paquetage actuel est jabber-1.4.2a-6mdk.i586.rpm. Le fichier principal de configuration est alors /etc/jabber/jabber.xml. Les seules modifications à effectuer sont celles indiquées ci-dessus concernant ce fichier. La clé SSL est générée automatiquement.
Si vous avez installé Jabber depuis les sources (fichier tar.gz), pour démarrez le serveur, tapez :
Il y a un mode debug :
Si vous avez installé Jabber à partir du fichier rpm, pour démarrer/arrêter/redémarrer, votre serveur Jabber, tapez :
et le mode "debug" (option -D) :
Pour vérifier que le serveur Jabber est effectivement en service, tapez :
Vous devez obtenir un résultat ressemblant aux deux lignes suivantes :
où jabber.masociete.com est remplacé par le hostname de votre serveur.
Le serveur jabber utilise les ports 5222 (connexion normale avec le client), 5223 (connexion sécurisée avec le client) et 5269 (connexion entre serveurs). En tapant :
vous devez obtenir la ligne suivante, qui vous indique que le serveur Jabber écoute le port 5222 : :
De même pour 5223 et 5269.
Pour gérer le démarrage, vous pouvez utiliser chkconfig :
Il existe plusieurs briques additionnelles au serveur jabber de base : mu-conference (conférence multi-utilisateurs), jud (Jabber User Directory : répertoire des utilisateurs), et les passerelles pour les utilisateurs de AIM, ICQ, MSN et Yahoo.
Les paquetages sont distribués avec la Mandrake 9.1, et peuvent donc être installés facilement (Configuration / Paquetages / Installer des logiciels).
Il faut ensuite les déclarer dans le fichier jabber.xml : c'est généralement expliqué dans le fichier README du paquetage (pour savoir ou il est : rpm -ql nom_du_paquetage) et le fichier jabber.xml est abondamment commenté.
L'exemple suivant s'applique au paquetage jabber-jud. Une fois le paquetage installé, il existe un fichier jud.so dans le répertoire /usr/lib/jabber/jud
Pour activer ce service, il faut insérer les lignes suivantes dans le fichier jabber.xml, dans la zone où sont défini les services :
Et à la place du jud existant, qui déclare l'annuaire du serveur jabber.org (users.jabber.org), dans la zone <browse> :
Redémarrez jabber : le service d'annuaire devrait maintenant exister.
Depuis Gabber, il faut choisir Actions/Consultations des agents IM pour s'inscrire dans l'annuaire des utilisateurs locaux de jabber.masociete.com
Liste des extensions serveurs :
Pour une utilisation en Intranet, sans communication avec l'extérieur, il faut réaliser les opérations suivantes :
Votre serveur ne peut alors plus communiquer avec l'extérieur. Pour des raisons de sécurité, il est important de désactiver l'authentification par mot de passe en clair : commentez la ligne <mod_auth_plain> <mod_plain>. N'oubliez pas de redémarrer le serveur jabber chaque fois que vous effectuez une modification du fichier jabber.xml (service jabber restart)
Pour configurer facilement votre serveur, éventuellement depuis un poste distant, il est judicieux d'utiliser webmin. Si ce n'est pas déjà fait, installer Webmin puis, depuis un navigateur Internet, rentrez l'adresse https://198.168.0.1:10000 (toujours en remplaçant 192.168.0.1 par l'adresse de votre serveur), et se connecter en tant que root.
Il faut ensuite choisir l'onglet "serveurs" et trouver l'icône "Jabber IM Server". L'interface graphique permet la définition de nombreux paramètres :
Il est possible de tester le bon foctionnement de Jabber via Telnet. Ouvrir une session telnet :
Le serveur doit vous répondre :
Taper les instructions suivantes :
Vous devez recevoir immédiatement une réponse :
Demander alors les informations nécessaires pour enregistrer un compte :
Vous devriez recevoir quelque chose du type :
Envoyer alors vos informations d'enregistrement :
Si tout fonctionne correctement, vous devez recevoir :
Si le répertoire de spool (/usr/local/jabber/spoll/jabber.masociete.com) n'est pas configuré correctement :
Si votre nom d'utilisateur existe déjà :
Avant de vous logger sur votre compte nouvellement créé, demander au serveur quelles infos sont nécessaires :
Le serveur doit vous renvoyer les informations suivantes :
Connectez-vous alors à votre compte :
Le serveur doit vous répondre :
Indiquer au serveur que vous êtes en ligne :
Le serveur doit vous envoyer immédiatement un message de bienvenue (paramètrable dans le fichier jabber.xml) :
Refaire la même démarche depuis un autre poste distant, avec un autre nom d'utilisateur, puis essayer d'envoyer un message à votre premier compte :
Pour quitter correctement vos sessions telnet :
Si tout a fonctionné correctement, vous pouvez installer un client (Gabber, Gaim, Psi, ...).
D'autres fichiers contiennent des informations importantes :
En cas de problème, ou pour obtenir plus de renseignement :
@ Retour à la rubrique Réseau et sécurité
Copyright © 01/10/2003, Laurent Dubettier-Grenier
![]() ![]() ![]() ![]() |
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |