Ejabberd + Samba4 + Shared Roster

De WIkipedia:

Ejabberd es un servidor de mensajería instantánea de código abierto (GNU GPL) para plataformas Unix (BSD, GNU/Linux, etc), Microsoft Windows y otras. Para la comunicación instantánea se utiliza XMPP y está escrito principalmente en Erlang.Consume menos RAM que OpenFire, lo cual lo hace perfecto para el objetivo que se nos propone, instalar un sistema de mensajería instantánea que consuma pocos recursos.

Shared Roster: traducido del inglés debería ser algo como: «Lista compartida» o «Alineación compartida», donde la lista/alineación compartida son los usuarios del directorio que tengan cuenta configurada con el Ejabberd.

Sabiendo esto, instalamos Ejabberd:

apt install -y ejabberd

Editar /etc/ejabber/ejabberd.yml:

hosts:
- "inutil.cu"

##
## Authentication using LDAP
auth_method: ldap

## List of LDAP servers:
ldap_servers:
- "addc.inutil.cu"
##
## Encryption of connection to LDAP servers:
ldap_encrypt: none
## ldap_encrypt: tls

## Port to connect to on LDAP servers:
ldap_port: 389
## ldap_port: 636

## LDAP manager:
ldap_rootdn: "cn=adminad,ou=inutil,dc=inutil,dc=cu"

## Password of LDAP manager:
ldap_password: "Admin123*"

## Search base of LDAP directory:
ldap_base: "ou=inutil,dc=inutil,dc=cu"

## LDAP attribute that holds user ID:
ldap_uids:
- "sAMAccountName"

Mostrar todos los usuarios existenctes conectados, o «Shared Roster»:

mod_shared_roster_ldap:
ldap_base: "ou=inutil,dc=inutil,dc=cu"
ldap_groupattr: "department"
ldap_groupdesc: "department"
ldap_memberattr: "sAMAccountName"
ldap_useruid: "sAMAccountName"
ldap_userdesc: "cn"
ldap_rfilter: "(objectClass=user)"
ldap_filter: "(objectClass=user)"

Habiendo hecho esto, reiniciamos el servicio:

/etc/init.d/ejabberd restart

Ahora veamos como agregar usuarios:

0- Configurar el path del usuario administrador del ADDC, el cual hará las búsquedas en el árbol del directorio:

Recuerden que esta configuración debe estar bien detallada en el archivo de configuración de Ejabberd…

1- Agregar usuarios en el árbol del directorio, como siempre se ha hecho y en el departamento que le toca. Para ello, darle en Propiedades:

«Propiedades/Organización/Departamento», con el departamento al que pertenece para que salga ordenado en el roster del Ejabberd, cuando se conecten con el Pidgin, Pandion, Spark.

2- Después de hechos todos los cambios, veremos los usuarios conectados:

Lo demás es configurar el cliente con usuario, contraseña, dominio, ip del servidor y permitir usar SSL y aceptar el certificado de seguridad, nada complicado. Adjunto la configuración, por si la necesitan.

Ahora hagamos algo, evitemos loguearse a los usuarios cuyas cuentas en el ADDC estén desabilitadas, para eso debemos editar el ldap_filter en la cadena de conexión al samba4 y en el shared_roster:

ldap_filter: "(&(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"

Como se muestra en las fotos:
En la cadena de conexión
Y:

En el Shared_Roster

Muchas gracias al colega @H3R3T1C, por la ayuda prestada con el tema filtros.

Por el momento eso es todo, espero les sirva. Saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *