Maniatux's Blog

Welcome to the internet

Installer un serveur XMPP (Jabber)

Rédigé par Xavier - -

Note : Je recommande l'utilisation de Prosody, que je ne connaissais pas quand j'ai rédigé cet article.

Bon, après avoir créée notre propre serveur web, pourquoi pas faire un serveur XMPP par la suite?

xmpp

Logiciels:

  • debian GNU/Linux
  • ejabberd
  • iptables

Niveau requis

  • Utiliser la "ligne de commandes"
  • Savoir se connecter à XMPP avec un logiciel extérieur (Pidgin...)
  • Savoir configurer iptables

Choix du serveur:

Il existe beaucoup de serveurs XMPP (liste wikipédia) mais certains sont propriétaires, d'autres en java... ce qui ne nous intéresse pas vraiment. Personnellement j'ai retenu ejabberd, qui est libre et pas très lourd en fonctionnement.

Installation

Pour debian lenny, la distribution sur laquelle nous travaillons:

# apt-get install ejabberd

Il est disponible dans les dépôts.

Configuration

Le serveur est installé mais il faut faire un petit tour dans la configuration:

# nano /etc/ejabberd/ejabberd.cfg

Commencez par trouver les lignes:

%% Admin user
{acl, admin, {user, "", "localhost"}}.

Sur la seconde ligne il y a deux apostrophes seules, entre les deux il faut rajouter le nom de l'utilisateur qui sera admin. Par exemple "admin". Remplacez "localhost" par le nom de domaine de votre serveur. Dans mon cas, ça donne:

%% Admin user
{acl, admin, {user, "admin", "opensourcien.blogdns.org"}}.

Juste en dessous, trouvez:

%% Hostname {hosts, ["localhost"]}.

Là aussi, modifiez "localhost" par votre nom de domaine. Beaucoup plus bas, trouvez les lignes:

%% language: Default language used for server messages.
%%
{language, "en"}.

Et remplacez bien sûr par "fr". Créez ensuite l'utilisateur qui aura les privilèges administrateur, et que l'on a défini dans la configuration. Utilisez la commande suivante:

# ejabberdctl register NOM DOMAINE mot_de_passe

Dans notre cas cela donne:

# ejabberdctl register admin opensourcien.blogdns.org PASSWORD

Relancez votre serveur:

# /etc/init.d/ejabberd restart

Parefeu

La plupart du temps, sur un serveur, vous aurez un parefeu. Ejabberd a naturellement besoin que certains ports soient ouverts: 5222, 5223, 5269 et 5280. Voici les règles iptables:

iptables -A INPUT -i eth0 -p tcp --dport 5222 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 5223 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 5269 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 5280 -j ACCEPT

Si vous utilisez un script (comme dans le tuto pour le serveur web), ajoutez-y ces lignes.

Se connecter

En utilisant un client XMPP comme Pidgin, Psi, Kopete etc... vous devriez maintenant pouvoir vous connecter à votre serveur en utilisant admin@opensourcien.blogdns.org (dans notre exemple).

Dans votre navigateur web entrez votre adresse (opensourcien.blogdns.org dans ce cas) suivi de :5280/admin pour pouvoir accéder à l'administration de votre serveur XMPP. Le nom d'utilisateur est l'adresse de l'admin (admin@opensourcien.blogdns.org dans ce cas) suivi du mot de passe que vous avez choisi.

Sécurité

Vous pouvez ou non autoriser les utilisateurs à se créer des comptes sur votre serveur. Par défaut, c'est interdit. Pour modifier ça, trouvez les lignes suivantes:

%% No username can be registered via in-band registration:
%% To enable in-band registration, replace 'deny' with 'allow'
% (note that if you remove mod_register from modules list then users will not
% be able to change their password as well as register).
% This setting is default because it's more safe.
{access, register, [{deny, all}]}.

Si vous voulez autoriser cette fonctionnalité remplacez "deny, all" par "allow, all"

Plus d'infos

Classé dans : Sysadmin - Mots clés : aucun