tuto:ipasserelle:divers:ejabberd_advanced

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
Prochaine révision Les deux révisions suivantes
tuto:ipasserelle:divers:ejabberd_advanced [14/11/2010 23:16]
dani [Authentification LDAP]
tuto:ipasserelle:divers:ejabberd_advanced [19/01/2011 10:30]
dani [Configurer mod_archive]
Ligne 241: Ligne 241:
   ]},   ]},
 </code> </code>
 +
 +===== Configurer mod_shared_roster_ldap =====
 +mod_shared_roster_ldap permet de créer automatiquement un roster pour les nouveaux utilisateurs, basé sur un annuaire LDAP. Pour le configurer, il faut rajouter une section comme ceci dans la partie modules du ficheir ejabberd.cfg:
 +
 +<code>
 +  {mod_shared_roster_ldap,[
 +    {ldap_base, "dc=firewall-services,dc=com"},
 +    {ldap_rfilter, "(objectClass=mailboxRelatedObject)"},
 +    {ldap_groupattr, "cn"},
 +    {ldap_groupdesc, "description"},
 +    {ldap_memberattr, "memberUid"},
 +    {ldap_useruid, "uid"},
 +    {ldap_userdesc, "cn"}
 +  ]},
 +</code>
 +
 +Si on veut limiter à un nombre précis de groupe, il suffit de l'ajouter dans le filtre, comme ceci:
 +<code>
 +{mod_shared_roster_ldap,[
 +    {ldap_base, "dc=firewall-services,dc=com"},
 +    {ldap_rfilter, "(objectClass=mailboxRelatedObject)"},
 +    {ldap_gfilter, "(|(cn=techniciens)(cn=ventes)(cn=equipe))"},
 +    {ldap_groupattr, "cn"},
 +    {ldap_groupdesc, "description"},
 +    {ldap_memberattr, "memberUid"},
 +    {ldap_useruid, "uid"},
 +    {ldap_userdesc, "cn"}
 +  ]},
 +</code>
 +
 +Seuls les groupes **techniciens**, **ventes** et **equipe** seront recherchés
 +
 +===== Configurer mod_archive =====
 +On va utiliser pour ceci le module mod_archive_odbc (voir http://www.ndl.kiev.ua/content/mod_archive_odbc-release).
 +Pour cela, on va devoir installer des modules supplémentaires pour ejabberd:
 +
 +<code bash>
 +yum --enablerepo=fws install ejabberd-modules
 +</code>
 +
 +Puis, il faut créer une base de donnée mysql et y ajouter le schéma nécessaire:
 +<code bash>
 +openssl rand -base64 40 > ejabberd.pw
 +chmod 600 ejabberd.pw
 +PW=$(cat ./ejabberd.pw)
 +db configuration setprop ejabberd DbName ejabberd DbUser ejabberd DbPassword $PW
 +mysql -e "create database ejabberd"
 +mysql -e "grant all privileges on ejabberd.* to 'ejabberd'@'localhost' identified by '$PW'"
 +mysql -e "flush privileges"
 +mysql ejabberd < /usr/share/doc/ejabberd-modules-0.1/mod_archive_odbc_mysql.sql
 +</code>
 +
 +Puis, on rajoute la configuration nécessaire dans le fichier ejabberd.cfg:
 +
 +  * Dans la section modules
 +<code>
 +{mod_archive_odbc, [{database_type, "mysql"},
 +                      {default_auto_save, true},
 +                      {enforce_default_auto_save, false},
 +                      {default_expire, infinity},
 +                      {enforce_min_expire, 0},
 +                      {enforce_max_expire, infinity},
 +                      {replication_expire, 31536000},
 +                      {session_duration, 1800},
 +                      {wipeout_interval, 86400}]}
 +</code>
 +
 +  * Au niveau global (format templates SME)
 +<code>
 +cat <<EOF > /etc/e-smith/templates-custom/etc/ejabberd/ejabberd.cfg/10database
 +
 +% mysql database access
 +\{odbc_server, \{mysql, "localhost", "{"\$ejabberd{DbName}"}", "{"\$ejabberd{DbUser}"}", "{"\$ejabberd{DbPassword}"}"\}\}.
 +
 +EOF
 +</code>
 +
  • tuto/ipasserelle/divers/ejabberd_advanced.txt
  • Dernière modification: 12/07/2012 22:54
  • de dani