jabber mysql

Upload: galduvin

Post on 11-Oct-2015

55 views

Category:

Documents


0 download

TRANSCRIPT

  • 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