Que es la mensajería instantánea?

Transcripción

Que es la mensajería instantánea?
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Iván Daniel Rodríguez Posada
Mensajería Instantánea
1
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Índice
1. ¿Que es la mensajería instantánea?:.................................................................................................2
2. Openfire:...........................................................................................................................................5
2.1 Instalación de Openfire:.............................................................................................................5
2.2 Creación de usuarios en Openfire:...........................................................................................11
2.3. Creación de Usuarios por parte de los clientes:......................................................................12
3. Clientes XMPP:..............................................................................................................................12
3.1 Xabber:.....................................................................................................................................13
3.2 Spark:.......................................................................................................................................14
3.3 Pidgin:......................................................................................................................................14
3.4 Añadir contactos:.....................................................................................................................15
4. Ejabberd:.........................................................................................................................................18
4.1. Instalación de Ejabberd:..........................................................................................................19
4.2. Creación de usuarios en Ejabberd:..........................................................................................19
5. Conclusiones:.................................................................................................................................21
2
Mensajería Instantánea
Iván Daniel Rodríguez Posada
1. ¿Que es la mensajería instantánea?:
La mensajería instantánea (conocida también en inglés como IM) es una
forma de comunicación en tiempo real entre dos o más personas basada en
texto. El texto es enviado a través de dispositivos conectados a una red como
Internet.
La mensajería instantánea requiere de un servidor y un cliente por el cual se
envían los datos, clientes como Skype o Whatsapp son los más utilizados.
Actualmente la mensajería instantánea en los móviles se les está dando mas
importancia, tenemos todo tipo de aplicaciones móviles como Facebook
Messenger, Skype, Line, Telegram, Whatsapp, estas son las más importantes
pero también hay aplicaciones como por ejemplo Xabber, cliente de código
abierto que podremos utilizar con servidores XMPP.
A lo largo de la historia de la mensajería instantánea se han utilizado muchos
tipos de protocolos de conexión, muchos de ellos privativos:
OSCAR- Son las siglas en inglés de Orbiting Satellite Carrying Amateur
Radio (Satélite Orbitante Portando Radio Amateur), OSCAR han contribuido a
hacer grandes avances en la ciencia de las comunicaciones por satélite y hasta
la fecha mas de 70 satélites han sido lanzados. Este servicio es utilizado por
ICQ y AIM.
Bonjour- Protocolo de mensajería de Apple de Licencia Freeware.(aplicación
gratuita para clientes; sin embargo, para los desarrolladores y empresas de
software que quieran incluirlo en algún paquete de 'software', puede ser
necesario contratar una licencia). Este servicio es utilizado por Fire o Trillian,
entre otros.
Gadu-Gadu(GG)- Protocolo de mensajería popular en Polonia de Software
Propietario financiado por publicidad, permite mensajes offline, envío de datos,
VoIP y conexiones seguras SSL. Este servicio es utilizado por Pidgin, Kopete,
Kadu, Tlen.pl o WTW, entre otros.
IRC(Internet Relay Chat)- Protocolo de mensajería desarrollada por Jarkko
Oikarinen en agosto de 1988 con el motivo de reemplazar al programa MUT
(talk). Durante la primera mitad de la década de los 2000 la mayoría de redes
3
Mensajería Instantánea
Iván Daniel Rodríguez Posada
vivieron un rápido incremento de usuarios, correspondiente con la
popularización de Internet y especialmente de las redes de Chat e IRC se volvió
muy popular.
MXit- Protocolo de mensajería desarrollada por Mxit utilizado mayormente en
Sudáfrica de Licencia Freeware. Según un estudio de World Wide Worx, Mxit
tenía 7,4 millones de suscriptores activos mensuales en julio de 2013, de los
cuales 6,3 millones eran sudafricanos.
SIMPLE- Protocolo de mensajería creado por el IETF (Grupo de Trabajo de
Ingeniería de Internet), XMPP es su competidor y es de estándar abierto
aunque actualmente se está apoyando mas XMPP.
IBM Sametime- Protocolo de mensajería desarrollada por IBM de software
propietario pensada para empresas, además de ofrecer mensajería
instantánea también ofrece reuniones electrónicas, voz, vídeo y datos.
Zephyr- Protocolo de mensajería desarrollada por el MIT (Instituto Tecnológico
de Massachusetts) considerada la primera aplicación de mensajería
instantánea. Actualmente se sigue utilizando en algunos centros, sobre todo
académicos y de investigación, como el propio MIT o el CERN.
XMPP- Anteriormente llamado Jabber es un protocolo de mensajería abierto y
extensible basado en XML, es fácil de adaptar a cualquier cliente,sencillo y el
mas utilizado en la actualidad. Empresas como Facebook, Tuenti, WhatsApp
Messenger y Nimbuzz entre otras han optado con este protocolo de mensajería
instantanea libre.
XMPP ofrece las siguientes ventajas frente a los otros protocolos:
Fácil Instalación:
La arquitectura de las redes XMPP es similar a la del correo electrónico;
cualquiera puede poner en marcha su propio servidor XMPP.
Estándares abiertos:
La Internet Engineering Task Force ha formalizado el protocolo XMPP como
una tecnología de mensajería instantánea estándar, y sus especificaciones han
sido publicadas como los RFC 3920 y RFC 3921. El desarrollo de esta tecnología
no está ligado a ninguna empresa en concreto y no requiere el pago de
regalías.
4
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Seguridad:
Los servidores XMPP pueden estar aislados de la red pública XMPP, y poseen
robustos sistemas de seguridad (como SASL y TLS). Para apoyar la utilización
de los sistemas de cifrado, la XMPP Standards Foundation pone a disposición de
los administradores de servidores XMPP Autoridad de certificación en xmpp.net
ofreciendo certificados digitales gratis.
Flexibilidad:
Se pueden hacer funcionalidades a medida sobre XMPP; para mantener la
interoperabilidad, las extensiones más comunes son gestionadas por la XMPP
Software Foundation.
Por todos estos motivos optaremos por trabajar con XMPP para este proyecto,
en especial vamos a instalar y trabajar con dos servidores:
2. Openfire:
Es un sistema de mensajería instantánea GPL, hecho en java y que utiliza el
protocolo XMPP, permite montar tu propio servidor de mensajería Instantánea,
administrar a tus usuarios, compartir archivos, auditar mensajes, mensajes
offline, mensajes broadcast, grupos, etc y además contiene plugins gratuitos
con diferentes funciones extras.
Permite la configuración del servidor via Web pudiendo administrarlo desde
cualquier sitio.
2.1 Instalación de Openfire:
Para este proyecto vamos a utilizar una máquina virtual con Debian 7.
Primero actualizaremos el sistema:
aptitude update && aptitude full-upgrade
5
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Ahora instalamos las dependencias necesarias de Java para hacer funcionar
Openfire que van a ser openjdk-6-jdk y openjdk-7-jre, todo esto lo
instalaremos junto con mysql-server.
aptitude install openjdk-6-jdk openjdk-7-jre mysql-server
Durante la instalación nos aparecerá una ventana en la consola para poner una
contraseña al usuario root de nuestro servidor MySQL.
Tendremos que repetir la contraseña para confirmarlo
Una vez finalizada la instalación nos loguearemos en MySQL como root y
crearemos una base de datos para Openfire.
6
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Nos loguearemos de la siguiente manera:
mysql -u root -p
Contraseña: root (como es lógico en esta prueba la contraseña es root pero
para un caso real debemos de tener una contraseña compleja)
Una vez dentro creamos la base de datos:
CREATE DATABASE openfire;
Teniendo la base de datos creada procedemos a descargarnos el servidor
Openfire, podemos descargarnos el archivo desde la página oficial para
Windows, Mac y varias distribuciones Linux
http://www.igniterealtime.org/downloads/.
En nuestro caso lo descargaremos para Debian mediante el comando wget la
ultima versión estable:
wget http://www.igniterealtime.org/downloadServlet?
filename=openfire/openfire_3.9.3_all.deb
Una vez descargado lo instalamos con DPKG:
dpkg -i openfire_3.9.3_all.deb
Ya tenemos el servidor de Openfire instalado, ahora tenemos que configurarlo
vía web, para ello escribimos la dirección ip de la maquina donde lo estemos
instalando y como puerto le indicamos el 9090, en mi caso sería
http://192.168.1.111:9090
Una vez entremos en esa dirección nos aparecerá la primera pantalla para
configurar nuestro servidor Openfire en la que deberemos seleccionar nuestro
idioma y continuar
7
Mensajería Instantánea
Iván Daniel Rodríguez Posada
En la siguiente pantalla tendremos que configurar el dominio y los puertos que
va a utilizar nuestro servidor, por defecto lo dejamos tal cual.
El siguiente paso es elegir donde va a estar la base de datos, en nuestro caso
como vamos a tenerlo en MySQL seleccionaremos “Conexión Estándar”.
8
Mensajería Instantánea
Iván Daniel Rodríguez Posada
El cuarto paso es el mas importante, en este paso tendremos que configurar
Openfire para que se pueda conectar con nuestra base de datos creada
previamente en MySQL.
En el tipo de driver elegiremos MySQL y en la url reemplazaremos [hostname]
por localhost y [database-name] por el nombre de la base de datos, en
nuesto caso openfire.
Y por ultimo pondremos el usuario y la contraseña de nuestra base de datos
para que pueda conectarse.
En paso siguiente es elegir que sistema de usuarios y grupos
utilizaremos en Openfire, en nuestro caso lo dejaremos por defecto y le damos
a Continuar, como podemos ver también podemos integrarlo con LDAP.
9
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Por ultimo creamos una cuenta de administrador para poder gestionar nuestro
servidor de mensajería y ya tendremos listo nuestro servidor Openfire.
Ahora cada vez que queramos administrar algo en nuestro servidor entraremos
en la dirección http://192.168.1.111:9090 y nos logueamos con nuestra cuenta
de administrador:
10
Mensajería Instantánea
Iván Daniel Rodríguez Posada
2.2 Creación de usuarios en Openfire:
Una vez dentro de la consola de administración nos vamos a
Usuarios/grupos>Crear nuevo usuario y rellenamos los campos
necesarios:
Para poder ver la lista de usuarios pinchamos en Usuarios/grupos:
11
Mensajería Instantánea
Iván Daniel Rodríguez Posada
2.3. Creación de Usuarios por parte de los clientes:
Por defecto en Openfire el registro de cuentas por parte de los usuarios viene
habilitado, una vez nos logueemos con el cliente si el usuario no existe el
servidor se encarga de crearlo automáticamente.
Este método es un problema si queremos tener el servidor con unos usuarios
fijos sin posibilidad de crear nuevos, por lo tanto deberemos de desactivar esta
característica.
Para ello vamos a Servidor>Configuración del servidor>Registro y conexiones.
3. Clientes XMPP:
Existen una gran cantidad de programas y aplicaciones para poder conectarte
a servidores XMPP sin importar el dispositivo que estés utilizando.
En http://xmpp.org/xmpp-software/clients/ tenemos una lista bastante amplia
de clientes que podemos utilizar, en esta prueba nos decantaremos por utilizar
Spark en Windows, Pidgin en Linux y Xabber en Android.
Antes de nada crearemos 3 usuarios para la ocasión, uno llamado Windows
para usarlo en Spark, otro llamado Android para usarlo en Xabber y otro
llamado Linux para Pidgin.
12
Mensajería Instantánea
Iván Daniel Rodríguez Posada
3.1 Xabber:
Xabber es un cliente de código abierto de XMPP
(Jabber) con soporte para múltiples cuentas e
interfaz sencilla.
Para empezar deberemos bajarnos Xabber
desde GooglePlay
https://play.google.com/store/apps/details?
id=com.xabber.android&hl=es
Una vez abierto nos aparecerá un botón que
pondrá “Añadir Cuenta”, cuando lo pulsemos
nos abrirá otra pantalla.
En la siguiente pantalla tendremos que
rellenar los siguientes datos:
Tipo de cuenta, en nuestro caso lo dejaremos
tal cual porque nuestro servidor es XMPP.
Usuario, deberemos poner el nombre de
usuario seguido de una arroba y la dirección
IP.
Contraseña de la cuenta y marcaremos la
casilla de “Registrar una nueva cuenta”.
Una vez relleno todo pulsaremos en Añadir
cuenta y ya tendremos nuestra cuenta
preparada.
13
Mensajería Instantánea
Iván Daniel Rodríguez Posada
3.2 Spark:
Spark es un cliente de código abierto de
XMPP muy sencillo creado especialmente
para Openfire.
Para descargarlo debemos ir a
http://www.igniterealtime.org/downloads/inde
x.jsp#spark.
Este cliente es mas sencillo e intuitivo, una
vez logueados nos aparece una ventana con
una serie de opciones en la barra de
herramientas superior en la que podremos
añadir usuarios entre otras cosas.
3.3 Pidgin:
Para conectarse por primera vez en Pidgin debemos ir a Cuentas>Gestionar
cuentas y en la nueva ventana hacemos clic en Añadir.
14
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Una vez le demos a añadir nos aparecerá
una nueva ventana en la que deberemos
de elegir el tipo de protocolo, en nuestro
caso XMPP, el nombre de usuario y su
contraseña.
Una vez hecho esto cuando pulsemos
Añadir si todo es correcto establecerá
conexión.
3.4 Añadir contactos:
A la hora de añadir contactos es muy simple, en Spark debemos ir a
Contactos>Agregar contacto y nos aparecerá una nueva ventana en la que
pondremos el contacto que queremos añadir.
15
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Una vez agreguemos al contacto le llegará a este una solicitud para aceptarla,
mientras tanto nuestro contacto se quedará en espera hasta que acepte la
solicitud.
16
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Una vez el contacto que queremos agregar acepte la solicitud les aparecerá a
ambos el contacto en la lista de Amigos (o en su defecto el grupo que le
hayamos definido) y en linea para poder empezar a hablar con él.
17
Mensajería Instantánea
Iván Daniel Rodríguez Posada
En Pidgin el sistema es muy parecido a Spark,
vamos a Amigos>Añadir un amigo...
En la siguiente ventana escribiremos el nombre
de usuario de nuestro amigo seguido de una @ y
la IP y si aparece en la base de datos del servidor
le mandará una solicitud de amistad.
En cuanto la solicitud sea aceptada podrán hablar entre ellos.
4. Ejabberd:
Trabajar con Openfire es muy fácil y cómodo, tiene muchas guías en español y
utilidades pero también tiene un gran inconveniente, necesita mas recursos de
la cuenta para que funcione bien.
Openfire está hecho en Java y para grandes proyectos es necesario una
máquina potente.
Para solucionar este problema existe Ejabberd, un servidor mas básico creado
en Erlang muy útil para máquinas con pocos recursos.
18
Mensajería Instantánea
Iván Daniel Rodríguez Posada
4.1. Instalación de Ejabberd:
Primero actualizaremos el sistema:
aptitude update && aptitude full-upgrade
Una vez actualizado procedemos a instalar el paquete:
aptitude install ejabberd
El siguiente paso es modificar el fichero de configuración:
nano /etc/ejabberd/ejabberd.cfg
Se modificarán las líneas siguientes:
%%Admin user
{acl, admin, {user, "", "localhost"}}.
%%Hostname
{hosts, ["localhost"]}.
Quedando de la siguiente manera:
%%Admin user
{acl, admin, {user, "administrador", "192.168.1.111"}}.
%%Hostname
{hosts, ["192.168.1.111"]}.
Una vez apliquemos los cambios tendremos que reiniciar el servicio:
service ejabberd restart
19
Mensajería Instantánea
Iván Daniel Rodríguez Posada
4.2. Creación de usuarios en Ejabberd:
Una vez reiniciado el servicio tendremos que crear la cuenta de administrador,
para ello ejecutamos el siguiente comando:
ejabberdctl register administrador 192.168.1.111 1234qwerty
Para crear los demás usuarios podemos hacerlo de dos maneras:
-Mediante comandos:
ejabberdctl register ivan 192.168.1.111 1234qwerty
-Mediante Interfaz Web:
Primero nos conectaremos al servidor poniendo en el navegador lo siguiente:
http://192.168.1.111:5280/admin
Tras loguearnos aparecerá el menú principal:
20
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Para crear usuarios nos vamos a Dominios Virtuales>{nuestro
dominio}>usuarios
Solo tendremos que elegir que usuario crear y que contraseña darle, una vez lo
añadamos nos aparecerá en la lista inferior.
21
Mensajería Instantánea
Iván Daniel Rodríguez Posada
Ejabberd viene por defecto con los registros desde el cliente deshabilitados, si
queremos habilitarlo debemos editar el siguiente archivo:
nano /etc/ejabberd/ejabberd.cfg
Una vez dentro buscamos la siguiente linea:
{access, register, [{deny, all}]}.
Y la reemplazamos por:
{access, register, [{allow, all}]}.
5. Conclusiones:
Me ha resultado muy interesante aprender a montar servidores XMPP y saber
como funcionan las grandes empresas de mensajería instantánea que trabajan
con XMPP, siendo solo 1 puedes montar un servidor y sacarle mucho partido
para todo tipo de tareas en las que se necesite comunicación las 24h de
manera privada.
Es escalable y puedes montar varios servidores XMPP que se comuniquen entre
ellos.
22

Documentos relacionados

Mensajería instantánea

Mensajería instantánea Mensajería instantánea: Puedes enviar mensajes de texto a tus contactos de correo Yahoo Salas de chat: Diferentes salas de chat Compartir fotos: Comparte las fotos que tengas en tu ordenador Ll...

Más detalles