Outils pour utilisateurs

Outils du site


braveo:docinstallejabberd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
braveo:docinstallejabberd [2014/05/20 19:57]
arnaudr
braveo:docinstallejabberd [2016/07/19 15:36] (Version actuelle)
Ligne 1: Ligne 1:
 +=====installation du serveur jabber (ejabberd) =====
 +ejabberd est un serveur **Jabber/​XMPP** libre de messagerie instantanée à haute performance.
 +
 +**Qu'​est-ce que veut dire ejabberd ?**
 +
 +Le nom ejabberd vient de Erlang JABBER Daemon. Jabber est l'​ancien nom du protocole XMPP (extensible Messaging and Presence Protocol).
 +
 +
 +
 + ===== Configuration du DNS =====
 +
 +Pour que notre serveur fonctionne correctement,​ il est important de bien configurer
 +le serveur dns (bind).
 +<​code>​
 +
 +jabber IN A 92.xxx.xxx.xxx ​    # ip publique
 +_jabber._tcp.mdl29.net. IN SRV  ​       0 0 5269   ​jabber
 +_jabber._tcp IN SRV 5 0 5269   ​jabber ​
 +_xmpp-server IN SRV 5 0 5269   ​jabber
 +_xmpp-client._tcp IN SRV 5 0 5222   ​jabber
 +</​code>​
 +
 + ===== Installation ​ =====
 + 
 +Pour l'​installation du serveur jabber avec **ejabberd**,​ je vous conseille 2 sites :
 +
 +[[http://​blog.pastoutafait.org/​billets/​installation-serveur-jabber-avec-ejabberd]]
 +
 +[[http://​www.vogelweith.com/​debian_server/​13_jabber.php#​x1-40001]]
 +  aptitude install ejabberd
 +
 +paramétrage du serveur (avec connexion sur le ldap bien sûr) :
 +
 +ça se passe dans le fichier /​etc/​ejabberd/​ejabberd.cfg :
 +<​code>​
 +{loglevel, 5}.
 +{hosts, ["​mdl29.net"​]}.
 +{host_config,​ "​mdl29.net",​ [{auth_method,​ [ldap, anonymous]}]}.
 +
 +
 +{listen,
 + [
 +  {5222, ejabberd_c2s,​ [
 + {access, c2s},
 + {shaper, c2s_shaper},​
 + {max_stanza_size,​ 65536},
 + starttls_required,​ {certfile, "/​etc/​ejabberd/​server.pem"​}
 +                       ]},
 +  ​
 +
 +  %%Ancienne méthode de connexion SSL (obsolète)
 +   ​{5223,​ ejabberd_c2s,​ [
 +                        {access, c2s},
 +                        {shaper, c2s_shaper},​
 +                        {max_stanza_size,​ 65536},
 +                        tls, {certfile, "/​etc/​ejabberd/​server.pem"​}
 +                       ]},
 +
 +
 +{5269, ejabberd_s2s_in,​ [
 +    ​{shaper,​ s2s_shaper},​
 +    ​{max_stanza_size,​ 131072}
 +   ]},
 +
 +
 +%%Passerelle XMPP
 +
 +{{5200, "​127.0.0.1"​},​ ejabberd_service,​ [
 +                                        {access, all},
 +                                        {host, "​xmpp.mdl29.net",​ [{password, "​secret"​}]}
 +]},
 +
 +
 +
 +%%Passerelle identica
 +
 +{{5201, "​127.0.0.1"​},​ ejabberd_service,​ [
 +                                        {access, all},
 +                                        {host, "​identica.mdl29.net",​ [{password, "​secret"​}]}
 +]},
 +
 +%%Passerelle twitter
 +
 +{{5202, "​127.0.0.1"​},​ ejabberd_service,​ [
 +                                        {access, all},
 +                                        {host, "​twitter.mdl29.net",​ [{password, "​secret"​}]}
 +]},
 +
 +%%Passerelle msn
 +
 +{{5203, "​127.0.0.1"​},​ ejabberd_service,​ [
 +                                        {access, all},
 +                                        {host, "​msn.mdl29.net",​ [{password, "​secret"​}]}
 +]},
 +
 +
 +
 +
 + ​{5280,​ ejabberd_http,​ [
 +          ​http_bind,​
 +                         ​http_poll,​
 +                         ​web_admin
 + ]}
 +
 + ]}.
 +{s2s_use_starttls,​ true}.
 +{s2s_certfile,​ "/​etc/​ejabberd/​server.pem"​}.
 +%{auth_method,​ ldap}.
 +{ldap_servers,​ ["​ldap.mdl29"​]}. ​  
 +{ldap_encrypt,​ none}.
 +{ldap_port, 389}.
 +{ldap_rootdn,​ "​cn=admin,​dc=mdl29,​dc=net"​}.
 +{ldap_password,​ "​secret"​}.  ​
 +{ldap_base, "​dc=mdl29,​dc=net"​}.
 +{ldap_uids, [{"​mail",​ "​%u@mdl29.net"​}]}.
 +{ldap_filter,​ "​(objectClass=qmailuser)"​}.
 +{shaper, normal, {maxrate, 1000}}.
 +{shaper, fast, {maxrate, 50000}}.
 +{acl, admin, {user, "​jabbermdl",​ "​mdl29.net"​}}. ​
 +{acl, local, {user_regexp,​ ""​}}.
 +{access, max_user_sessions,​ [{10, all}]}.
 +{access, c2s, [{deny, blocked},
 +        ​{allow,​ all}]}.
 +{access, c2s_shaper, [{none, admin},
 +       {normal, all}]}.
 +{access, s2s_shaper, [{fast, all}]}.
 +{access, announce, [{allow, admin}]}.
 +{access, configure, [{allow, admin}]}.
 +{access, muc_admin, [{allow, admin}]}.
 +{access, muc, [{allow, all}]}.
 +{access, register, [{deny, all}]}.
 +{access, pubsub_createnode,​ [{allow, all}]}.
 +{language, "​fr"​}.
 +{modules,
 + [
 +  {mod_http_bind,​[
 +                   ​{max_inactivity,​ 60}  ​
 +                 ]},
 +  {mod_adhoc, ​   []},
 +  {mod_announce,​ [{access, announce}]},​ % requires mod_adhoc
 +  {mod_caps, ​    []},
 +  {mod_configure,​[]},​ % requires mod_adhoc
 +  {mod_ctlextra,​ []},
 +  {mod_disco, ​   []},
 +  %%{mod_echo, ​  ​[{host,​ "​echo.localhost"​}]},​
 +  {mod_irc, [{access, all}, {default_encoding,​ "​utf-8"​}]},​
 +  %%{mod_irc, ​     []}, 
 +  {mod_last, ​    []},
 +  {mod_muc, ​     [
 +   %%{host, "​conference.@HOST@"​},​
 +   {access, muc},
 +   {access_create,​ muc},
 +   {access_persistent,​ muc},
 +   {access_admin,​ muc_admin},
 +   {anonymous, true},
 +                  {max_users, 100}
 + ]},
 +  {mod_muc_log,​ []},
 +
 +
 +  {mod_offline, ​ []},
 +  {mod_privacy, ​ []},
 +  {mod_private, ​ []},
 +  {mod_proxy65, ​ [
 +   {access, local},
 +   {shaper, c2s_shaper}
 + ]},
 +  {mod_pubsub, ​  [ % requires mod_caps
 +   {access_createnode,​ pubsub_createnode},​
 +                  {ignore_pep_from_offline,​ false},
 +                  {last_item_cache,​ false},
 +                  {max_items_node,​ 1000000},
 +                  {plugins, ["​flat",​ "​pep"​]}
 + ]},
 +  {mod_register,​ [
 +
 +   {welcome_message,​ {"​Bienvenue!",​
 +      "​Bienvenue sur le service jabber. "
 +      "​Pour des informations ​ "
 +      "​http://​www.jabber.org"​}},​
 +  
 +   {registration_watchers,​ ["​jabbermdl@mdl29.net"​]}, ​
 +
 +   {access, register}
 + ]},
 +  {mod_roster, ​  []},
 +  %%{mod_service_log,​[]},​
 +  %%{mod_shared_roster,​[]},​
 +  {mod_stats, ​   []},
 +  {mod_time, ​    []},
 +  {mod_vcard, ​   []},
 +  {mod_version, ​ []}
 + ]}.
 +</​code>​
 +Voilà, seule une personne inscrite dans le ldap peut se connecter sur le serveur jabber.
 +
 +Activer SSL / TLS ( méthode auto-certification ) \\
 +
 +  openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem
 +  openssl rsa -in privkey.pem -out privkey.pem
 +  cat privkey.pem >> server.pem ​
 +
 +
 +<note important>​A la question "​Common Name" il est impératif de rentrer votre nom de domaine
 +Common Name (eg, YOUR name) : mdl29.net</​note>​
 +
 +Création d'un utilisateur de base pour l'​administration
 +  ejabberdctl register nom_user mdl29.net mot_de_passe
 +
 +Suppression d'un utilisateur du roster
 +  ejabberdctl unregister nomducompte mdl29.net
 +Interface web
 +   ​http://​votreserveur:​5280/​admin
 +L'​interface web est très pratique et permet d'​administrer les utilisateurs et le serveur. indiquez le nom d'un compte administrateur,​ de la forme "​nom_user@votredomaine.net",​ ainsi que le mot de passe associé.
 +Il ne reste plus qu'à lancer le serveur jabber :
 +  /​etc/​init.d/​ejabberd start
 +et se connecter dessus.
 +
 +=====La base de données =====
 +Ejabberd supporte un nombre intéressant de base de données. Mais **Mnesia** est la base de données native de ejabberd fournit par le langage Erlang.
 +Il est fortement conseillé de faire des sauvegarde régulière de celle-ci.
 +
 +   * Sauvegarder la base de données
 +
 +   ​ejabberdctl backup mnesiadata ​
 +
 +  * Restaurer la base de données
 +
 +   ​ejabberdctl restore mnesiadata ​
 +
  
braveo/docinstallejabberd.txt · Dernière modification: 2016/07/19 15:36 (modification externe)