Prosody - XMPP
Prosody es 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.luacontrola todo el servicioEficiente 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.desdelinux]
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:
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
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á:
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.localServidor:
empresa.localPuerto: 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