LDAP usuarios, contraseñas y permisos

Embed Size (px)

DESCRIPTION

Documento explicando la creación y uso de usuarios root y usuarios de un directorio de LDAP, así como las políticas de contraseñas y las instrucciones de control de acceso

Citation preview

OpenDS permite configurar varios usuarios root, Global Administratos para administrar varios dominios administrativos y asignar permisos diferentes privilegios de usuario root a administradores.

USUARIOS ROOTUn usuario root es una entrada de usuario en el ldap con una serie de permisos predeterminados, el total acceso de lectura y escritura sobre todos los datos del server. Los derechos predeterminados de los usuarios root estan definidos en la entrada cn=Root Dns,cn=config. OpenDS crea un usuario root por default cn=Directory Manager , cuya entrada es cn=Directory Manager,cn=Root Dns,cn=config. El servido permite varios usuarios root, los cuales son los nicos usuarios que se encuentran en la rama cn=config y heredan automaticamente los privilegios de usuario root sin que estos se le sean otorgados.

PERMISOS DEL USUARIO ROOT Los permisos de los usuarios '' root '' son los siguientes: Permiso Descripcin bypass-acl modify-acl config-read config-read ldif-import ldif-export backend-backup backend-restore server-shutdown server-restart disconnect-client cancel-request unindexed-search password-reset update-schema privilege-change data-sync jmx-read jmx-write jmx-notify proxied-auth Permite al usuario evadir la evaluacin de control de acceso Modificar las instrucciones de control de acceso del servidor Leer la configuracin del servidor Escribir sobre la configuracin del servidor Importar el ldif Exportar el ldif Realizar un respaldo del back-end Restaurar el back-end Apagar el servidor Reiniciar el servidor Terminar arbitrariamente las conecciones del cliente Cancelar arbitrariamente las solicitudes del cliente Realizar operaciones de busqueda sin ndices Reestablecer los password de los usuarios Actualizar el esquema del servidor Cambiar los privilegios de un usuario o los privilegios que tienen predeterminados los usuarios root Participar en el entorno de sincronizacin de datos Leer los los atributos del JMX ('' Java Management Extensions'') Escribir sobre los atributos JMX Suscribirse a las notificaciones JMX Usar un control de autorizacin proxy o solicitar un ID de autorizacin SASL alternativo

Para cambiar los permisos predeterminados para los usuarios root, as como para ver cuales se tienen definidos, desde linea de comandos se accede a la carpeta bin en la carpeta de instalacin (teniendo permisos necesarios para la ejecucin). Se introduce: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig set-root-dn-prop --port {puerto de administracin} --bindDN {dn de usuario root} --bindPassword {pasword} }}} Se solicitara la IP o el nombre del host del servidor:

{{{ >>>> Especifique los parmetros de conexin LDAP de OpenDS Direccin IP o nombre de host de Directory Server [{server name}]: Presionar enter . Se obtiene lo siguiente: >>>> Configurar las propiedades de DN root Propiedad Valor(es) ----------------------------------------------------------------------1) default-root-privilege-name backend-backup, backend-restore, bypass-acl, cancel-request, config-read, config-write, disconnect-client, ldif-export, ldif-import, modify-acl, password-reset, privilege-change, server-restart, server-shutdown, unindexed-search, update-schema ?) ayuda f) finalizar: aplicar todos los cambios en DN root s) salir Introduzca la opcin [f]: Se escoge la opcin 1, esto nos lleva a: >>>> Configurando la propiedad "default-root-privilege-name" Especifica los nombres de los privilegios que se otorgarn a los superusuarios de forma predeterminada. La propiedad "default-root-privilege-name" presenta los siguientes valores: *) *) *) *) *) *) *) *) backend-backup *) ldif-import backend-restore *) modify-acl bypass-acl *) password-reset cancel-request *) privilege-change config-read *) server-restart config-write *) server-shutdown disconnect-client *) unindexed-search ldif-export *) update-schema

Desea modificar la propiedad "default-root-privilege-name"?

1) 2) 3) 4)

Mantener estos valores predeterminados Agregar uno o varios valores Suprimir uno o varios valores Suprimir todos los valores

?) ayuda s) salir Dependiendo la accin que se desee realizar es la opcin que se elige, en el caso de ser diferente privilegios diferentes a los que se tienen predeterminados para el usuario root aparece la opcin 5 varia permite restablecer valores predeterminados. Para agregar se tiene: Seleccione los valores que desea agregar: 1) 2) 3) 4) 5) 6) data-sync jmx-notify jmx-read jmx-write proxied-auth Agregar todos los valores

?) ayuda c) cancelar s) salir Introduzca una o varias opciones separadas por comas [c]: Y para eliminar: Seleccione los valores que desea suprimir: 1) 2) 3) 4) 5) 6) 7) 8) backend-backup 9) ldif-import backend-restore 10) modify-acl bypass-acl 11) password-reset cancel-request 12) privilege-change config-read 13) server-restart config-write 14) server-shutdown disconnect-client 15) unindexed-search ldif-export 16) update-schema

?) ayuda c) cancelar s) salir

Introduzca una o varias opciones separadas por comas [c]: Una vez realizado un cambio se vuelve a la pantalla de acciones donde aparece la opcin 6 que es invertir cambios >>>> Configurando la propiedad "default-root-privilege-name" (cont.) La propiedad "default-root-privilege-name" presenta los siguientes valores: *) *) *) *) *) *) *) *) *) backend-backup *) ldif-import backend-restore *) modify-acl bypass-acl *) password-reset cancel-request *) privilege-change config-read *) server-restart config-write *) server-shutdown data-sync *) unindexed-search disconnect-client *) update-schema ldif-export

Desea modificar la propiedad "default-root-privilege-name"? 1) 2) 3) 4) 5) Utilizar estos valores Agregar uno o varios valores Suprimir uno o varios valores Suprimir todos los valores Restablecer a los valores predeterminados: backend-backup, backend-restore, bypass-acl, cancel-request, config-read, config-write, disconnect-client, ldif-export, ldif-import, modify-acl, password-reset, privilege-change, server-restart, server-shutdown, unindexed-search, update-schema 6) Invertir los cambios ?) ayuda s) salir Introduzca la opcin [1]: Para guardar los cambios escogemos la opin 1. Y de ah se vuelve a una pantalla donde guardan nuestros cambios o salimos sin guardarlos. >>>> Configurar las propiedades de DN root Propiedad Valor(es) ----------------------------------------------------------------------1) default-root-privilege-name backend-backup, backend-restore, bypass-acl, cancel-request, config-read,

config-write, data-sync, disconnect-client, ldif-export, ldif-import, modify-acl, password-reset, privilege-change, server-restart, server-shutdown, unindexed-search, update-schema ?) ayuda f) finalizar: aplicar todos los cambios en DN root s) salir Introduzca la opcin [f]:

CREAR UN USUARIO ROOT El usuario root es posible crearse desde el panel de control de OpenDS, en la seccin Datos del diretorio se selecciona la opcin Administrar entradas y se abre una ventana. En esta se cambia el ND de base: por la opcin Todos los ND de base.

Se explora por el rbol de la parte izquierda por la siguiente ruta: cn=config -> Root Dns esta entrada es un grupo de clase ds-cfg-root-dn . Al dar clip derecho sobre este elemento en el rbol se selecciona la opcin Nuevo a partir de LDIF .

En la nueva pantalla se ingresa: dn: cn={MyRootUser},cn=Root DNs,cn=config objectClass: inetOrgPerson objectClass: person objectClass: top objectClass: ds-cfg-root-dn-user objectClass: organizationalPerson userPassword: {password} cn: {MyRootUser} sn: {MyRootUser} ds-cfg-alternate-bind-dn: cn={MyRootUser}

Sustituyendo los datos entre llaves conforme se desee configurar. Y presionando '' Aceptar ''. Entonces se muestra un mensaje informando que la entrada ha sido creada exitosamente.

CAMBIAR LOS PERMISOS DE UN USUARIO ROOT Para modificar los permisos de un usuario root, se escribe desde lnea de consola: sudo sh /usr/local/OpenDS-2.0.0/bin/ldapmodify -h localhost -p 1389 -D "dn del usuario root a modificar" -w {password usuario root} Despus se introduce dn: {dn del usuario root} changetype: modify add: ds-privilege-name ds-privilege-name: {- si se esta restringiendo}{nombre del privilegio} ... Y doble enter o CTRL+D para terminar de realizar los cambios, se realizarse se obtiene: Procesando solicitud MODIFY para {dn del usuario root} operacin MODIFY correcta para ND {dn del usuario root} Para retirar un atributo, ya sea un permiso o una restriccin, de manere similar, se introduce una vez dentro de ldapmodify: dn: {dn del usuario root} changetype: modify delete: ds-privilege-name ds-privilege-name: {- si se esta restringiendo}{nombre del privilegio} ... Para consultar los privilegios concedidos se ejecuta: sudo sh /usr/local/OpenDS-2.0.0/bin/ldapsearch -p 1389 -b "{dn a consultar}" -D "{usuario con permisos}" -w {password usuario} "objectclass=*" ds-privilege-name

ESTABLECIENDO LIMITES A USUARIOS ROOT Entre los lmites que se pueden asignar estn: Look-through limit que especifica el mximo numero de entradas que se examinan durante una sencilla operacin de bsqueda, si se excede entonces se corta la bsqueda y no se obtienen resultados de la bsqueda, se devuelve un error y se informa que se ha sobrepasado del lmite; Size limit especifica el numero de entradas que se regresan de una operacin de bsqueda, si el resultado de la bsqueda se excede del lmite establecido, entonces se regresan el nmero de resultados establecidos, se obtiene un error y se informa que se han enviado el mximo de entradas ; y Time limit que determina la cantidad mxima de segundos que el servidor puede invertir en una bsqueda. Para establecer lmites a un usuario root es necesario acceder a ldapmodify con un usuario root. En este caso para ejemplificar, se ingresa en el ldapmodify: dn: cn=MyRootUser,cn=Root DNs, cn=config changetype: modify add: ds-rlim-lookthrough-limit ds-rlim-lookthrough-limit: 1000

GLOBAL ADMINISTRATORSCuando se habilita el uso de varios servidores usando el instalador grfico o con la herramienta dsreplication, deben establecerse un nombre de usuario y contrasea para el Global Administrator , responsable de manejar y dar mantenimiento del bosque de rboles de LDAP. Para consultar los administradores globales que se tienen habilitados se encuentran en la rama cn=Administrators,cn=admin_data. Posible de consultar desde el panel de control de una manera muy similar que con los usuarios root, o mediante la linea de comandos con el ldapsearch de la siguiente manera. sudo sh /usr/local/OpenDS-2.0.0/bin/ldapsearch --hostname localhost --port 1389 --bindDN "{usuario con permisos suficientes, de preferencia root}" --bindPassword {password} --baseDN "cn=Administrators,cn=admin data"

ADMINISTRADORESLos administradores son personas dentro del ldap a los cuales se le asignan atributos similares a los de los usuarios root; con la diferencia que estos no tienen ningn permiso preestablecido y sus entradas no se encuentran en la rama de cn=config. Opcionalmente se puede crear un grupo de Administradores de los cuales estos son miembros, se recomienda no tener demasiados administradores. El mtodo por el cual se le asignan permisos a los administradores es idntico al cual se le asignan a los usuarios root; se accede al ldapmodify con un usuario con permisos necesarios y se ingresa: dn: {dn del usuario que se desea volver administrador} changetype: modify add: ds-privilege-name ds-privilege-name: {nombre del privilegio} De igual manera que para los usuarios root tambin es posible asignar limites de acceso como a los usuarios root.

POLTICAS DE CONTRASEASLas polticas de contraseas son un conjunto de reglas que rigen el uso de las contraseas dentro del servidor, adicionalmente forman parte de cualquier estrategia integral de seguridad para los directorios. El servidor de manera predeterminada incluye dos polticas de contraseas, una para los usuarios root y otra para los usuarios generales. Estas polticas pueden modificadas o aadirse nuevas polticas y aplicarlas para un especfico grupo de usuarios. Las polticas incluyen los siguientes aspectos configurables: Complejidad requerida. Especfica la composicin y nmero de caracteres con los que debe cumplir la contrasea. Historial. Determina el nmero de contraseas nicas que se deben usar antes de volver a utilizar una contrasea. Tiempo de uso. El tiempo mnimo que se debe utilizar una contrasea antes de poder cambiarla, y el tiempo mximo que se puede tener con la misma contrasea. Primer acceso. Determina si el usuario requiere cambiar la contrasea la primera vez que accede al sistema. Autorizacin de cambio de contrasea. Referente a las condiciones necesarias para poder cambiar la contrasea, un ejemplo de esto es el ingreso de la contrasea vigente antes de establecer una nueva. Bloqueo de cuenta. Determina las condiciones bajo las cuales una cuenta queda bloqueada al acceso por el usuario. Una vez bloqueada un administrador necesitar desbloquear la cuenta manualmente. Esquema de almacenamiento. Determina como se encriptan y almacenan las contraseas en el servidor, es posible configurar los esquemas para ciertas cuentas.

POLTICAS DISPONIBLES Para ver el listado de politicas disponibles, desde linea de comando se ingresa: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 -D "{dn usuario root}" -w {password usuario root} -n list-password-policies --trustALL Y el resultado obtenido es similar al siguiente, dependiendo de las polticas establecidas: Poltica de contraseas : Tipo : password-attribute : default-password-storage-scheme ------------------------:---------:--------------------:-------------------------------Default Password Policy : generic : userpassword : Salted SHA-1 Root Password Policy : generic : userpassword : Salted SHA-512

PROPIEDADES DE LAS POLTICAS Para visualizar de que manera se compone una poltica es posible desde la lnea de comandos el ejecutar: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 -D "{dn del usuario root}" -w {contrasea del usuario} -n get-password-policy-prop --policy-name "{nombre de la poltica}" --trustALL Y se obtiene algo similar a lo siguiente: Propiedad : Valor(es) ------------------------------------------:-------------------------account-status-notification-handler :allow-expired-password-changes : false allow-user-password-changes : true default-password-storage-scheme : Salted SHA-1 deprecated-password-storage-scheme :expire-passwords-without-warning : false force-change-on-add : false force-change-on-reset : false grace-login-count :0 idle-lockout-interval :0s last-login-time-attribute :last-login-time-format :lockout-duration :0s lockout-failure-count :0 lockout-failure-expiration-interval :0s max-password-age :0s max-password-reset-age :0s min-password-age :0s password-attribute : userpassword password-change-requires-current-password : false password-expiration-warning-interval : 5 d password-generator : Random Password Generator password-history-count :0 password-history-duration :0s password-validator :previous-last-login-time-format :require-change-by-time :require-secure-authentication : false require-secure-password-changes : false Entre estas propiedades default que definen una poltica se tienen las siguientes:

Propiedad account-status-notification-handler

Descripcin Se utiliza para enviar un mensaje cuando ocurre algn evento durante el la evaluacin de la poltica de la contrasea. Esta propiedad especifica los DN's de los Account status notification handlers que debern usarse para esta poltica. (en cn=Account Status Notification Handlers,cn=config ) Indica si los usuarios pueden cambiar sus contraseas despus de que estas expiren. Se deber de realizar la solicitud annimamente e incluir el password actual en la solicitud. Indica si el usuario tiene permitido cambiar su propia contrasea si cuenta con los permisos para hacerlo. Especifica el DN del Password storage schemes que codifican el password en texto para esta poltica.(en cn=Password Storage Schemes ,cn=config) Se estipulan los DNs aquellos esquemas que se consideran obsoletos para esta poltica, y todas aquellas contraseas de usuarios con estos esquemas se borran y se sustituyen con su equivalente en un esquema vlido Indica si la contrasea de un usuario puede expirar aun si no se le ha advertido de la expiracin de la contrasea. Si el valor es false, se garantiza ver al menos una advertencia incluso si ya pas el tiempo de expiracin. El tiempo de expiracin se restablece en el tiempo actual mas el intervalo de advertencia (ds-cfg-passwordexpiration-warning-interval) Indica si el usuario requiere cambiar su contrasea la primera vez que usa la cuenta, antes de que se le permita hacer cualquier otra cosa Indica si los usuarios requieren cambiar sus contraseas despus de un restablecimiento

allow-expired-password-changes

allow-user-password-changes

default-password-storage-scheme

deprecated-password-storage-scheme

expire-password-without-warning

force-change-on-add

force-change-on-reset

administrativo de contraseas antes de poder realizar cualquier otra operacin grace-login-count Especifica el nmero de grace logins que el usuario puede tener. Los grace logins permiten al usuario identificarse con el servidor incluso despus que su contrasea haya expirado, aunque sin autorizacin de hacer algo hasta que cambie su contrasea Define el mximo de tiempo que el usuario puede recorrer el directorio sin volverse a autentificar sin que el servidor lo bloquee. Est accin procede si el last-login-time-tracking est habilitado y este atributo tiene valor mayor a 0 Especifica el nombre del atributo en la entrada del usuario en la cual se contendr la ltima fecha de acceso del usuario. Si se especifica, el atributo deber estar definido como un atributo operacional en el esquema del servidor. Para este fin esta definido el atributo ds-pwp-last-login. El rastreo de ltimo acceso slo esta habilitado si los atributos ds-cfg-last-login-time-attribute y ds-cfg-last-login-time-format han sido configurados para poltica Especifica en una cadena de texto el formato de la fecha. El rastreo de ltimo acceso slo esta habilitado si los atributos ds-cfg-last-login-timeattribute y ds-cfg-last-login-time-format han sido configurados para poltica Especifica el tiempo que se bloquea una cuenta despus de varios intentos fallidos por conectarse. Con un valor de 0 la cuenta permanece bloqueada hasta que un administrador la desbloquee El nmero de intentos de acceso fallidos permitidos antes que se bloquee la cuenta Tiempo mximo durante un intento fallido sigue contabilizando Mximo tiempo permitido para que un usuario conserve la misma contrasea. El valor de 0

idle-lock-out-interval

last-login-time-attribute

last-login-time-format

lockout-duration

lockout-failure-count lockout-failure-expiration-interval max-password-age

indica que nunca expira. Si el atributo ds-cfg-expire-passwords-without-warning es false , el tiempo efectivo de expiracin es desde que recibi la advertencia ms el intervalo de advertencia (ds-cfg-password-expirationwarning-interval) max-password-reset-age El tiempo mximo que el usuario tiene para cambiar su contrasea antes de que se restablezca la contrasea y se bloquee la cuenta. Solo aplica si el atributo ds-cfg-force-change-onreset sea true El mnimo de tiempo que un usuario debe estar con una contrasea antes de poder cambiarla El atributo en el cual se define la contrasea debe estar establecido en el esquema del servidor, por lo general este atributo suele ser userPassword aunque tambin puede ser authPassword Indica si el usuario requiere brindar su contrasea actual antes de poner una nueva. La cantidad de tiempo antes de que expire una contrasea, en el cual el usuario es notificado. Debe de ser diferente de cero si el atributo dscfg-expire-password-without-warning es false Indica el nombre del generador de contraseas que debe utilizarse en conjunto con la poltica. Se usa cuando en la operacin extendida de cambio de contrasea el usuario no da una contrasea. Si no se especifica entonces no habr contraseas automticas. Nmero de contraseas que se guardan y contra las cuales se compara una contrasea nueva, de esta encontrarse entre las almacenadas entonces no se establece El tiempo mximo durante el cual no pude utilizarse una contrasea ya utilizada El nombre del validador , que al momento de establecer una nueva contrasea se verifica que

min-password-age password-attribute

password-change-requires-current-password password-expiration-warning-interval

password-generator

password-history-count

password-history-duration password-validator

la contrasea es aceptable previous-last-login-time-format El formato que tenan antes los last-login-time. Solo es necesario cuando el tiempo de ltimo acceso este habilitado y que el formato haya cambiado Especifica un tiempo en el que todos los usuarios bajo esta poltica deban de cambiar sus contraseas Especifica si los usuarios en esta poltica debe comunicarse por un mecanismo de comunicacin segura como SSL o mecanismos seguros SASL Indica si los usuarios en esta poltica requieren hacer la contrasea de una manera segura, como por un canal de comunicacin SSL

require-change-by-time

require-secure-authentication

require-secure-password-changes

CREAR UNA NUEVA POLTICA DE CONTRASEAS Cuando se crea una nueva poltica aquellas propiedades que no se definen, son heredadas de la definicin de la Password Policy predeterminada. Usando dsconfig se introduce en la linea de comandos por ejemplo: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 -D "cn=MyRootUser" -w 1234 --trustALL -n create-password-policy --policy-name "My Politica" --set passwordattribute:userPassword --set default-password-storage-scheme:"Salted SHA-1" --set lockoutduration:300s --set lockout-failure-count:3 --set password-change-requires-current-password:true

MODIFICAR POLTICA Modificar una polticas se usa tambin el dsconfig, un ejemplo sera: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 -D "cn=MyRootUser" -w 1234 -n set-password-policy-prop --policy-name "My Politica" --set "lockout-duration:7 minutes" --set "idlelockout-interval:2 days" --set "lockout-failure-expiration-interval:10 minutes" --trustALL

ASIGNAR POLTICA A UNA CUENTA INDIVIDUAL Para consultar la poltica que se tiene es mediante una bsqueda con ldapsearch solicitando el atributo ds-pwp-password-policy-dn, por ejemplo, con la siguiente bsqueda: sudo sh /usr/local/OpenDS-2.0.0/bin/ldapsearch -p 1389 -b "cn=Root DNs,cn=config" -D "cn=Directory Manager" -w 123qweasd "objectclass=*" ds-pwp-password-policy-dn Se obtiene: dn: cn=Root DNs,cn=config dn: cn=MyRootUser,cn=Root DNs,cn=config dn: cn=Directory Manager,cn=Root DNs,cn=config ds-pwp-password-policy-dn: cn=Root Password Policy,cn=Password Policies,cn=config El asignar una poltica se realiza mediante ldapmodify, ejemplificando al usuario MyRootUser le estableceremos la poltica de contrasea de los usuarios root. Desde el ldapmodify se introduce lo siguiente: dn: cn=MyRootUser,cn=Root DNs ,cn=config changetype: modify add: ds-pwp-password-policy-dn ds-pwp-password-policy-dn: cn=Root Password Policy,cn=Password Policies,cn=config

ASIGNAR POLTICAS A UN GRUPO DE USUARIOS El asignar polticas de contrasea a un grupo de usuarios es mediante el uso de atributos virtuales, los cuales se ejercen sobre un grupo de entradas que cumplen con ciertas caractersticas. El crear un atributo virtual es mediante el uso de dsconfig, de la siguiente manera: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 --trustALL -D "cn=Directory Manager" -w 123qweasd -n create-virtual-attribute --name "Add PWPolicy to Admins" --type userdefined --set enabled:true --set attribute-type:ds-pwp-password-policy-dn --set groupdn:cn=prueba_pass,dc=ejemplo --set conflict-behavior:real-overrides-virtual --set value:"cn=My Politica,cn=Password Policies,cn=config" Atributos virtuales Para listar los atributos virtuales existentes en el servidor, es mediante el siguiente comando: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 --trustALL -D Manager" -w 123qweasd -n list-virtual-attributes Y el resultado es similar al siguiente: Atributo virtual : Tipo : enabled : attribute-type : user-defined : true : ds-pwp-password-policy-dn "cn=Directory

----------------------------:--------------------:---------:-------------------------Add PWPolicy to Admins entryDN entryUUID hasSubordinates isMemberOf numSubordinates subschemaSubentry Virtual Static member : entry-dn : entry-uuid : is-member-of : true : entrydn : true : entryuuid : true : ismemberof

: has-subordinates : true : hassubordinates : num-subordinates : true : numsubordinates : subschema-subentry : true : subschemasubentry : member : true : member : true : uniquemember

Virtual Static uniqueMember : member

Para deshabilitar un atributo virtual, es mediante el siguiente: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 --trustALL -D "cn=Directory Manager" -w 123qweasd -n set-virtual-attribute-prop --name="Add PWPolicy to Admins" --set enabled:false Este ltimo funciona para cambiar las dems propiedades del atributo mediante la opcin set y definiendo propiedad : nuevo valor . Para ver todas las propiedades de un atributo virtual es mediante: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 --trustALL -D "cn=Directory Manager" -w 123qweasd -n get-virtual-attribute-prop --name="Add PWPolicy to Admins" Y la respuesta obtenida es similar a la siguiente: Propiedad : Valor(es)

------------------:-----------------------------------------------attribute-type : ds-pwp-password-policy-dn base-dn enabled filter group-dn value :: false : (objectClass=*) : "cn=prueba_pass,dc=ejemplo" : "cn=My Politica,cn=Password Policies,cn=config" conflict-behavior : real-overrides-virtual

Para eliminar un atributo virtual se accede al dsconfig nicamente con los parmetros de la conexin, esto es : sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 --trustALL -D Manager" -w 123qweasd "cn=Directory

Inmediatamente salda un men con los aspectos configurables, se selecciona la opcin correspondiente '' Atributo Virtual '' . Despus se despliega un men preguntando lo que se desea realizar, y se selecciona la opcin correspondiente a '' Eliminar un elemento Atributo virtual existente ''. Ahora aparece un men para seleccionar el atributo que se desea borrar.

ELIMINAR POLTICA DE CONTRASEA Para eliminar una poltica, slo es necesario introducir algo similar a: sudo sh /usr/local/OpenDS-2.0.0/bin/dsconfig -h localhost -p 4444 --trustALL -D Manager" -w 123qweasd -n delete-password-policy --policy-name "My Politica" "cn=Directory

ADMINISTRACIN DE CUENTAS DE USUARIOSon esencialmente entradas de usuarios que se pueden crear, modificar o remover del directorio. Y del mismo modo que a los usuarios root y a los administradores es posible establecerles lmites de bsqueda a los usuarios. RESTABLECER UNA CONTRASEA NUEVA PARA UN USUARIO Un ejemplo para llevar esta operacin acabo es la siguiente: sudo sh /usr/local/OpenDS-2.0.0/bin/ldappasswordmodify -h localhost -p 1389 -D "cn=Directory Manager" -w 123qweasd --authzID "dn:uid={uid}" El resultado de esto es: La operacin de modificacin de contrasea de LDAP ha sido correcta Contrasea generada: qpo84jae CAMBIAR LA CONTRASEA DE UN USUARIO Un ejemplo de esto es el siguiente: sudo sh /usr/local/OpenDS-2.0.0/bin/ldappasswordmodify -h localhost -p 1389 -D "cn=Directory Manager" -w 123qweasd --authzID "dn:uid={uid}" --currentPassword qpo84jae --newPassword 1234

INFORMACIN DE LA CUENTA DEL USUARIO Para ver la informacin de la cuente de un usuario, ejemplificando, se ingresa: sudo sh /usr/local/OpenDS-2.0.0/bin/manage-account -h localhost -p 4444 -D "cn=Directory Manager" -w 123qweasd --trustALL get-all --targetDN "uid={uid}" De lo cual se obtiene: ND de directiva de contraseas: cn=Default Password Policy,cn=Password Policies,cn=config La cuenta est deshabilitada: false Hora de caducidad de la cuenta: Segundos para la caducidad de la cuenta: Hora de cambio de contrasea: 20111130002342.826Z Hora de advertencia de caducidad de la contrasea: Segundos para la caducidad de la contrasea: Segundos para la advertencia de caducidad de contrasea: Nmero de veces de error de autenticacin: Segundos para desbloqueo de error de autenticacin: Recuento de errores de autenticacin restante: Hora de inicio de sesin: Segundos para desbloqueo de cuenta por inactividad: Se ha restablecido la contrasea: false Segundos para desbloqueo de restablecimiento de contrasea: Nmero de veces de inicios de sesin de gracia: Recuento de inicios de sesin de gracia restantes: 0 Contrasea cambiada por tiempo requerido: Segundos hasta tiempo de cambio requerido: Historial de contrasea: Para obtener un atributo en particular se cambia el all '' del get-all por subcomando del atributo que se desea; para mas informacin se usa en lugar de todos los parmetros --help.

HABILITAR/DESHABILITAR UNA CUENTA Para la deshabilitar una cuenta se ingresa un comando como el que sigue: sudo sh /usr/local/OpenDS-2.0.0/bin/manage-account -h localhost -p 4444 -D "cn=Directory Manager" -w 123qweasd --trustALL -X set-account-is-disabled --operationValue true --targetDN "uid={uid}" Para habilitarla, se utiliza: sudo sh /usr/local/OpenDS-2.0.0/bin/manage-account -h localhost -p 4444 -D "cn=Directory Manager" -w 123qweasd --trustALL clear-account-is-disabled --targetDN "uid={uid}"

ACI, ACCESS CONTROL INSTRUCTIONSSon estructuras complejas con muchas variaciones para controlar el acceso a las entradas del directorio. Las aci son reglas que definen los permiso de acceso que se tienen sobre determinado grupo de entradas. Los atributos aci siguen la siguiente sintaxis: aci: (target) (version 3.0; acl nombre; permisos bindRules;) En donde: target especificas el conjunto de entradas y atributos sobre los cuales se desea tener controlado el acceso. El objetivo puede definirse por el nombre y/o por filtros, tambin es posible definir si el aci tiene efecto sobre las entradas debajo de la cual esta definido el as. Cuando no se define un objetivo se toma la entrada sobre la cual esta definida el as y todas las entradas debajo de esta. version 3.0 es un texto necesario que identifica la versin de la aci nombre El nombre que se le va a dar a la aci. permisos los permisos que se estn definiendo en el as, ya sea allow (permitir) o deny (negar) bindRules especifica las credenciales y parmetros de identificacin que los usuarios deben tener para tener acceso.

Una aci puede tener mltiples objetivos y pares de permisos-bindRules. [[BR]] Un ejemplo de una aci es:aci: (target="ldap:///uid=bjensen,dc=example,dc=com" (targetattr="*")(version 3.0; acl "example"; allow (write) userdn="ldap:///self";)

Este ejemplo puede interpretarse como que uid=jsensen,... tiene permiso de escribir en todos los atributos de si mismo.

DEFINICIN DE OBJETIVOS La sintaxis general para la definicin de objetivos es alguna de las siguientes: (keyword = expresin) o (keyword != expresin)

Los diversos keyword son los siguientes: Keyword target targetattr targetfilter targattrfilters targetscope targetcontrol extop Expresiones vlidas ldap:// nombre Atributo Filtro LDAP Operacin del LDAP: Filtro del LDAP {base,onelevel,subtree,subordinate} oid oid Wildcards Si Si Si Si No No No

Hacer objetivo una entrada del directorio Usando la palabra target y el DN dentro de la url de LDAP para hacer objetivo a la entrada y todas las entradas debajo de estas. El DN debe ser de la entrada donde se est definiendo la ACI o en el subrbol debajo de la entrada. La expresin tiene la siguiente sintaxis: (target = ldap:///nombre_distintivo) (target !=ldap:///nombre_distintivo) Por ejemplo, en el ACI estara en '' ou=People, dc=example,dc=com '' y el '' target '' es el siguiente: (target=ldap:///uid=bjensen,ou=People,dc=example,dc=com)

NOTA: Los objetos significativos para una dn, como la coma,deben ir scaped con un backslash simple (\). Ejemplos de uso de wildcards son: (target="ldap:///uid=*,dc=example,dc=com") (target="ldap:///uid=*,**,dc=example,dc=com") (target="ldap:///uid=*Anderson,ou=People,dc=example,dc=com") (target="ldap:///*=*Anderson,ou=People,dc=example,dc=com")

A atributos En adicin al control de acceso a las entradas del directorio es posible definir tambin sobre que atributos de las entradas se puede o no tener acceso. Si no se determina explcitamente los atributos para la regla, entonces no se puede tener acceso a los atributos; por otro lado si se desea usar todos los atributos entonces la regla debe ser targetattr=*. Atributos operacionales deben ser nombrados explcitamente. No es necesario que el objetivo o los subrboles existan, as como los atributos pueden no estar definidos en el esquema; todo lo anterior con la finalidad de tener polticas de acceso incluso antes de importa la informacin y los esquemas. Las sintaxis utilizadas son las siguientes: (targetattr = "attribute") (targetattr != "attribute") En caso de tener mas atributos entonces las estructuras son: (targetattr = "attribute1 || attribute2 ... || attributeN") (targetattr != "attribute1 || attribute2 ... || attributeN") Usando filtros del LDAP Ayuda a hacer objetivo a aquellas entradas que cumplan con cierta criteria. La sintaxis es la siguiente: (targetfilter = "LDAPfilter") Un ejemplo de esto sera para todos aquellos empleados los enlaces de la unidad 138: (targetfilter = "(&(isMemberOf=cn=GRUPO1,dc=ejemplo (isMemberOf=cn=GRUPO2,dc=ejemplo))")

A valores de atributos usando filtros de ldap Es posible controlar el acceso a especficos valores de determinado atributo. Esto es que se puede garantizar o negar el permiso a un atributo si su valor cumple con el criterio definido en la ACI. Un ACI que otorga o niega el acceso basado en el valor de un atributo es llamado '' value-based ACI ''. [[BR]] Para crear un value-based ACI, entonces targattrfilters debe respetar la siguiente sintaxis: (targattrfilters=Op=attr1:F1 [(&& attr2:F2) *)][;Op=attr:F [(& & attr:F) *]]) de donde: Op es o una operacin add (el crear un atributo) o una operacin delete (representa el borrar un atributo) attr es el atributo objetivo F representa el filtro que aplica slo en el atributo asociado

Por ejemplo se puede permitir a todos los usuarios modificar el nmero de cuarto de sus propias entradas. Pero adems, puede que tambin se desee estar seguro de que no se asignarn nmeros de habitacin reservados, esto es todos aquellos que empiecen con 12, y que solo puedan establecer su telfono con prefijo 123. (targattrfilters=add=roomNumber:(!(roomNumber=12*)) (telephoneNumber=123*)) & & telephoneNumber:

Alcance Usualmente las ACI tienen alcance sobre los subrboles. Se puede definir este alcance con la sintaxis: (targetscope="expression") Donde la expresin toma uno de los siguientes valores dependiendo del alcance que se busque: base. Se aplica solo sobre la entrada objetivo onelevel . Se aplica slo sobre los hijos de primera generacin de la entrada objetivo subtree. Se aplica sobre la entrada objetivo y todos los recursos debajo de esta. subordinate . Aplica solo sobre los recursos debajo de la entrada objetivo

A controles del LDAP Para hacer objetivo a controles del ldap se usa la siguientes sintaxis: (targetcontrol= "oid") (targetcontrol!= "oid") Y para varios controles la sintaxis se adecua de igual manera que cuando se hace objetivo a verios atributos.

Controles El protocolo LDAP v3 permite que clientes y servidores utilicen controles como mecanismo para extender una operacin del LDAP. Un control es el modo para especificar informacin adicional como parte de la solicitud o de la respuesta. Por ejemplo, el cliente puede enviar el control al servidor, como parte de la solicitud de bsqueda, para indicar al servidor que ordene los resultados de la bsqueda antes de enviarlos al cliente. El servidor tambin puede enviar controles al cliente, por ejemplo Netscape Directory Server 3.0 devuelve un control al cliente durante el proceso de autenticacin si la contrasea expir o est por hacerlo. Entre los OID (identificadores de objetos) de controles se tienen: OID 1.3.6.1.4.1.42.2.27.9.5.8 Nombre Account Usability Control Descripcin Proporciona un par de controles que determinan cuando una cuenta puede ser usada para identificarse en el sevidor, el valor es un booleano que se representa si se determina o no El control de solicitud de autorizacin de identidad y al igual que el anterior no tiene un valor. (Equivalente a poner --reportAuthzID) El control de respuesta de autorizacin de identidad, su valor debe ser una cadena que representa la autorizacin de la identificacin para la conexin

2.16.840.1.113730.3.4.16

Authorization Identity Control

2.16.840.1.113730.3.4.15

Authorization Identity Control

2.16.840.1.113730.3.4.7 1.3.6.1.4.1.42.2.27.9.5.2

Entry Change Notification Control Control de notificacin de cambio de entrada Get Effective Rights Control Control de obtener los permisos reales,esto es buscando de las entradas el atributo aclRights, sin valor. Uso de filtros de afirmacin desde la bsqueda, si todos los elementos no cumplen con el filtro, no se muestra

1.3.6.1.1.12

LDAP Assertion Control

el resultado. El valor es un filtro. 1.3.6.1.4.1.4203.1.10.2 1.3.6.1.1.13.2 LDAP no-op control LDAP Post-Read Control Indica que no debe hacer ningn cambio en el server, sin valor Despus de una operacin add, modify y modify DN devuelve una copia de la entrada , como valor se indica atributos como en la bsqueda De manera similar al control anterior pero la copia que devuelve es la de la entrada antes que se realice la operacin Permite al cliente hacer peticiones que el servidor realice bsquedas con referencias inteligentes usando expresiones regulares. Una referencia inteligente es una entrada que hace referencia a otro servidor o locacin en el directory information tree (DIT) Indica que solo los valores que encajen con un filtro especificado podrn ser incluidos en las entradas que se regresan al cliente, el valor es el filtro. Permite al cliente recibir notificaciones cuando las entradas en el directorio cambian por las operaciones add , delete o modify. Deja abierta la consola y ah se marcan los cambios. Este control puede utilizarse para que la solicitud al servidor se haga bajo la autorizacin de otro usuario Ordena del lado del servidor antes que se regrese al cliente como valores se colocan los campos separados por comas

1.3.6.1.1.13.1

LDAP pre-read control

2.16.840.1.113730.3.4.2

Manage DSA IT control

1.2.826.0.1.3344810.2.3

Matched values control

2.16.840.1.113730.3.4.3

Persistent search control

2.16.840.1.113730.3.4.12

Proxied authorization control

1.2.840.113556.1.4.473

Server-side sort control

1.2.840.113556.1.4.319 2.16.840.1.113730.3.4.10

Simple paged results control Virtual list view (VLV) control

Permite mostrar subconjuntos de la bsqueda paginados Indica que slo un subgrupo de resultados que deben retornarse.

A operaciones extendidas del LDAP Similar a cuando se hace objetivo a controles, pero en este caso la sintaxis para un sola operacin es la siguiente: (extop= "oid") (extop!= "oid") Para varias operaciones es la siguiente sintaxis: (extop = "oid1 || oid2 ... || oidN") (extop != "oid1 || oid2 ... || oidN") Operaciones extendidas Las operaciones extendidas proveen cierto grado de extensin de los protocolos del LDAP, permitiendo al cliente realizar peticiones que no estn definidas en el core. Algunos ejemplos son: OID Nombre Descripcin

LDAP cancel extended operation Sirve para cancelar una operacin extendida que se este ejecutando 1.3.6.1.4.1.4203.1.11.1 Password operation modify extended Es una operacin extendida que puede utilizarse para cambiar o reestablecer una contrasea Una operacin extendida que inicia un canal de comunicacin segura TLS sobre una conexin de texto limpio. Permite el cliente usar el mismo puerto para comunicacin segura e insegura

1.3.6.1.4.1.1466.20037

StartTLS extended operation

1.3.6.1.4.1.4203.1.11.3

Who Am I?

Operacin para determinar la identificacin de la conexin de un cliente

DEFINICIN DE PERMISOS Para definir un permiso se define se usa la palabra deny o allow si quiere denegar o conceder un permiso respectivamente. Y entre parntesis el nombre de los permisos por dar o negar. Entre los permisos estn: Read. Indica que se puede leer en las entradas de un directorio y en los atributos de las mismas. Write. Indica que se pueden modificar entradas aadiendo, modificando o borrando atributos. Add. Indica que se pueden crear entradas. Delete. Indica que se pueden borrar entradas. Search. Indica que se puede buscar sobre los objetivos. Compare. Indica que se puede comparar con informacin almacenada en el directorio. Selfwrite. Indica si el usuario puede borrar o aadir su propio DN en una entrada objetivo. Proxy. Si un DN especificado puede acceder a un objetivo con los derechos de ora entrada. Se puede garantizar el acceso proxy usando el DN de cualquier usuario en el directorio excepto el del Directory Manager. Import. Indica cuando una entrada puede ser importada al DN especfico. Export . Cuando una entrada puede exportarse del DN especfico. All . Todos los anteriores excepto proxy, import y export.

Un ejemplo otorgando permisos es el que sigue: (target="ldap:///dc=example,dc=com") (version 3.0;acl \ "example"; allow (read, search, compare) bindRule;)

REGLAS DE ENLACE La ltima parte de una ACI son la reglas de enlace (bind rules) las cuales tienen la siguiente sintaxis: keyword = " expression"; keyword != " expression"; Slo la palabra timeofday se permiten expresiones de inigualdad (=). Se tienen las siguientes keywords junto con las expresiones vlidas y si se permiten comodines en las expresiones: Keyword userdn Expresiones vlidas Comodn permitido?

ldap:///distinguishedName Si, slo en el dn ldap:///all ldap:///anyone ldap:///parent ldap:///self ldap:/// sufijo??sub?(filtro) ldap:///DN atributo#{tipo de atributo#valor Direccin IP DNS hostname {sun,mon,tue,wed,thu,fri,sat} enlace} No o No Si Si No

groupDN userattr Ip dns dayofweek timeofday authmehod ssf

hhmm de donde hh esta entre No 00-24 y mm entre 00-60 none simple ssl sasl u otro No mtodo de autenticacin 0 256 No

userdn El acceso de los usuarios esta definido por la palabra '' userdn ''. Puede recibir uno o mas valores vlidos con el siguiente formato: userdn = "ldap:///dn [|| ldap:///dn]..." userdn != "ldap:///dn [|| ldap:///dn]..." Donde dn puede ser un DN o una de las siguientes expresiones - anyone. Para usuarios annimos y los autentificados. - all. Slo para los usuarios autentificados. - self. Slo para el mismo usuario que el target del aci. - parent. Para la entrada padre del target del aci. userdn tambin puede ser expresado mediante filtros de LDAP usando la URL, un ejemplo de esto es: userdn = "ldap:///dc=example,dc=com??sub?(|(ou=eng)(ou=acct))" Es posible utilizar el operador || (or) en las urls del ldap groupdn (Grupos de acceso) Miembros de un grupo especfico pueden acceder al recurso objetivo. El formato es el siguiente:

groupdn="ldap:///''groupDN'' [|| ldap:///''groupDN'']..."

userattr (Acceso basado en pareo de valores) Puede utilizarse para especificar valores de atributos deben coincidir entre la entrada utilizada para conectarse y la entrada objetivo. Una expresin userattr tiene dos formatos: Formato de tipo de enlace Utiliza el DN de enlace y posiblemente la entrada entera cuando se evalan las coincidencias. Es el mas complicado de los formato y puede utilizarse de alguna de las siguientes formas:

- El valor del atributo de la entrada objetivo debe ser igual al DN de con quien se est accediendo. Ejemplo:userattr = "manager#USERDN"

- El DN de quien accede es miembro del grupo definido en el valor del atributo que se escoge de la entrada objetivo. Ejemplo:userattr = "owner#GROUPDN"

- Tanto el DN y entrada con el cual se accede satisface con todos los requerimientos de bsqueda especificados en la url LDAP. Ejemplo:userattr = "aciurl#LDAPURL"

Formato atributo-valor El atributo especificado debe existir tanto en el objetivo como en la entrada de quien este accediendo; el valor no puede ser ninguna de las palabras {USERDN,GROUPDN,LDAPURL}. La sintaxis es la siguiente: userattr = "attrName#attrValue" Un ejemplo es el siguiente: userattr = "favoriteBeverage#Water" Herencia Cuando se utiliza userattr para asociar la entrada con la que se va a acceder con la entrada objetivo, el ACI aplica en el objetivo y no en las entradas debajo. En algunas circunstancias se quieren extender la aplicacin de los ACI niveles debajo de la entrada objetivo. Para esto se utiliza la siguiente sintaxis: userattr = "parent[nivel de herencia].attribute#bindType" El nivel de herencia son valores del 0 al 9 separados por comas de los niveles hacia abajo que se desea se aplique el ACI. Para este caso el bindType no soporta LDAPURL.

ip Se puede indicar que la operacin de enlace debe realizarse de una ip especifica o de una de la cual no, mediante la sintaxis: ip = "''IPaddressList''" ip != "''IPaddressList''" La IPaddressList es una lista de uno o mas elementos separados por comas (IPv4,IPv4/CIDR (enrutamiento de inter dominios sin clases), IPv4 con comodines, IPv4 + Netmasks, IPv6 entre parntesis cuadrados, [IPv6]/sufijo de longitud de subred). dns Una regla de enlace puede especificar desde que dominio o host se debe realizar el enlace. Esto tambin se puede utilizar para que todas las actualizaciones del directorio ocurran en cierto dominio. La sintaxis es la siguiente: dns = "DNShostname" dns != "DNShostname" Y varios ejemplos son: dns = "legend.eng"; dns = "legend.eng.example.com"; dns = "*.example.com"; timeofday Es posible determinarse la hora en la cual se puede acceder mediante timeofday la cual reconoce las operaciones: =,!=,>,>=,