Eliminando los usuarios de nuestro Zimbra que no están en el dominio

Buenas colegas, acabo de terminar un sencillo programa que espero le sirva a varios SysAdmins. Todos hemos visto como con el Zimbra establecemos que la autenticación de nuestros usuarios se haga a través de nuestro servidor de dominio. Pero con el paso del tiempo se van eliminando usuarios del dominio, pero se quedan en el servidor Zimbra, puesto que esa asociación no es automática.

Me di a la tarea de la creación de un programa (en Ruby por puro hobbie) que nos automatizara dicho proceso. El script en una descripción sencilla lo que hace es buscar todos los usuarios de dominio y del Zimbra, cotejarlos y mostrar (o eliminar automáticamente) los usuarios que no estén tanto en el dominio como en una lista blanca especificada por configuración.

Sin más, pueden acceder directamente al repositorio en GitHub (Enlace)

Instalación

Es muy sencilla la instalación, puesto que un simple script de Ruby. Solo tenemos que tener Ruby y las gemas de las cuales depende la aplicación que son:

net-ssh
net-ldap
commander

En caso de usar Debian, estas dependencias vienen en el repositorio (al igual que Ruby), solo bastaría con instalarlos con apt

apt install ruby ruby-net-ssh ruby-net-ldap ruby-commander

Uso

Una vez obtenido el script e instaladas las dependencias, procedemos a crear un fichero de configuración para definir las variables de nuestro sistema (en el repositorio se encuentra un fichero de ejemplo del cual partir):

# Configuracion del servidor de dominio
ad_host: 172.16.0.1
ad_port: 389
ad_user: user@domain.com
ad_pass: '/Pa$$W0rd/'

# Atributo de donde sacar el nombre de usuario
ad_attr: samaccountname

# Árboles de búsqueda (pueden ser varios)
ad_search:
  - dc=domain,dc=cu

# Configuración SSH de Zimbra
zimbra_host: 172.16.0.2
zimbra_port: 22

# Debería ser root para poder cambiar para el usuario zimbra
zimbra_user: root

# Si el usuario no usa llave de autenticación
zimbra_pass: ''

# Ruta completa de la llave de autenticación
zimbra_key: ''

# Listado de usuario que se omiten si no están en el dominio
zimbra_white_list:
  - user1
  - user2

solo bastaría ejecutar el script con

ruby zimbrator.rb -c /ruta/completa/config.yaml [--delete] [--yes]

las opciones –delete y –yes son opcionales, por eso las pongo entre corchetes, la primera indica que el script se encargará de borrar los usuarios automáticamente luego de mostrarlos al usuario y recibir una confirmación de éste (confirmación que puede ser omitida usando el segundo argumento).

Espero que les sea de ayuda y comenten…

¿De cuánta utilidad te ha parecido este contenido?

Luis Felipe Domínguez Vega

Administrador de Sistemas y Programador entusiasta de tecnologías libres.

Ver comentarios

  • Buen dia Amigo, excelente aporte, pero se puede hacer en consola por comando y una por una, pienso que este tema es delicado si se comete algun error y la idea es dejar evidencia del buzon antiguo que se borrara. Si es asi me gustaria saber si tienes el comando para eliminar esta o estas cuentas una por una. lo digo porque el backup semanal lo hace a cuentas que ya hace mucho tiempo dejaron de laborar y a pesar que salgan en cero (0), lo ideal es no tenerlas mas en esa copia. Gracias y atento. Saludos desde Monteria-Colombia

Compartir
Publicado por
Luis Felipe Domínguez Vega

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

8 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

1 año hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

1 año hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

1 año hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace