Prosody serveur xmpp
Prosody est un serveur Jabber/XMPP et qui est écrit en LUA . L’installation et la configuration est plutôt simple .
Comme d’habitude on se tape un bon apt
echo "deb http://packages.prosody.im/debian stable main" >> /etc/apt/sources.list apt-get update apt-get install prosody-0.9
Modifier le fichier prosody.cfg.lua
admins = { "[email protected]" } authentication = "internal_hashed" Include "conf.d/*.cfg.lua"
- Administrateur du serveur . Biensur vous pouvez en mettre plusieurs
- Authentification pour crypter celui-ci . Car par défaut le mot de passe est en clair …
- Include : Directory pour les vhosts
Comme pour apache nous allons définir les virtuals hosts
VirtualHost "domain.com" enabled = true -- Remove this line to enable this host ssl = { key = "/etc/prosody/certs/domain.com.key"; certificate = "/etc/prosody/certs/domain.com.cert"; } -- Set up a MUC (multi-user chat) room server on conference.example.com: Component "conference.robertain.com" "muc" restrict_room_creation = true modules_enabled = { "compression"; -- Enable mod_compression "privacy"; -- Salon Privee "announce"; --Broadcast message "saslauth"; "roster"; "tls"; "dialback"; "register"; } allow_registration = true min_seconds_between_registrations = 600
- VirtualHost : Nom de votre VirtualHost
- Enable : What The Fuck
- SSL : #OMG
- Component : Permet de définir une MUC
- Module_enable : Comme son nom l’indique . Vous en avez aussi dans la configuration globale
- Allow_registration : Autoriser les utilisateurs à créer des comptes sur votre serveur . Le module register doit être activé
- Restrict_room_creation : Un utilisateur ne peut pas créer une room. Plus bas nous verrons que cela pose problème
Maintenant il serait bien de pouvoir tester tout ca . Mais il faut bien créer au moins un utilisateur
prosodyctl adduser guest
Démarrer prosody
prosodyctl start
Pour vous connecter à votre serveur . Vous pouvez utiliser Gajim sinon pour les fainéants il y a le site de jappix.
Biensur vous avez un firewall 🙂 .
#XMPP Prosody /LUA $IPT -A INPUT -i ${IFPUB} -p tcp --dport 5222 -j ACCEPT $IPT -A INPUT -i ${IFPUB} -p tcp --dport 5269 -j ACCEPT $IPT -A INPUT -i ${IFPUB} -p tcp --dport 5280 -j ACCEPT
Les informations des utilisateurs sont dans /var/lib/prosody/ . Si vous avez des problèmes de mémoire 🙂 .
cd /etc/prosofy/ ln -s /var/lib/prosody/ accounts
Comme dit plus haut le paramètre « Restrict_room_creation » pose quelques problèmes. Dans mon cas j’interdis un utilisateur de créer une room afin d’empêcher le flood. L’inconvénient c’est que je souhaite avoir un salon permanent , c’est à dire un salon en permanence ouvert.
Dans la conf actuel seul l’admin peut créer un salon. Si un admin ne crée pas le salon [email protected] il est donc impossible pour un utilisateur d’accèder à ce salon c’est quand même dommage.
La solution que j’ai trouvé est depuis une dedibox avec le couple screen + irssi d’avoir un admin en permanence connecté .Rien de bien compliqué
apt-get install screen irssi-plugin-xmpp irssi
Je ne ferais pas un tuto sur screen. Ouvrir une fenetre screen
screen -S serveur
Puis lancer irssi
irssi
Maintenant il faut loader le module xmpp et passer à la configuration
/load xmpp /xmppconnect -host robertain.com [email protected] MotDePasse /join [email protected]
Super nous avons un salon permanent . Il doit exister une façon de le faire depuis prosody mais je n’ai pas réussi.
Sources
- http://doc.ubuntu-fr.org/prosody
- http://cybione.org/~irssi-xmpp/
- http://prosody.im/
Merci pour ce petit tuto. Et petite question en passant? Est-il possible de coupler les comptes xmpp avec une installation d’un serveur mail postfix.
Par exemple moi j’ai un serveur sur lequel j’ai les différents comptes emails dans une base de donnée mysql. J’aimerais pouvoir permettre à mes utilisateurs d’utiliser le serveur xmpp avec leurs propres credentials. Comment on peut mettre ça en place?
Merci d’avance
Si tu veux que les utilisateurs qui ont un compte mail sur ton serveur puissent utiliser ton serveur XMPP .
Tu pourrais utiliser roundcube si ce n’est pas déjà le cas 🙂 et avec le plugin « Jappix Roundcube » ça devrait le faire .
Mais j’ai pas testé .
On vient de me chuchoter, il y a un bot xmpp écrit en python :
http://www.darkcoding.net/software/jimbo/
Hello, il y a une option dans le client psy pour rendre une room permanente.
J’ai vite regardé coté serveur, ca crée un fichier persistent.dat dans /var/lib/prosody/conference.example.com/.
Le contenu est :
return {
[« [email protected] »] = true;
}
Il y a egalement un second fichier room_name.dat dans /var/lib/prosody/conference.example.com/config/.
Et dans la section [« _data »] : [« persistent »] = true;
Bonjour ,
Merci pour l’information je regarderais ça 🙂 .
Salut,
Merci pour le tuto surtout pour la création du salon, je te conseillerai de rajouter si ce n’est pas le cas :
c2s_require_encryption = true
s2s_require_encryption = true
Dans prosody.cfg.lua pour chiffré les échange de client à serveur et de serveur à serveur.
@+