Différences entre versions de « Xmpp »
(Page créée avec « <seo title="Serveur XMPP avec Ejabberd" metak="ejabberd,xmpp" /> {|border=1 class="wikitable" ! !! client/serveur !! inter-serveur !! interface web |-align="center" | '''... ») |
|||
Ligne 47 : | Ligne 47 : | ||
= Configuration = | = Configuration = | ||
+ | Le RPM installe deux dossiers dans le répertoire ''/opt'': | ||
+ | *''/opt/ejabberd'' | ||
+ | *''/opt/ejabberd-17.12'' | ||
+ | Le deuxième répertoire va varier en fonction de la version installée. | ||
+ | |||
+ | La première étape consiste à modifier le fichier de configuration de Jabber ''/opt/ejabberd/conf/ejabberd.yml'' : | ||
+ | <div align="center"> | ||
+ | {|border=1 class="wikitable" width=50% | ||
+ | ! lignes à repérer !! transformation | ||
+ | |- | ||
+ | ||- "/opt/ejabberd-17.12/conf/server.pem" | ||
+ | ||- "/opt/ejabberd/conf/server.pem" | ||
+ | |- | ||
+ | ||ca_file: "/opt/ejabberd-17.12/conf/cacert.pem" | ||
+ | ||ca_file: "/opt/ejabberd/conf/cacert.pem" | ||
+ | |- | ||
+ | ||'DH_FILE': "/opt/ejabberd-17.12/conf/dhparams.pem" | ||
+ | ||'DH_FILE': "/opt/ejabberd/conf/dhparams.pem" | ||
+ | |} | ||
+ | </div> | ||
+ | |||
+ | Il faut ensuite positionner le mot de passe pour le compte administrateur. Repérez la ligne : | ||
+ | <pre> | ||
+ | admin: | ||
+ | user: | ||
+ | - "admin@{NOM_DE_LA_MACHINE}" | ||
+ | </pre> | ||
+ | {NOM_DE_LA_MACHINE} est le nom de votre machine, celui qui s'affiche lorsque vous exécutez la commande ''hostname''. | ||
+ | |||
+ | Pour positionner le mot de passe ''password'' utilisez la commande suivante: | ||
+ | <pre> | ||
+ | # ejabberdctl set-password admin {NOM_DE_LA_MACHINE} password | ||
+ | </pre> | ||
+ | |||
+ | = Installation et démarrage du service = | ||
+ | Avant de démarrer le service, il faut placer les exécutables dans le ''PATH'' : | ||
+ | <pre> | ||
+ | ln -fs /opt/ejabberd-17.12/bin/ejabberdctl /usr/bin/ | ||
+ | ln -fs /opt/ejabberd-17.12/bin/erl /usr/bin/ | ||
+ | </pre> | ||
+ | |||
+ | Ensuite, soit votre système repose sur SystemVInit (Centos6) soit il repose sur SystemD (Centos7) | ||
+ | *Pour SystemVInit: | ||
+ | <pre> | ||
+ | # ln -fs /opt/ejabberd-17.12/bin/ejabberd.init /etc/init.d/ejabberd | ||
+ | # chkconfig ejabberd on | ||
+ | # service ejabberd start | ||
+ | </pre> | ||
+ | *Pour SystemD: | ||
+ | <pre> | ||
+ | # ln -fs /opt/ejabberd-17.12/bin/ejabberd.service /etc/systemd/system/ | ||
+ | # systemctl enable ejabberd.service | ||
+ | # systemctl start ejabberd.service | ||
+ | </pre> | ||
+ | = Interface d'administration = | ||
+ | Vous pouvez maintenant utiliser l'interface d'administration de ''Ejabber'' en utilisant un navigateur sur l'URL ''https://IP_SERVEUR:5280/admin'' | ||
+ | [[Fichier:Ejabberd web interface.png|centré|600px]] |
Version du 4 février 2018 à 16:47
<seo title="Serveur XMPP avec Ejabberd" metak="ejabberd,xmpp" />
client/serveur | inter-serveur | interface web | |
---|---|---|---|
Protocole | tcp | tcp | tcp |
Port | 5222 | 5269 | 5280 |
Configuration Iptables | iptables -I INPUT 2 -p tcp --dport 5222 -j ACCEPT | iptables -I INPUT 2 -p tcp --dport 5269 -j ACCEPT | iptables -I INPUT 2 -p tcp --dport 5280 -j ACCEPT |
Introduction
Extensible Messaging and Presence Protocol est un ensemble de protocoles standards ouverts pour l’échange de données. XMPP est également un système de collaboration en quasi-temps-réel et d’échange multimédia par son extension Jingle, dont la voix sur réseau IP (téléphonie sur Internet), la visioconférence et l’échange de fichiers sont des exemples d’applications.
XMPP est constitué d'un protocole TCP/IP basé sur une architecture client-serveur permettant les échanges décentralisés de messages instantanés ou non, entre clients, au format Extensible Markup Language (XML). XMPP est en développement constant et ouvert au sein de l’IETF.
Les serveurs peuvent être privés (en intranet) ou bien publics, c'est-à-dire reliés aux autres serveurs publics via l'Internet (comme chez Facebook). L'ensemble des serveurs publics créent, ce que l'on appelle, le réseau Jabber (ou le réseau XMPP).
Préparation
Dans un premier temps, il faudra avoir une connexion à Internet, utiliser un serveur DNS et désactiver SELinux.
Pour ceux qui auraient manqué des étapes les voici:
Une fois ces étapes effectuées, entrons dans le vif du sujet !
Installation
L'installation est très simple et distingue deux cas de figures :
- glibc < 2.12 → version 17 max
- glibc >= 2.13 → version 18+
Pour savoir, exécutez la commande suivante :
# rpm -qa | grep glibc ... glibc-2.12-1.209.el6_9.2.i686 ...
Sur CentOS 6 c'est la version 2.12 donc on installe ejabberd dans sa version 17 !
Pour télécharger ejabberd, il suffit de se rendre sur la page de téléchargements et de choisir la bonne version.
# yum -y install https://www.process-one.net/downloads/ejabberd/17.12/ejabberd-17.12-0.x86_64.rpm
Configuration
Le RPM installe deux dossiers dans le répertoire /opt:
- /opt/ejabberd
- /opt/ejabberd-17.12
Le deuxième répertoire va varier en fonction de la version installée.
La première étape consiste à modifier le fichier de configuration de Jabber /opt/ejabberd/conf/ejabberd.yml :
lignes à repérer | transformation |
---|---|
- "/opt/ejabberd-17.12/conf/server.pem" | - "/opt/ejabberd/conf/server.pem" |
ca_file: "/opt/ejabberd-17.12/conf/cacert.pem" | ca_file: "/opt/ejabberd/conf/cacert.pem" |
'DH_FILE': "/opt/ejabberd-17.12/conf/dhparams.pem" | 'DH_FILE': "/opt/ejabberd/conf/dhparams.pem" |
Il faut ensuite positionner le mot de passe pour le compte administrateur. Repérez la ligne :
admin: user: - "admin@{NOM_DE_LA_MACHINE}"
{NOM_DE_LA_MACHINE} est le nom de votre machine, celui qui s'affiche lorsque vous exécutez la commande hostname.
Pour positionner le mot de passe password utilisez la commande suivante:
# ejabberdctl set-password admin {NOM_DE_LA_MACHINE} password
Installation et démarrage du service
Avant de démarrer le service, il faut placer les exécutables dans le PATH :
ln -fs /opt/ejabberd-17.12/bin/ejabberdctl /usr/bin/ ln -fs /opt/ejabberd-17.12/bin/erl /usr/bin/
Ensuite, soit votre système repose sur SystemVInit (Centos6) soit il repose sur SystemD (Centos7)
- Pour SystemVInit:
# ln -fs /opt/ejabberd-17.12/bin/ejabberd.init /etc/init.d/ejabberd # chkconfig ejabberd on # service ejabberd start
- Pour SystemD:
# ln -fs /opt/ejabberd-17.12/bin/ejabberd.service /etc/systemd/system/ # systemctl enable ejabberd.service # systemctl start ejabberd.service
Interface d'administration
Vous pouvez maintenant utiliser l'interface d'administration de Ejabber en utilisant un navigateur sur l'URL https://IP_SERVEUR:5280/admin