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: [email protected]
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?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Luis Felipe Domínguez Vega 10 artículos
Administrador de Sistemas y Programador entusiasta de tecnologías libres.

1 comentario

  1. Firefox 64.0 Firefox 64.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0

    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

Responder a Tonny Lopez Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.


*