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édentesRévision précédente
Prochaine révision
Révision précédente
braveo:docinstallejabberd [2014/05/20 19:57] arnaudrbraveo:docinstallejabberd [2022/09/04 21:02] (Version actuelle) – modification externe 127.0.0.1
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 
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki