Volver al blog

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

zimbra

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

Suscríbete · Newsletter

Mantente al día, cada semana

Artículos prácticos sobre Linux, redes, seguridad, virtualización y la nube — escritos por sysadmins cubanos.

  • Guías y tutoriales de administración de sistemas
  • Nuevos artículos sobre servidores, redes y nube
  • Sin spam, cancela cuando quieras

Respetamos tu bandeja de entrada. Cancela con un clic.

Patrocinado por SYSCU

¿Tu infraestructura en la nube te cuesta de más?

SYSCU optimiza tu nube de punta a punta — FinOps, DevOps & CI/CD, migraciones a AWS, seguridad y observabilidad. Equipo 100 % senior que reduce tu factura hasta un 40 % y acelera tus despliegues en semanas.

Nuevo · BetaSYSCU Atlas Insight — la plataforma FinOps que convierte tu gasto AWS en decisiones: visibilidad multi-cuenta, recomendaciones automáticas y alertas de anomalías.

No comments yet