Crea tu propio servidor XMPP ejabberd

Crea tu propio servidor XMPP ejabberd
xmpp

En este tutorial vamos a instalar ejabberd en nuestro servidor. Este daemon es una implementación libre del protocolo de mensajería instantánea XMPP.

Dicho protocolo es usado frecuentemente para la prestación de muchos servicios por google, facebook, tuenti... A mi juicio, la gran ventaja que ofrece es que es posible crear una gran red de servidores de forma que cada uno no dependa de otro y poder ofrecer un servicio descentralizado e independiente. Es decir, los usuarios conectados con el servidor que se monte siguiendo este tutorial tendrán conectividad plena con los de otros servidores XMPP tal como funciona el correo electrónico, por ejemplo.

[caption id="attachment_6362" align="aligncenter" width="818"]

funcionamiento xmpp

Ejemplo de envío de mensaje desde mengano a fulano, asociados a dos servidores distintos.[/caption]

Las posibilidades que ofrece, dependen en gran medida de la aplicación cliente que se autentifique con el servidor, estas pueden ser sin perjuicio de otras que me deje en el tintero:

  • Chat
  • Chat de grupo (MUC)
  • Transferencia de archivos.
  • Voz
  • Vídeo (Jingle)

Hay un manual completo oficial http://www.ejabberd.im/files/doc/guide.html

A ELLO: Para instalar el servidor en debian/ubuntu, como de costumbre: sudo apt-get update sudo apt-get install ejabberdModificación del archivo de configuración.

Lo más difícil de todo, que tampoco lo es tanto, es modificar el archivo de configuración /etc/ejabberd/ejabberd.cfg

sudo nano /etc/ejabberd/ejabberd.cfg Se buscan las líneas: %%Admin user {acl, admin, {user, "", "localhost"}}. %%Hostname {hosts, ["localhost"]}. Al final quedarán de la siguiente forma: %%Admin user {acl, admin, {user, "administrador", "servidor.es"}}. %%Hostname {hosts, ["servidor.es"]}.

Donde "administrador" es el nombre de quien queráis que administre el servidor. (aun no lo hemos creado) (hay que ponerlo con comillas incluidas). Donde servidor.es es el DNS o la dirección IP del servidor. (las cuentas de usuario serán del tipo usuario@servidor.es) En ambos sitios se pueden incluir varios separados por comas.

Ahora creamos el usuario administrador. Para que los cambios escritos en el archivo tengan efecto reiniciamos el servidor ejabberd. También vale reiniciar la máquina.

sudo service ejabberd restartCreamos el usuario:sudo ejabberdctl register administrador servidor.es 123patata

Donde administrador es el usuario que queramos que sea el administrador (el mismo que pusimos en el archivo), servidor.es el servidor (también ha de coincidir con el del archivo) y 123patata la contraseña de usuario administrador.

Con esto ya deberíamos tener listo el servidor.

¡Perfecto!El servidor está listo para funcionar.COSAS ÚTILES:

Ejabberd tiene un panel de administración web accesible desde el puerto 5280 http://servidor.es:5280/admin se entra con el usuario y contraseña escritos anteriormente.

[caption id="attachment_6350" align="aligncenter" width="600"]

panel administracion ejjaberd

panel administracion ejjaberd[/caption] Para agregar más usuarios se puede hacer desde ese panel o con el comando: sudo ejabberdctl register fulano servidor.es 123patata2

Donde fulano es el nombre del nuevo usuario y 123patata2 su contraseña. (servidor.es es el servidor que debe coincidir con el del archivo ejabberd.cfg)

para eliminar un usuario, también desde el panel o con el comando:

sudo ejabberdctl unregister fulanoHay muchos clientes disponibles para este servidor:

Linux y windows: pidgin o jitsi De forma nativa algunas distribuciones traen clientes XMPP (p. ej: Empathy)

Para android yo recomiendo Xabber. Solo tiene chat y chat multiusuario pero lo que hace lo hace muy bien y es de código abierto. Además tiene sistema OTR de cifrado para los más paranoicos.

[caption id="attachment_6351" align="aligncenter" width="480"]

aplicacion para movil

ejemplo de usuarios conectados a nuestro servidor desde android[/caption]