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







No comments yet