====== 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/