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…
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