jabber mysql
DESCRIPTION
jabberTRANSCRIPT
-
1Rafael Matito
SistemadeMensajeraInstantneaCorporativaconJabberyMySQL.
-
2Objetivo
Sistema de mensajera instantnea corporativa basado en Software Libre.
Basado en estndares abiertos.
Facilidad de administracin de los usuarios del sistema, de sus grupos y contactos.
Libertad de eleccin de servidor y clientes.
Bajo coste.
-
3Qunecesitamos?
{Servidor JabberJabberd1
Jabberd2
Sistema Gestor de Bases de Datos (MySQL)
Aplicacin de gestin de usuarios del sistema
Equipos clientes (PSI,Gaim,Kopete...)
-
4Validaciny almacenamiento datos
Servidor
Cliente Cliente
Esquemadefuncionamiento
Base de datos
Mensajes y autenticacin Mensajes y
autenticacin
-
5QuesJabber?
Jabber es un protocolo libre gestionado por la Jabber Software Foundation basado en el estndar XML para mensajera instantnea.
Es una alternativa libre y segura a servicios como ICQ, AIM, MSN o Yahoo Messenger.
Ms conocido como el Linux de la mensajera instantnea.
-
6Caractersticas
Protocolo abierto: Con todas las ventajas del software libre, se puede programar un servidor o un cliente o ver el cdigo, entre otras cosas.
Estndar: ha sido aprobado bajo el nombre de XMPP por el Internet Engineering Task Force (IETF). Sus especificaciones han sido publicadas como RFC 3920 y RFC 3921.
Descentralizado: Se puede crear un servidor para Jabber, y se puede interoperar o unirse al resto de la red Jabber. Similar al email.
Extensible: Se puede ampliar con mejoras sobre el protocolo original. Las extensiones comunes son manejadas por la Jabber Software Foundation.
-
7Caractersticas
Seguro: Cualquier servidor Jabber puede estar aislado del exterior (intranet). Se permite SSL para comunicaciones servidor-cliente y algunos clientes aceptan GPG como encriptacin de las comunicaciones usando cifrado asimtrico.
Multiredes: Un transporte o pasarela permite comunicarse con otros protocolos usados por clientes como MSN Messenger, ICQ, AOL o Yahoo!.
Flexible: los usos de Jabber ms all de la MI incluyen monitorizacin de red, sindicacin de contenido, herramientas de colaboracin, comparticin de archivos, juegos, supervisin de sistemas remotos...
Diverso: una amplia gama de compaas y de proyectos de software libre utilizan los protocolos Jabber para construir y para desplegar sus productos y y servicios en tiempo real. Libertad de eleccin de proveedor.
-
8cliente Jabber
Servidor Jabber
Pasarela Red MSN
Cliente MSN
Protocolo Jabber
Protocolo MSN
Ejemplodecomunicacin
Servidor Jabber
cliente Jabber
cliente Jabber
-
9ServidoresJabber
-
10
Implementaciones
Implementacin con Jabberd1
Ms probado, ms tiempo de desarrollo y ms estable.
Existen paquetes para la mayora de distribuciones
No utiliza MySQL de forma nativa.
Implementacin con Jabberd2
Tiene ms caractersticas que Jabberd1
Versin menos probada y por lo tanto menos estable
Es ms difcil encontrar paquetes para la mayora de distribuciones
Utiliza MySQL de forma nativa para autenticacin y almacenamientode datos
-
11
ImplementacinconJabberd1
Jabberd1 no tiene almacenamiento de datos ni autenticacin contra bases de datos de forma nativa. Se necesita descargar la extensin xdb_sql.
Para ms informacin: http://libertonia.escomposlinux.org/story/2004/9/28/10813/1365
-
12
ImplementacinconJabberd1
1. Instalar GNU Pth
2. Descargar Jabberd1 en /usr/local y compilar
3. Probamos el servidor
[root@server:/usr/local/jabberd-1.4.3]# ./jabberd/jabberd -h servidor.dominio
4. Descargamos xdb_sql dentro del directorio donde tenemos Jabberd1
5. Instalamos las cabeceras y ficheros de desarrollo de MySQL (mysql-devel)
-
13
ImplementacinconJabberd1
6. Modificamos el fichero Makefile de xdb_sql
# Uncomment the file that corresponds to your DBxdb_sql_OBJECTS= \ xdb_sql_mysql.o \ xdb_sql.o \ xdb_sql_auth0k.o \ xdb_sql_auth.o \ xdb_sql_offline.o \ xdb_sql_register.o \ xdb_sql_config.o \ xdb_sql_querydef.o \ xdb_sql_roster.o \ xdb_sql_last.o \ xdb_sql_backend.o \ xdb_sql_vcard.o \ xdb_sql_filter.o \ xdb_sql_generic.o \# xdb_sql_pgsql.o# xdb_sql_odbc.oall: xdb_sql.so
-
14
7. Compilamos xdb_sql
ImplementacinconJabberd1
8. Creamos la base de datos
[root@server:/usr/local/jabber-1.4.3/xdb_sql]# mysql -u root -p < sample_dabase.sql
9. Editamos el fichero xdb_sql.xml (seccin connection)
servidor.dominiojabberjabbertuclave
-
15
ImplementacinconJabberd110. Editamos el fichero jabber.xml (seccin xdb)
jabber:iq:rosterjabber:x:offlinejabber:iq:filterjabber:iq:lastjabber:iq:authjabber:iq:auth:0kjabber:iq:registervcard-temp
/usr/local/jabber-1.4.3/xdb_sql/xdb_sql.so
/usr/local/jabber-1.4.3/xdb_sql/xdb_sql.xml
./xdb_file/xdb_file.so
./spool
-
16
ImplementacinconJabberd2
De ahora en adelante se asumir que se ha seguido esta implementacin para la configuracin del servidor, emisin de mensajes del sistema...
-
17
RequisitosdeJabberd2
OpenSSL (versin 0.96 o superior)
Libidn (versin 0.3 o superior)
BD para almacenar datos
MySQL
Berkeley DB PostgreSQL
Sistema para autenticar
MySQL
Berkeley DBOpenLDAP PAM
Oracle
PostgreSQL
Oracle
-
18
InstalarJabberd2
1. Descargamos el cdigo fuente
2. Configuramos
./configure enablemysql enablessl enableidn
3. Compilamos e instalamos
Los ficheros de configuracin estarn en /usr/local/etc/jabberd
-
19
Configuracindelservidor
1. Establecer el hostname en sm.xml y en c2s.xml
servidor.dominio
servidor.dominio
sm.xml
c2s.xml
-
20
Configuracindelservidor
3. Configurar sm.xml para usar MySQL como sistema de almacenamiento.
2. Crear la base de datos jabberd2 y establecer la configuracin del usuario
#mysql -u root -p < tools/db-setup.mysql
mysql
-
21
Configuracindelservidor
localhost 3306 jabberd2 jabberd2 secret
3. Configurar sm.xml para usar MySQL como sistema de almacenamiento.
-
22
Configuracindelservidor
4. Configurar c2s.xml para usar MySQL como sistema de autenticacin
mysql
-
23
Configuracindelservidor
localhost 3306 jabberd2 jabberd2 secret
4. Configurar c2s.xml para usar MySQL como sistema de autenticacin
-
24
Configuracindelservidor
5. Probar el servidor
/usr/local/bin/jabberd
Existe un script llamado jabberd.rc en el directorio tools que nos permitir arrancar y parar el servidor
automticamente
-
25
Otrastareasdeconfiguracin
Crear un usuario administrativo
Deshabilitar el registro pblico de cuentas
Habilitar que los usuarios puedan cambiar las claves
Configurar Jabberd2 para conexiones SSL
-
26
Basededatos
authreg: almacena los usuarios registrados
queue: almacena los mensajes an no entregados
roster-groups: almacena los grupos
roster-items: almacena los contactos
vcard: almacena la informacin personal de los usuarios
-
27
Gestindeusuariosycontactos
Aplicacin de gestin de usuarios
Servidor Jabberd2
Scripts de sincronizacin
usuarios jabberd2
-
28
Ejemplodescript
-
29
Gestindeusuariosycontactos
jabberd2
Servidor Jabberd2
Aplicacin sin desarrollar
- Gestin de los usuarios- Gestin de los contactos- Gestin de los grupos
-
30
Equiposclientes
Existen muchos clientes de Jabber
Fcil e intuitivo
Multiplataforma
Multiprotocolo
Otras caractersticas: grupos de conversacin, envo de mensajes a grupos, grupos anidados...
-
31
Equiposclientes
-
32
Emisindemensajesautomticos
Insertando registros en la tabla queue.
Programando un script en php que haga uso de la clase class.jabber.php http://cjphp.netflint.net
Utilizando jabberd_alert.pl
-
33
Insertarregistrosenlatablaqueue
Es una tabla que usa internamente el servidor jabberd2, no se recomienda su alteracin desde el exterior.Si el destinatario est conectado en el momento de la emisin del mensaje no lo recibir hasta que desconecte y vuelva a conectar.
Es muy sencillo realizar un script que inserte registros en esta tabla con el formato de los mensajes.
La tabla queue mantiene una lista de todos los mensajes que an no han sido entregados a sus destinatarios.
-
34
Utilizandojabberd_alert.pl
./jabber_alert.pl e [email protected] n [email protected] w clave
e = jid del receptorn = jid del emisorw = clave del usuario emisor
-
35
Utilizandolaclaseclass.jabber.php
-
36
Uncasodexito,Provivienda
Provivienda tiene sus empleados en muchos centros de trabajo.
Con el fin de ahorrar costes en telfono y agilizar las comunicaciones se vena empleando otro sistema de mensajera instantnea.
Este sistema no permita la sincronizacin con la aplicacin de gestin de los empleados, de tal forma que todas las modificaciones haban de hacerse a mano y distribuir los cambios.
-
37
Uncasodexito,Provivienda
Los usuarios usan Jabber de forma transparente, no necesitan conocer la tecnologa subyacente.
Todos los empleados tienen todos los contactos en los grupos (departamentos y centros de trabajo) a los que pertenecen, sin importar los traslados, altas ni bajas.
Disponen de informacin actualizada sobre el resto de empleados (telfonos, fax, direccin, email...).
Tienen una forma cmoda y rpida de compartir ficheros e informacin.
-
38
Dudasypreguntas