=====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). 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 ===== 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 : {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, []} ]}. 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 A la question "Common Name" il est impératif de rentrer votre nom de domaine Common Name (eg, YOUR name) : mdl29.net 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