====== Configurar Jabberd14 con LDAP ====== Tutorial escrito para Ubuntu 10.04, habiendo instalado Jabberd14 desde los repositorios. Hay que configurar el dominio correcto tanto en ''/etc/default/jabberd14'' como en ''/etc/jabber/jabber.xml'' y reiniciar el daemon. Al intentar conectarnos con una cuenta debería devolvernos ''401: No autorizado''. ==== Instalar el módulo de Perl Jabber::Connection ==== Instalar las dependencias de Perl. apt-get install libyaml-perl libdigest-sha1-perl libxml-simple-perl libnet-ldap-perl Luego instalar el módulo ''Jabber::Connection'' desde CPAN. cpan Jabber::Connection ==== Preparar el Jabberd14 ==== Agregamos lo siguiente dentro de la etiqueta '''', casi al principio del archivo ''/etc/jabber/jabber.xml'': jabber:iq:auth 127.0.0.1 5999 testing El 'port' y el 'secret' puede cambiarse a los que quieran. Luego buscar lo siguiente: /usr/lib/jabberd14/libjabberdxdbfile.so /var/spool/jabberd Y agregar '''': /usr/lib/jabberd14/libjabberdxdbfile.so /var/spool/jabberd Comentar la autenticación con Digest. Solo se admite autenticación con texto plano (por lo que se recomienda utilizar únicamente conexiones seguras): /usr/lib/jabberd14/libjabberdsm.so Reiniciamos el jabberd14: invoke-rc.d jabberd14 restart ==== Descargar e instalar xdb_auth_cpile ==== Lo descargamos de [[http://www.snoogans.co.uk/jabber/]], concretamente [[http://www.snoogans.co.uk/jabber/files/xdb_auth_cpile.tar.gz]]. cd /tmp wget http://www.snoogans.co.uk/jabber/files/xdb_auth_cpile.tar.gz tar xzfv xdb_auth_cpile.tar.gz mv xdb_auth_cpile.pm.ldap xdb_auth_cpile.pm mkdir /usr/local/lib/jabberd14 cp xdb_auth_cpile.pl xdb_auth_cpile.xml xdb_auth_cpile.pm /usr/local/lib/jabberd14 Editamos el archivo ''/usr/local/lib/jabberd14/xdb_auth_cpile.pl'' para establecer la ruta correcta de la biblioteca, cambiando: use lib qw(/usr/local/jabber/xdb_auth_cpile); Por lo siguiente: use lib qw(/usr/local/lib/jabberd14); Y también editamos ''/usr/local/lib/jabberd14/xdb_auth_cpile.pm'' para establecer los parámetros del servidor LDAP: # Change the "ldap.example.com" below my $ldapserver="ldap.example.com"; # most normal LDAP servers will want something like this my $DN = "CN=$user, OU=Users, DC=Example, DC=com"; Por último, editar el archivo ''/usr/local/lib/jabberd14/xdb_auth_cpile.xml'' estableciendo el ''port'' y el ''secret'' correcto, además de corregir las rutas del ''pidfile'' y el ''logfile'' como sigue: xdb_auth_cpile 127.0.0.1 5999 testing ==== Probar que funciona y script de inicio ==== En este momento ya se puede probar ejecutando el archivo ''/usr/local/lib/jabberd14/xdb_auth_cpile.pl''. Una vez has comprobado que funciona, puedes usar el siguiente script para arrancarlo al inicio: Utilizar el siguiente script de arranque, que debe ejecutarse siempre DESPUÉS del ''jabberd14'': #! /bin/sh ### BEGIN INIT INFO # Provides: jabberd14_ldap # Required-Start: $local_fs $syslog jabberd14 # Required-Stop: $local_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Jabber/XMPP server LDAP Auth # Description: Jabberd14 is the original server implementation of the # Jabber protocol, now known as XMPP. ### END INIT INFO # # Init script to start the Jabberd14 daemon # # Created from Bernd Eckenfels # # Written by Miquel van Smoorenburg . # Modified for Debian GNU/Linux # by Ian Murdock . # # LSBized by Paul van Tilburg # # Modified for LDAP Auth by Jorge Suárez de Lis # # Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl # # This file was automatically customized by dh-make on Sun, 21 May 2000 12:31:20 +0200 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/lib/jabberd14/xdb_auth_cpile.pl NAME="jabberd14_ldap" DESC="Jabber/XMPP server LDAP Auth" CONF=/usr/local/lib/jabberd14/xdb_auth_cpile.xml PID=/var/run/jabberd/xdb_auth.pid LOG=/var/log/jabberd/xdb_auth.log test -f $DAEMON -a -f $CONF || exit 0 . /lib/lsb/init-functions PARAMS="" case "$1" in start) if ! [ -d $(dirname $PID) ]; then mkdir -p -m 0755 $(dirname $PID) chown jabberd:jabberd $(dirname $PID) fi if ! [ -d $(dirname $LOG) ]; then mkdir -p -m 0755 $(dirname $LOG) chown jabberd:jabberd $(dirname $LOG) fi if [ -e $PID ]; then PIDDIR=/proc/$(cat $PID) if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then log_success_msg "$DESC already started; not starting." exit else log_success_msg "Removing stale PID file $PID." rm -f $PIDFILE fi fi log_daemon_msg "Starting $DESC" "$NAME" start-stop-daemon --start --quiet --pidfile $PID \ --chuid jabberd:jabberd --background --exec $DAEMON $CONF log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" start-stop-daemon --stop --quiet --oknodo --pidfile $PID log_end_msg $? rm -f $PID ;; reload|force-reload) log_action_begin_msg "Reloading $DESC" "$NAME" start-stop-daemon --stop --signal 1 --quiet -pidfile $PID \ --chuid jabberd:jabberd --exec $DAEMON log_action_end_msg $? ;; restart) $0 stop $0 start ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0 ==== Configuraciones adicionales de jabberd14 ==== === Desactivar el cambio de contraseña y los registros === Descomentar las siguientes líneas para no permitir registros ni cambios de contraseña: === Desactivar los registros === Cambiar la sección de ''register'' eliminando los elementos que solicitaa para registrarse. Este servizo fai uso da Identidade CITIUS, polo que non require rexistro. http://citius.usc.es/identidade-citius/