Auditoría en OpenLDAP

Desde hace tiempo vengo implantando OpenLDAP para poner en marcha proyectos de gestión de la identidad en organizaciones. La principal ventaja que nos aporta el uso de software libre para estos proyectos, es la posibilidad de retocar el código fuente y desarrollar overlays que nos permitan extender las funcionalidades que traen de serie, pudiendo adaptar así la solución a las necesidades del cliente y generar una solución óptima para él a un precio adsequible.

Estos proyectos, casi siempre se centran en la provisión de cuentas de acceso centralizada y automatizada: Desde OpenLDAP hacia otros sistemas como eDirectory, Active Directory, Oracle, Linux, etc. Para ello se suelen relajar las políticas de cuenta, dado que no siempre se tienen las mismas posibilidades de configuración en los distintos sistemas ni se implementan de la misma manera. Al final, esto degenera en que las contraseñas de las cuentas de usuario no poseen ninguna complejidad y las conservan por los tiempos de los tiempos.

Esta situación se puede corregir con el uso de políticas en OpenLDAP a partir de la versión 2.3. Para acctivarlas tendremos que editar el fichero de configuración de nuestro servidor OpenLDAP y aplicar los siguientes cambios:

  1. Incluir el esquema de definición de políticas
    include       /etc/openldap/schema/ppolicy.schema
  2. Añadir el módulo:
    modulepath    /usr/lib64/openldap
    moduleload ppolicy.la
  3. Indicar el objeto que contendrá la política de nuestro directorio, justo después de la definición del backend de la base de datos que usaremos.
    overlay         ppolicy
    ppolicy_default "cn=defaultpwpolicy,dc=DOMINIO

Reiniciar el servicio para aplicar los cambios. Crear un fichero LDIF con el siguiente contenido que será nuestra política de seguridad:
dn: cn=defaultpwpolicy,dc=DOMINIO
cn: defaultpwpolicy
objectClass: top
objectClass: device
objectClass: pwdPolicy
pwdAttribute: userPassword
pwdAllowUserChange: TRUE
pwdMustChange: FALSE

La añadiremos al directorio...
ldapadd -x -h localhost -D "cn=admin,dc=DOMINIO" -w CLAVE -f politica.ldif

Esta política es muy sencillita y permisiva: Solo nos sirve para mantener en el campo pwdChangedTime cuándo se cambió por última vez la contraseña (userPassword) el usuario en LDAP. Podemos encontrar todas las opciones en la página man de salpo-ppolicy, y añadir complejidad a las contraseñas, duración, bloqueo después de intentos fallidos, etc.
La foto la he sacado del album de treevis en flickr

No hay comentarios: