Page cover

Ejabberd - XMPP

Se trata de un servidor de mensajería instantánea de código abierto. Válido para plataformas Unix BSD, GNU/Linux o Microsoft Windows entre otras. Para la comunicación instantánea se utiliza XMPP.

Alexey Shchepin fundó el proyecto en 2002 y continúa manteniéndolo. El nombre « ejabberd » significa « Erlang Jabber Daemon ». Se escribe en letras minúsculas solamente, que es uso común en el mundo de Unix. El objetivo del proyecto ejabberd es la creación de un servidor XMPP estable y con variedad de posibilidades.

La documentación y casos de uso la puedes encontrar aquí: https://docs.ejabberd.im/use-cases/

Vamos a ver como funciona:

Instala el software

Lo primero, como siempre, será actualizar los paquetes de nuestro sistema:

apt update
apt upgrade

Tras tener los paquetes actualizados, procedemos a instalar eJabberd. Para eso nos descargaremos el paquete directamente desde el repositorio oficial de eJabberd:

wget https://github.com/processone/ejabberd/releases/download/23.01/ejabberd_23.01-1_amd64.deb
sudo dpkg -i ejabberd*.deb

Una vez se hayan instalado todos los paquetes, procedemos a parar el servicio.

sudo systemctl stop ejabberd

Configuración de eJabberd

A continuación configuraremos el servicio de eJabber, como hemos configurado anteriormente el hostname del servidor, tendremos configuración ya con nuestro dominio. Para eso editaremos el fichero de configuración:

Ahora añadiremos o modificaremos:

  1. Añadimos el dominio del servidor al host

  1. Buscamos el apartado trusted_network y lo ponemos en all

  2. Ahora le vamos a dar permisos de administrador al usuario admin que hemos creado:

El acceso web viene habilitado por defecto por las siguientes líneas, no hace falta que cambies nada:

La interfaz web usa el protocolo HTTP a través del puerto 5280

Vamos hasta el apartado de mod_muc para añadir un host personalizado:

Comprobar configuración

Con eJabberd hay una forma para comprobar que la configuración que tenemos es correcta, para ello ejecutaremos este comando:

La salida de este comando es el siguiente:

Si pulsamos enter para continuar, nos mostrará el log del inicio del servicio y podremos acceder al panel de admin.

Registrar usuarios en ejabberd

Ahora que tenemos todo funcionando, podemos crear un usuario para comprobar que funciona en un cliente de XMPP:

Debemos crear primero de todo el usuario admin:

Para comprobar que usuarios hay creados podemos usar el comando:

Acceso a panel de administración

Ahora podemos acceder al acceso web desde http://[tu_ip]:5280/admin y nos cargará lo siguiente tras iniciar sesión con el usuario admin@[tu_dominio]:

Recuerda poner el dominio correcto
Panel de administración de ejabberd

Lo que deberíamos hacer ahora es crear dos usuarios normales para probar la conexión. Para ello accede a Dominios virtuales>localhost>usuarios:

Usuarios creados

Configurar cuenta de XMPP en un cliente con Pidgin

Podemos utilizar el cliente que más nos guste, hay una lista muy larga dependiendo sistemas operativos y versiones como Dino pero en este caso usaremos Pidgin, que también es un cliente XMPP bastante sencillo y agradable.

Utilizaremos DOS máquinas virtuales cada una con una cuenta diferente y configuraremos:

  • Nombre: (el que hayas creado en el admin)

  • Dominio: alexdns.local

  • Recurso: (opcional, es para identificar dispositivos)

  • Contraseña: ****

Debes pasar a opciones avanzadas y configurar "Conectar con el servidor" y poner la IP correcta:

Ventana de configuración de cuenta de usuario

Te pedira aceptar el certificado SSL y podremos iniciar conversaciones con nuestros amigos y amigas simplemente añadiendo el usuario en una MV y otra sesión con otro usuario en otra MV:

Los usuarios se comunican entre si

Crear sala de chat

Una vez hayas llegado hasta aquí es posible que te interese crear salas de chat para tus usuarios, vamos a ver como.

En nuestro caso, si has seguido la guía anterior deberias tener configurado como sala MUC (Multi-User Chat), muc.alexdns.local por lo que ahora toca ir a pidgin:

  1. Abre Pidgin y ve a Amigos > Unirse a un chat.

  2. En la ventana emergente:

    • Cuenta: Tu cuenta XMPP ya conectada.

    • Sala: El nombre que quieres para la sala (ej. cafeteria).

    • Servidor: Usualmente muc.alexdns.local

    • Alias: (Opcional) Nombre para mostrar la sala en tu lista.

    • Contraseña: (Opcional) si quieres restringir el acceso.

  3. Haz clic en Unirse.

    Si la sala no existía antes, se creará automáticamente (esto depende de los permisos en mod_muc).

Una vez dentro de la sala puedes:

  • Hacer la sala persistente.

  • Establecer quién puede entrar.

  • Poner contraseña.

  • Hacerla pública o privada.

Webgrafía

Última actualización