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 « ErlangJabberDaemon ». 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.
Lo primero, como siempre, será actualizar los paquetes de nuestro sistema:
aptupdateaptupgrade
Tras tener los paquetes actualizados, procedemos a instalar eJabberd. Para eso nos descargaremos el paquete directamente desde el repositorio oficial de eJabberd:
Se puede instalar eJabberd desde repositorios de Ubuntu, pero parece que tiene un bug y no se puede levantar correctamente el servicio, por lo que recomiendo instalar el paquete manualmente.
Una vez se hayan instalado todos los paquetes, procedemos a parar el servicio.
sudosystemctlstopejabberd
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:
Añadimos el dominio del servidor al host
Buscamos el apartado trusted_network y lo ponemos en all
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:
Por defecto, el host de mod_muc es conference.[tu_dominio], pero en este caso lo hemos cambiado por muc.alexdns. Si no quieres modificar este host, ten en cuenta el subdominio conference.alexdns.local.
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:
Abre Pidgin y ve a Amigos > Unirse a un chat.
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.
Haz clic en Unirse.
Si la sala no existía antes, se creará automáticamente (esto depende de los permisos en mod_muc).
--------------------------------------------------------------------
IMPORTANT: ejabberd is going to start in LIVE (interactive) mode.
All log messages will be shown in the command shell.
You can interact with the ejabberd node if you know how to use it.
Please be extremely cautious with your actions,
and exit immediately if you are not completely sure.
To exit this LIVE mode and stop ejabberd, press:
q(). and press the Enter key
--------------------------------------------------------------------
To bypass permanently this warning, add to ejabberdctl.cfg the line:
EJABBERD_BYPASS_WARNINGS=true
Press return to continue
2023-01-17 16:36:38.340359+00:00 [info] ejabberd 21.12-1 is started in the node ejabberd@localhost in 1.66s
2023-01-17 16:36:38.340743+00:00 [info] Start accepting UDP connections at [::]:3478 for ejabberd_stun
2023-01-17 16:36:38.341079+00:00 [info] Start accepting TCP connections at [::]:5222 for ejabberd_c2s
2023-01-17 16:36:38.341195+00:00 [info] Start accepting TLS connections at [::]:5223 for ejabberd_c2s
2023-01-17 16:36:38.341260+00:00 [info] Start accepting TCP connections at [::]:5269 for ejabberd_s2s_in
2023-01-17 16:36:38.341925+00:00 [info] Start accepting TLS connections at [::]:5443 for ejabberd_http
2023-01-17 16:36:38.342025+00:00 [info] Start accepting TLS connections at [::]:5280 for ejabberd_http
2023-01-17 16:36:38.342289+00:00 [info] Start accepting TCP connections at [::]:1883 for mod_mqtt
# Con esta estructura
ejabberdctl register [USUARIO] [DOMINIO] [CONTRASEÑA]