You are on page 1of 18

ADMINISTRACIN DE SISTEMAS INFORMTICOS EN RED

UNIDAD 6

SERVICIO DE MENSAJERA INSTANTNEA

SERVICIOS DE RED E INTERNET

Servicios de red e Internet

Servicio de mensajera instantnea

Introduccin
La mensajera instantnea es una forma de comunicacin en tiempo real entre dos o ms usuarios por medio de texto. El texto es enviado a travs de dispositivos conectados a una red o Internet. Se basa en el modelo cliente-servidor y se diferencia del correo electrnico en que las conversaciones se realizan en tiempo real, es decir, los intervinientes deben estar conectados y en linea. La mayora de los servidores ofrecen la funcionalidad del "aviso de presencia", indicando cuando el cliente de un usuario que est en la lista de contactos se conecta, se desconecta o si est disponible para mantener una conversacin. En los primeros clientes de mensajera instantnea, cada letra era enviada segn se escriba y as, las correcciones de las erratas tambin se vean en tiempo real. Esto daba a las conversaciones mas la apariencia de una conversacin telefnica que de un intercambio de texto. En los programas actuales, habitualmente, se enva cada frase al terminar de escribirse. Adems, en algunos, tambin se permite dejar mensajes aunque la otra parte no est conectada, al estilo de un contestador automtico. Otra funcin que tienen muchos servidores es el envo de ficheros y la comunicacin por voz. Gran parte de los servidores que ofrecen este servicio usan redes y protocolos propietarios. Sin embargo, hay programas de mensajera instantnea que utilizan el protocolo abierto XMPP, con un conjunto descentralizado de servidores. Los clientes de mensajera instantnea ms utilizados son ICQ, Yahoo! Messenger, Windows Live Messenger, Pidgin, Kopete y Google Talk (estos ltimos usan el protocolo abierto XMPP).

Protocolo XMPP
XMPP (Extensible Messaging and Presence Protocol, protocolo extensible de mensajera y comunicacin de presencia), anteriormente llamado Jabber, es un protocolo abierto y extensible basado en XML, originalmente ideado para mensajera instantnea. XMPP est definido formalmente en los documentos RFC 3920, RFC 3921, RFC 3922 y RFC 3923. Con el protocolo XMPP qued establecida una plataforma para el intercambio de datos XML que puede ser usada en aplicaciones de mensajera instantnea. XMPP hereda las caractersticas en cuanto a adaptabilidad y sencillez del lenguaje XML. A diferencia de los protocolos propietarios de intercambio de mensajes como ICQ, Yahoo! Messenger y Windows Live Messenger, XMPP se encuentra documentado y se insta a utilizarlo en cualquier proyecto. Existen servidores y clientes libres que pueden ser usados sin coste alguno. Este es el protocolo que seleccion Google para su servicio de mensajera Google Talk, y Facebook y Tuenti, entre otras redes sociales para su chat. Este proyecto empez en 1998 de la mano de Jeremie Miller, siendo jabberd el principal producto que se desarrollo, un servidor XMPP . Se liber por primera vez en 2000. Entre sus ventajas con respecto a los protocolos propietarios destacan: Descentralizacin - la arquitectura de las redes XMPP es similar a la del correo electrnico; cualquiera puede poner en marcha su propio servidor XMPP, sin que haya ningn servidor central. Estndares abiertos - sus especificaciones han sido publicadas como los RFC-3920 y RFC3921. Seguridad - los servidores XMPP pueden estar aislados de la red pblica XMPP, y poseen robustos sistemas de seguridad como SASL y TLS. Para apoyar la utilizacin de los
Pag. 2 de 18

Gins ngel Esteban Oller

Servicios de red e Internet

Servicio de mensajera instantnea

sistemas de cifrado, la XMPP Standards Foundation pone a disposicin de los administradores de servidores XMPP una CA en http://xmpp.org/resources/certificates/ ofreciendo certificados digitales gratuitos. La red XMPP est basada en servidores, pero descentralizada; por diseo, no hay ningn servidor central, como sucede con servicios como MSN Messenger. Sobre este punto, surge cierta confusin, puesto que existe un servidor XMPP pblico en "Jabber.org", al que estn suscritos un gran nmero de usuarios, pero no hay que olvidar que cualquiera puede poner en marcha su propio servidor. El puerto estndar utilizado para XMPP es el 5222. Cada usuario en la red XMPP tiene un nico identificador (Jabber ID, normalmente abreviado como JID). Para evitar la necesidad de un servidor central con una lista exhaustiva de identificadores, el Jabber ID est estructurado como una direccin de correo electrnico. Un identificador Jabber sera algo como usuario@dominio.com. Como un usuario puede querer identificarse desde distintos lugares, el servidor permite al cliente especificar una cadena de referencia conocida como recurso, que identifica el cliente que est utilizando el usuario (por ejemplo: casa, trabajo, porttil, etc.). Esto ser incluido en el JID aadiendo un carcter / seguido del nombre del recurso. Cada recurso debe tener especificada un valor numrico de prioridad. Por ejemplo el JID completo de la cuenta del trabajo del usuario sera: usuario@dominio.com/trabajo. Los mensajes de la forma usuario@dominio.com sern dirigidos al cliente con mayor prioridad, y los de la forma usuario@dominio.com/trabajo sern dirigidos al cliente del trabajo. Los JID sin la parte del nombre de usuario tambin son vlidos y se utilizan para enviar mensajes de sistema y control. Cmo se entregan los mensajes? Supongamos que pepe@midominio.com desea chatear con oscar@curavalera.net. Pepe y Oscar tienen sus respectivas cuentas en los servidores midominio.com y curavalera.net. Cuando Pepe escribe y enva su mensaje, entra en accin la siguiente secuencia de eventos: 1. El cliente de Pepe enva su mensaje al servidor midominio.com. Si el servidor curavalera.net no tiene acceso al servidor midominio.com, el mensaje es desechado. 2. El servidor midominio.com abre una conexin con el servidor curavalera.net. 3. El servidor curavalera.net entrega el mensaje a Juan. Si Juan no est conectado, el mensaje es guardado para su posterior entrega. Si el servidor midominio.com no tiene acceso al servidor curavalera.net, el mensaje es desechado. Otra caracterstica muy til del protocolo XMPP son las pasarelas, que permiten a los usuarios el acceso a redes con otros protocolos de mensajera instantnea propietarios. Esta funcionalidad no es proporcionada por el cliente, sino por el servidor, mediante servicios de pasarela que proporcionan conectividad con alguna otra red. Gran parte de los cortafuegos estn configurados para permitir el paso del trfico TCP dirigido al puerto usado por el protocolo HTTP, mientras que por lo general se bloquea el puerto utilizado por XMPP. Para solucionar este problema, XMPP utiliza HTTP para permitir el acceso a los usuarios que se encuentran tras el cortafuegos. Pero XMPP precisa conexin persistente, se mantiene la conexin desde el principio hasta el final, y mientras, se envan todos los mensajes que se quieran; HTTP sin embargo usa una conexin de peticin y respuesta, es decir, te conectas y haces una peticin, el servidor responde y se termina la conexin. En las especificaciones originales, XMPP
Gins ngel Esteban Oller Pag. 3 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

poda utilizar HTTP de dos formas: Polling: Ya no est en uso, bsicamente se trataba de utilizar las funciones 'GET' y 'POST' de HTTP para enviar los mensajes al servidor a intervalos de tiempo regulares. Binding: Con este mtodo, el cliente utiliza conexiones HTTP de vida ms larga para recibir los mensajes tan pronto como son enviados. Este modelo es ms eficiente que el de polling. BOSH (Bidirectional-streams Over Synchronous HTTP): Es un protocolo de transporte que emula un flujo bidireccional entre dos entidades (por ejemplo, un cliente y un servidor) mediante el uso de mltiples pares peticin/respuesta sncronos sin requerir el uso de fragmentaciones asncronas. Existen algunos servidores pblicos como www.jabber80.com que escuchan en los puertos estndar HTTP y HTTPS, permitiendo la conexin mediante XMPP desde detrs de la mayora de los cortafuegos. XMPP funciona a base de enviar cdigo XML. Un ejemplo de mensaje XMPP sera el siguiente:
<message from="pepe@dominio.com" to="juan@dominio.com">Hola to; que pasaaaa.</message>

En XMPP existen 3 tipos de elementos diferentes: message, presence e iq. Message: Son los mensajes que se envan los usuarios entre s. Presence: Los eventos de presencia de usuarios. Cuando se desconectan o conectan, cuando cambian de estado, de nombre, etc. Iq: Sirve para enviar comandos internos. Por ejemplo para iniciar una nueva conexin, informar de errores, etc.

Protocolo OSCAR
El protocolo OSCAR (Open System Communication in Realtime, Sistema Abierto para la comunicacin en tiempo real) fue creado en 1990 por la empresa israel Mirabilis, que en 1998 fue adquirida por AOL. A pesar de lo que su nombre indica se trata de un protocolo propietario por lo que no se puede integrar con otras tecnologas de mensajera instantnea. Este protocolo es usado por los clientes AIM e ICQ. En 2002 AOL lleg a un acuerdo con Apple de manera que este protocolo se ha integrado con el servicio de mensajera iChat. Dado que sus especificaciones no han sido publicadas algunos compaas han utilizado la tcnica de ingeniera inversa para poder dar servicio para l en sus clientes.

Otros sistemas propietarios


En la actualidad, la red de mensajera instantnea ms grande del mundo est formada por dos sistemas que, a pesar de haberse desarrollado por separado, se encuentran perfectamente integrados. Estos son Yahoo Messenger y Windows Live Messenger. Otro sistema orientado al intercambio de mensajes y comunicacin por voz es Skype. Fue desarrollado en 2003 por Janus Friis y Niklas Zennstrm y su tecnologa es completamente cerrada y propietaria. Mediante Skype se pueden mantener conversaciones de texto y voz (gratuitas) o telefnicas (mediante el pago de una cuota). Tambin soporta el uso de videoconferencia e intercambio de archivos.
Gins ngel Esteban Oller Pag. 4 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Servidor de mensajera instantnea en Linux (Ubuntu 10.04)


Vamos a configurar un servicio de mensajera instantnea utilizando el software ejabberd. ejabberd es un servidor de mensajera instantnea de cdigo abierto (GNU-GPL) para plataformas Unix (BSD, GNU/Linux, etc), Microsoft Windows y otras, que utiliza el protocolo XMPP. Est escrito principalmente en Erlang; es software concurrente y distribuido. Alexey Shchepin fund el proyecto en 2002 y contina mantenindolo. El nombre ejabberd significa Erlang Jabber Daemon . Se escribe en letras minsculas solamente, que es uso comn en el mundo de Unix. El objetivo del proyecto ejabberd es la creacin de un servidor XMPP estable y con variedad de posibilidades. Antes de proceder con la instalacin, debemos tener en cuenta que, puesto que los JID son de la forma usuario@dominio, debemos configurar nuestro servidor DNS para que resuelva el dominio correctamente. Supongamos que nuestro dominio se llama midominio.com. Nuestro equipo servidor puede llamarse servidor1 por ejemplo, pero nosotros no queremos que los JID sean de la forma usuario@servidor1.midominio.com, por lo que no tiene sentido que tengamos una entrada en la definicin de la zona midominio.com para el equipo servidor1, sino que queremos que resuelva midominio.com hacia una maquina concreta. Para ello, el archivo de configuracin de la zona debe quedar:
; ; BIND data file for midominio.com ; @ IN SOA midominio.com. root.midominio.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Default TTL IN NS dns.midominio.com. IN MX 10 correo.midominio.com. aula5pcprofe IN CNAME aula5pc1 aula5pc1 IN A 192.168.0.101 aula5pc2 IN A 192.168.0.102 aula5pc3 IN A 192.168.0.103 aula5pc4 IN A 192.168.0.104 aula5pc5 IN A 192.168.0.105 aula5pc6 IN A 192.168.0.106 aula5pc7 IN A 192.168.0.107 aula5pc8 IN A 192.168.0.108 aula5pc9 IN A 192.168.0.109 aula5pc10 IN A 192.168.0.110 www IN A 192.168.0.112 dns IN A 192.168.0.112 correo IN A 192.168.0.112 @ IN A 192.168.0.112

Con la ltima lnea conseguimos nuestro objetivo. Si hacemos ping midominio.com nos responder la maquina cuya IP es 192.168.0.112.

Gins ngel Esteban Oller

Pag. 5 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Instalacin
ejabberd se encuentra en los repositorios de Ubuntu, por lo que la instalacin resulta tan sencilla como:
$ sudo apt-get install ejabberd

Despus de la instalacin del paquete principal y sus dependencias, el servidor se pondr en marcha o puede que falle en el intento. En cualquier caso, nosotros haremos caso omiso y seguiremos con el proceso de configuracin.

Configuracin
Los archivos de configuracin se encuentran en el directorio /etc/ejabberd. Empezamos editando el archivo /etc/ejabberd/ejabberd.cfg; en este archivo el carcter % indica comentario. Localizamos la siguiente seccin y ajustamos los parmetros de administrador y host:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Options which are set by Debconf and managed by ucf %% Admin user {acl, admin, {user, "usuario", "midominio.com"}}. %% Hostname {hosts, ["midominio.com"]}. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

El usuario que hemos establecido ser el que posteriormente nos va a permitir administrar nuestro servidor; no es un usuario del sistema y an no existe, tendremos que crearlo despus. El nombre de dominio que establezcamos debe poder ser resuelto por el servicio DNS. Ahora localizamos la seccin CAPTCHA y la dejamos como sigue:
%% {captcha_cmd, "/usr/lib/ejabberd/priv/bin/captcha.sh"}. %% %% Host part of the URL sent to the user. %% The port specified must be configured as the "ejabberd_http" %% listener which must have the "captcha" directive included %% in its configuration (see the "LISTENING PORTS" section above). %% {captcha_host, "midominio.com:5280"}. %%

A continuacin editamos el archivo /etc/default/ejabberd y ajustamos la siguiente lnea:


ERLANG_NODE=ejabberd@servidor1

donde servidor1 es el nombre real de nuestro servidor. Despus de ello vamos a poner en marcha el servidor. Lo primero ser purgar todo lo que el demonio haya escrito en el directorio /var/lib/ejabberd:
$ sudo rm -vrf /var/lib/ejabberd/*

Y matamos los demonios que estn activos, ya que como probablemente el servidor no se ha iniciado bien no se podr detener con sudo service ejabberd stop:
Gins ngel Esteban Oller Pag. 6 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

$ sudo killall beam $ sudo killall epmd

Nota: cada vez que tengamos un error de configuracin y tengamos problemas para iniciar el servidor, tendremos que seguir este proceso. Y ahora iniciamos el servicio; y si todo va bien:
usuario@servidor1:~$ sudo service ejabberd start Starting jabber server: ejabberd. usuario@servidor1:~$

Para comprobar que el nodo est funcionando correctamente:


usuario@servidor1:~$ sudo ejabberdctl status The node ejabberd@servidor1 is started with status: started ejabberd 2.1.2 is running in that node

Si por contra las cosas no fueran bien aparecera el mensaje siguiente:


usuario@servidor1:~$ sudo ejabberdctl status Failed RPC connection to the node ejabberd@servidor1: nodedown

Veamos los puertos que se han abierto:


usuario@servidor1:~$ nmap localhost Starting Nmap 5.00 ( http://nmap.org ) at 2011-06-03 17:09 CEST Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1. Interesting ports on localhost (127.0.0.1): Not shown: 984 closed ports PORT STATE SERVICE 21/tcp open ftp 25/tcp open smtp 53/tcp open domain 80/tcp open http 110/tcp open pop3 143/tcp open imap 443/tcp open https 631/tcp open ipp 993/tcp open imaps 995/tcp open pop3s 3306/tcp open mysql 5222/tcp open unknown 5269/tcp open unknown 5280/tcp open unknown 10024/tcp open unknown 10025/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

Los cuales se describen a continuacin: 5222 puerto en el que escucha el demonio ejabberd; para conexin de los clientes. 5269 puerto para conexin de ejabberd con otros servidores. 5280 puerto en el que escucha el servicio de administracin de ejabberd.

En ente momento procedemos a la creacin del usuario administrador. Para ello utilizamos el comando ejabberdctl register usuario dominio password:
usuario@servidor1:~$ sudo ejabberdctl register usuario midominio.com usuario User usuario1@midominio.com succesfully registered Gins ngel Esteban Oller Pag. 7 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Para administrar nuestro servidor apuntamos nuestro navegador web a la direccin http://midominio.com:5280/admin, obteniendo el software de administracin:

Entre los clientes que podemos utilizar citamos: Kopete, Pidgin y Empathy.

Servidor de mensajera instantnea en Windows Server 2008


En esta ocasin vamos a utilizar un servidor de cdigo abierto, distribuido bajo licencia GPL y que utiliza el protocolo XMPP. Se trata del paquete Openfire, que est disponible tambin para plataformas Linux y MacOS. Sus caractersticas principales son: Est desarrollado en lenguaje Java. Incluye una interfaz de configuracin sencilla basada en web, por lo que se puede administrar de manera remota. Permite que se le instalen plugins que le aaden nuevas funcionalidades. Puede integrarse con otras redes como Yahoo Messenger, Windows Live messenger, Google Talk y AOL. Soporta envo de mensaje fuera de lnea y transferencia de archivos. Permite el envo cifrado mediante SSL/TSL.

Openfire es muy estable y robusto, lo que le supuso en 2006 la obtencin del premio ServerWatch Product por ser el mejor servidor de comunicaciones en tiempo real. Actualmente se distribuye la versin 3.7.0 disponible en la seccin de descargas del sitio oficial: http://www.igniterealtime.org/projects/openfire/.
Gins ngel Esteban Oller Pag. 8 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Instalacin de Openfire en Windows


Es conveniente descargar el paquete openfire_3_7_0.exe en vez de el paquete comprimido, ya que este incluye Java JRE (Java Runtime Environment), o lo que es lo mismo, el entorno necesario para que se puedan ejecutar aplicaciones Java en nuestro equipo. Una vez descargado procedemos a su ejecucin la cual pondr en marcha un asistente qque nos guiar:

una vez elegido el lenguaje pulsamos OK y seguimos los pasos del asistente:

Gins ngel Esteban Oller

Pag. 9 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Gins ngel Esteban Oller

Pag. 10 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Una vez finalizada la instalacin el servidor se pondr en marcha:

Configuracin de Openfire
Para iniciar el proceso de configuracin y establecer los parmetros necesarios para el correcto funcionamiento del servidor pulsamos el botn Launch Admin de la ventana anterior o apuntamos nuestro navegador a la url http://localhost:9090, obteniendo el asistente de administracin, que al ser ejecutado por primera vez aparece as:

En la siguiente ventana indicamos el nombre del dominio asociado con el servicio de mensajera, el puerto de la consola de administracin y el puerto seguro:
Gins ngel Esteban Oller Pag. 11 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

A continuacin indicamos la base de datos en la que Openfire va a almacenar la informacin. Puede ser externa (MySQL, Oracle, SQL Server, DB, etc) o interna; se recomienda usar una externa para una gestin ms eficiente:

Gins ngel Esteban Oller

Pag. 12 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Nosotros pretendemos utilizar MySQL, por lo que vamos a proceder a instalarlo y a crear la base de datos necesaria. Nos vamos al sitio oficial de MySQL y nos descargamos la ltima versin estable, 5.5.12, para nuestro sistema. Instalamos MySQL con las opciones que nos ofrece por defecto siguiendo los pasos del asistente de instalacin. Si deseamos una herramienta grfica de administracin y no queremos utilizar phpMyAdmin, podemos instalar MySQL Control Center, que encontraremos en http://sourceforge.net/projects/mysqlcc/ y que tras unos retoques lo tendremos en espaol.

Ahora, para crear la base de datos necesaria para Openfire utilizamos el archivo openfire_mysql.sql que contiene el script SQL necesario y que nos proporciona el propio Openfire; dicho archivo se encuentra en la carpeta C:\Archivos_de_
Programa\Openfire\resources\database.

En primer lugar creamos la base de datos (esta tarea no est implementada en el script aunque podramos incluirla); la llamamos openfire:

Gins ngel Esteban Oller

Pag. 13 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Una vez creada la base de datos la seleccionamos (nos conectamos), pulsamos sobre el botn SQL, localizamos el archivo

y lo ejecutamos.

La base de datos se crear

Gins ngel Esteban Oller

Pag. 14 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Creamos el usuario openfire y le concedemos todos los privilegios (aunque todos no sean necesarios) sobre la base de datos openfire. Y ahora continuamos con la configuracin de Openfire; indicamos los parmetros de la fuente de datos:

Gins ngel Esteban Oller

Pag. 15 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

En esta pantalla los parmetros de la cuenta de administrador:

Administracin de Openfire
Para administrar Openfire apuntamos nuestro navegador a http://localhost:9090; nos autentificamos con el usuario admin y el password que indicamos en el proceso de configuracin y accedemos al entorno de administracin del servicio

Gins ngel Esteban Oller

Pag. 16 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Lo primero que vamos a realizar ser la creacin de una cuenta de usuario. Para ello accedemos a la pestaa Usuarios/Grupos || Crear Nuevo Usuario

rellenamos los campos y creamos el usuario; as aadimos los que necesitemos. Ahora podemos configurar nuestro cliente preferido y comprobar el funcionamiento. Ojo con el firewall de Windows Server!
Gins ngel Esteban Oller Pag. 17 de 18

Servicios de red e Internet

Servicio de mensajera instantnea

Otra tarea de administracin interesante consiste en conseguir que nuestro servidor sea capaz de validar cuentas de usuario definidas en el servicio Google Talk. Para ello seguiremos estos pasos: Asegurarnos de que nuestro servidor Openfire tiene asociado un registro SRV en el servicio DNS de Internet; es decir, si tenemos por ejemplo el dominio aldeagala.com registrado pblicamente, el DNS pblico que gestiona ese dominio debe tener un registro SRV indicando qu equipo del dominio ofrece el servicio Openfire. En el entorno de administracin de Openfire seleccionamos Servidor || Configuracin del servidor || Servidor a servidor. En la seccin Servidor habilitado marcamos el botn Habilitado y especificamos el puerto 5269 que es el que usa el servidor Google Talk para conectarse con otros servidores. En la seccin Permitido conectar aadimos el servidor de Google, que es talk.google.com.

Como Google Talk y Openfire usan el protocolo XMPP los intercambios de informacin entre ambos son rpidos y sencillos. Openfire se puede conectar a otros servidores como Windows Live Messenger pero para ello es necesario configurar una pasarela.

Gins ngel Esteban Oller

Pag. 18 de 18

You might also like