Paramétrage Squid pour Jabber local

Squid (software)
Image via Wikipedia

Nous avons vu hier comment mettre en place un serveur Jabber personnel. Si cela fonctionne parfaitement pour les clients sur internet i.e. à l’extérieur du réseau local, les clients locaux doivent comme c’est souvent le cas passer par un proxy (ex: control parental). Un paramétrage de ce dernier est alors nécessaire.

Le proxy utilisé est Squid. Il est configuré comme proxy pour tout le système mais non transparent. L’accès à Jabber depuis le réseau local nécessite donc soit un réglage du proxy. soit que le client Jabber outrepasse le réglage proxy. Sous Ubuntu 11.04 cette dernière méthode est possible avec Pigdin mais pas avec Empathy qui est le client de messagerie instantané officiel.

Nous allons voir comment dire à Squid d’autoriser les accès au serveur Jabber local. Dans les fichier /etc/squid3/squid.conf on déclare une acl pour le port Jabber:


acl JABBER_PORT port 5222

Comme on veut limiter les accès à un serveur jabber particulier on doit également déclarer une acl pour cette destination. Dans le billet précédent le serveur jabber est désigne par jabber.acme.com, d’où:


acl JABBER_SERVER dstdomain jabber.acme.com

Maintenant il suffit d’autoriser les accès vers ce serveur via ce port

http_access allow JABBER_SERVER JABBER_PORT

Enfin redémarrer le proxy pour charger la nouvelle configuration:


sudo service squid3 restart

Serveur de messagerie instannée personnel

This is the Jabber light bulb.
Image via Wikipedia

Dans un billet précédent, Serveur mail personnel, nous avons vu comment disposer de son propre serveur de messagerie. Cela nous permet d’être autonome et de ne pas dépendre de son FAI ou d’un fournisseur de messagerie tel que google gmail. Nous allons maintenant mettre en place une serveur de messagerie instantanée qui pourra être utilisé à la fois sur le réseau local et internet.

Le choix du serveur met en lice le protocol IRC et Jabber. Notre choix se porte sur Jabber pour son l’extensibilité. Nous allons maintenant détailler l’installation de Jabber.

Dans Ubuntu 11.04 jabber est présent dans le dépôt officiel. Nous portons notre choix sur la dernière version: la branche 2 de jabber. Dans la liste des paquets il faut sélectionner jabber2. Une fois l’installation effectuée, nous allons paramétrer jabber. Cela consiste à:

  1. créer la base de données dans laquelle jabber stocke les messages et les informations sur les utilisateurs
  2. spécifier la connexion à la base de données
  3. ouvrir le mécanisme de création de compte

Nous utilisons MySQL comme base de données. Il faut commencer par créer la base (schéma) disons jabberd2. Pour cela il suffit de lancer un script distribué avec Jabber.

cd /usr/share/doc/jabberd2

Dans Ubuntu le sript est compressé, on va l’extraire:

gunzip db-setup.mysql

Puis on execute le scrip en faisant:

mysql -u root -p
mysql> . db-setup.mysql

Puis il faut créer l’utilisateur jabberd2. Pour cela nous utiliser MySQL Administrator qui permet de faire cette tâche via une IHM. Dans l’onglet Privilèges il faut donner à l’utilisateur jabberd2 les droits sur le schema jabberd2. Il a besoin de faire des INSERT, SELECT, UPDATE,DELETE.

Nous allons maintenant indiquer à Jabber de se connecter à la base MySQL ainsi préparée.

Pour le stockage des messages, dans le fichier /etc/jabberd2/sm.xml vérifier que le nœud xml /storage/driver vaut bien mysql. Dans ce même fichier aller dans le noeux xml /mysql/pass pour indiquer le mot de passer qui a été choisi pour l’utilisateur jabberd2.

Pour l’authentification, dans le fichier /et/jabberd2/c2s.xml il faut faire les même manipulations que pour sm.xml.

Le serveur jabber est maintenant bien connecté à la base de données. Il nous reste à lui donner une identité qui lui permet d’être reconnu sur internet. Pour cela nous devons indiquer dans le fichier /etc/jabberd2/sm.xml spécifier l’id du serveur dans le noeux xml /sm/id. Par exemple si le serveur est accéssible par le nom jabber.acme.com, il faudra mettre cette valeur comme identifiant. Ainsi les utilisateurs gérés par ce serveur auront des identifiants de la forme toto@jabber.acme.com.

Nous allons maintenant activer la création de compte pour le public. Cette section n’est utile que si on souhaite permettre la création de compte depuis un client jabber. Dans le fichier /etc/jabberd2/c2s.xml il faut également indiquer l’identifiant du serveur dans le noeud xml /c2s/local/id vaut bien

 <id register-enable='true'>jabber.acme.com</id>

Et que la création de compte est bien autorisé au niveau du backend de base de données

<authreg>
    <!-- Dynamic authreg modules path -->
    <path>/usr/lib/jabberd2</path>

    <!-- Backend module to use -->
    <module>mysql</module>
    <register>
      <enable/>
    </register>

Une dernière étape consiste à ouvrir le pare-feu ou rediriger les ports utilisés par Jabber vers la machine hôte cachée derrière la box du FAI. Pour cela il faut ouvrir les ports suivants : 5222, 5223 et 5269.

Il suffit maintenant de relancer le service:

sudo service jabberd2 restart

et d’utiliser un client Jabber pour créer son propre compte.