Page cover

Prosody - XMPP

Prosody arrow-up-rightes un servidor de mensajería instantánea moderno basado en el protocolo XMPP (Extensible Messaging and Presence Protocol), escrito en el lenguaje de programación Lua y publicado bajo licencia MIT, lo que lo hace completamente open source y gratuito.

¿Qué hace Prosody?

Prosody actúa como el "servidor de correo" pero para mensajería instantánea: gestiona las cuentas de usuario, enruta los mensajes entre clientes y, si se configura, con otros servidores externos. Sus objetivos de diseño son tres:

  • Fácil de configurar — un solo fichero .cfg.lua controla todo el servicio

  • Eficiente en recursos — consume muy poca RAM y CPU, ideal para VMs de laboratorio

  • Extensible mediante módulos — funcionalidades como salas de grupo (MUC), historial de mensajes, transferencia de archivos o llamadas de voz/vídeo se activan simplemente añadiendo módulos.

Funcionalidades principales

Mediante Prosody y un cliente compatible (como Gajim o Pidgin) se puede:[blog.desdelinuxarrow-up-right]​

  • Enviar y recibir mensajes instantáneos entre usuarios

  • Ver el estado de presencia de los contactos (conectado, ausente, ocupado...)

  • Crear salas de chat grupal (componente MUC — Multi-User Chat)

  • Transferir archivos entre usuarios

  • Realizar llamadas de voz y vídeo mediante la extensión Jingle

  • Cifrar las comunicaciones con TLS

Arquitectura cliente-servidor

Prosody escucha en dos puertos principales:

Puerto
Tipo
Función

5222

C2S (Client to Server)

Comunicación entre el cliente (Gajim) y el servidor

5269

S2S (Server to Server)

Federación entre servidores XMPP

5280

HTTP/BOSH

Acceso al servidor desde navegador web

circle-info

En entorno de aula, Prosody destaca frente a otras opciones open source como ejabberd u OpenFire precisamente por su simplicidad. ejabberd es más potente pero bastante más complejo de configurar, y OpenFire requiere Java.

Implementación del servicio

Escenario del laboratorio

Siguiendo el ejemplo de la guia de servidor de correo, vamos a seguir con el mismo esquema de simulación. Simularemos una empresa llamada nombredetuempresa.local. El esquema de máquinas será:

Máquina
SO
Rol
IP ejemplo

servidor

Ubuntu Server 24.04

Postfix + Dovecot + Prosody

192.168.1.10

cliente1

Ubuntu Desktop 24.04

Thunderbird + Gajim

192.168.1.20

cliente2

Ubuntu Desktop 24.04

Thunderbird + Gajim

192.168.1.21

Ambas VMs deben estar en red interna (Host-Only o Internal Network en VirtualBox) y un segundo adaptador puente para las descargas e instalaciones. Añade al /etc/hosts del servidor y los clientes la resolución manual del dominio:


Ahora ya podemos seguir con la instalación:

Paso 1: Instalar Prosody

Añade el repositorio oficial para obtener la versión más reciente de este software:​

Paso 2: Configurar Prosody

Ajusta las secciones clave del archivo de configuración, fíjate bien en los comentarios:​

Ahora vamos a revisar la configuración y reiniciar el servicio:

Paso 3: Crear usuarios XMPP

Paso 4: Abrir puertos en el firewall

Por si acaso:

Paso 5: Cliente Gajim

Vamos con nuestras máquinas clientes a instalar el cliente de chat:

Configura la cuenta en Gajim:

  • JID: alumne1@empresa.local

  • Servidor: empresa.local

  • Puerto: 5222

  • Desmarca "Requerir cifrado" si no tienes certificado válido

Desde cada cliente debes agregarte mutuamente como contactos y enviar mensajes. Para el chat grupal, entra en Cuentas → Unirse a sala y conecta a aula@conference.empresa.local.

Última actualización