4 votos

Problemas de inicio de sesión de FileVault 2 en la red OpenLDAP con cuenta de administrador, administrada y móvil en Lion 10.7.4

Este problema ocurre en cualquier máquina con Lion en mi entorno. Instalo Lion y me conecto a OpenLDAP para la autenticación. Habilito FileVault.

Algunos usuarios informaban de que cuando despertaban su ordenador de la suspensión o lo reiniciaban, la única cuenta disponible para desbloquear FileVault era la de Administrador (y no su cuenta local de OpenLDAP en caché).

En un intento de reproducir este problema, apagué todas las interfaces de red en mi MacBook Pro de prueba y reinicié - efectivamente, FileVault sólo me permite desbloquear mi disco duro utilizando la contraseña de administrador, al igual que ocurrió con mis usuarios.

Además, cuando intenté comprobar si mi cuenta de usuario seguía habilitada en FileVault (accediendo a Preferencias del sistema -> Seguridad y privacidad ), Preferencias del Sistema se bloquea .

He encontrado una solución que a veces funciona: Abra cualquier otro panel de Preferencias del Sistema (por ejemplo, Usuarios y Grupos), y autentifique haciendo clic en el icono del candado. A continuación, haga clic en Mostrar todo para volver a la interfaz principal de Preferencias del sistema y acceda de nuevo a Seguridad y privacidad. Funcionará. En la pestaña FileVault, aparece el texto "Algunos usuarios no pueden desbloquear este disco" (presumiblemente mi cuenta de administrador, administrado, móvil). Hago clic en el botón "Habilitar usuarios" y aparece un cuadro de diálogo, pero en este cuadro de diálogo mi cuenta de usuario es la única que aparece en la lista, y tiene una marca de verificación verde, como si estuviera configurada correctamente (incluso cuando no lo está). Si hago clic en el botón "Done" aquí, parece procesar algo por un momento. Si reinicio después de hacer esto, funciona, y soy capaz de autenticar como yo mismo.

Creo que lo que está ocurriendo aquí es que la red se está apagando en los MacBooks que están en modo de reposo o apagados, y FileVault está entonces eliminando cualquier cuenta que se autentique con LDAP de los usuarios habilitados. Presumo que algo está roto también aquí, debido al bloqueo que ocurre al intentar investigar la configuración de FileVault.

Pasos para la reproducción

  1. Instala Lion.
  2. Conectar con mi servidor OpenLDAP.
  3. Habilitar FileVault 2, habilitar el usuario autenticado por LDAP para desbloquear FileVault.
  4. Reinicia.
  5. ¡Funciona!
  6. Inicie sesión y desactive las interfaces de red, con el objetivo de forzar a Lion a utilizar las credenciales LDAP almacenadas en caché para la autenticación de usuarios en FileVault.
  7. Reinicia.
  8. El único usuario que está disponible para la autenticación es el Administrador.
  9. Después de iniciar la sesión como administrador, cerrar la sesión y volver a iniciar la sesión como usuario con autorización LDAP, intento acceder a Preferencias del sistema -> Seguridad y privacidad. Esto hace que Preferencias del Sistema se bloquee con el volcado de errores que se pega a continuación. La única forma de evitar este fallo es autenticarse haciendo clic en el icono del candado en cualquier otro panel de Preferencias del Sistema (por ejemplo, Usuarios y Grupos), luego hacer clic en "Mostrar todo", y luego hacer clic en "Seguridad y Privacidad" de nuevo. Esta vez funcionará. Los detalles se encuentran en la sección Resumen de este informe de error.

Resultados esperados

Yo esperaría que la autenticación de FileVault 2 funcione para el usuario con el que se ha configurado originalmente.

Resultados reales

Esto no está sucediendo, y los usuarios terminan sin poder desbloquear su máquina (y por lo tanto, no pueden trabajar sin que yo (el administrador del sistema) vaya y desbloquee su máquina como Administrador, luego cierre la sesión y les permita iniciar sesión en OS X bajo su cuenta). He presentado un informe de error a Apple, pero no he recibido nada de ellos. Voy a ponerme en contacto con el soporte telefónico para ver si sirve de algo, pero tengo curiosidad por saber si alguien aquí se ha encontrado con estos problemas y los ha superado de alguna manera.

Notas

A continuación se muestra el registro de fallos producido al intentar acceder a Seguridad y Privacidad después de que se produzca el problema:

http://pastebin.com/2ewfZCUP

5voto

John Hoffman Puntos 1053

FileVault 2 utiliza el GeneratedUID atributo de usuario para guardar quién tiene permiso para desbloquear un volumen encriptado. Si el GeneratedUID de un usuario difiere de la que se generó (o se extrajo de LDAP) cuando se activó FileVault 2, el usuario no podrá desbloquear la máquina, ya que su cuenta aparecerá como no disponible en el menú EFI. Además, esto provoca la caída de las Preferencias del Sistema en su Mac cada vez que intentan acceder al prefano de Seguridad y Privacidad.

Este problema surge cuando /usr/bin/mcxrefresh corre y saca un null o un valor diferente al almacenado localmente desde LDAP (si el atributo no está definido para el usuario en cuestión o está definido incorrectamente, respectivamente), sobrescribiendo el GeneratedUID almacenado localmente (que se genera y sólo se almacena localmente cuando FileVault 2 está activado sin un atributo LDAP correspondiente).

En otras palabras, si un apple-generateduid existe en LDAP para un usuario y se asigna correctamente en el Mac del usuario al GeneratedUID FileVault 2 no generará un nuevo valor, sino que utilizará el valor almacenado en LDAP.

Pude resolver este problema añadiendo un atributo llamado apple-generateduid a la entrada LDAP de cualquier usuario que experimente este problema. Pude generar un valor aleatorio para este atributo en Python ejecutando el siguiente one-liner desde mi terminal:

python -c 'import uuid; print str(uuid.uuid4()).upper();'

Sin embargo, este no es el único paso. También debe añadir una asignación para este atributo en el lado del cliente. Esto se hace fácilmente usando los siguientes pasos:

  1. Abrir Preferencias del sistema .
  2. Haga clic en Usuarios y grupos .
  3. Haga clic en Opciones de inicio de sesión .
  4. Haga clic en el botón Icono de desbloqueo .
  5. En Servidor de cuentas de red , haga clic en Editar .
  6. Haga clic para resaltar su servidor de directorio.
  7. En Servicios Haga doble clic en su servicio de directorio (en mi caso, era LDAPv3)
  8. En la ventana que se abre, resalte el nombre de su configuración y haga clic en el botón Editar... botón.
  9. En Búsqueda y asignaciones desplácese hacia abajo y haga clic en Usuarios para resaltarlo.
  10. Haga clic en el botón Añadir (el de la izquierda).
  11. Elija GeneratedUID de la lista de tipos de atributos disponibles.
  12. En la columna de la derecha, haga clic en el botón Añadir y escriba apple-generateduid . Haga clic en OK para guardar los cambios hasta volver al diálogo principal de Preferencias del Sistema.
  13. En este punto se realiza un mapeo de GeneratedUID a apple-generateduid se ha creado. Ahora cuando OS X busque el valor de GeneratedUID obtendrá el valor de apple-generateduid del usuario en las preguntas de la entrada LDAP.

Por último, es importante que el valor almacenado localmente de GeneratedUID y el valor almacenado en LDAP coincidan. Ejecute el siguiente comando y asegúrese de que los dos valores de GeneratedUID coinciden:

dscl /Search search /Users GeneratedUID $(dscl . read /Users/$(echo $USER) GeneratedUID | cut -d " " -f2)

0voto

Moishe Lettvin Puntos 7590

Asumiendo que se trata de cuentas móviles (que deberían almacenar en caché la información de usuario requerida localmente al iniciar la sesión) y que existe la posibilidad de que la conectividad de red con el servidor LDAP no esté inmediatamente disponible / disponible en absoluto, sospecho mucho de esta línea de registro:

2 libcsfde.dylib 0x00007fff8565af1f CSFDEGetUserEntryForUUID + 134

Este es el hilo que se bloquea en su registro y justo antes de que se bloquee, está intentando obtener la longitud de una cadena devuelta como resultado de esa llamada particular (privada) a la biblioteca.

El nombre de la convocatoria parece dar a entender: CoreServices Full Data/Disk Encryption (aka FileVault2) "GetUserEntryForUUID" - nota: Esta es una función que pide FileVault para la información de los usuarios basada en un UUID, no el marco de colaboración, los servicios de identidad, los servicios de directorio / OpenDirectory, etc.

Este trozo de código está pidiendo a FileVault que proporcione detalles sobre un usuario con sólo información UUID, lo que suena como si FV estuviera rastreando la información del usuario por separado (posiblemente) del resto de OS X. Este es precisa, porque el procedimiento FileVault2, como parte de marcar a los usuarios disponibles para desbloquear la partición del SO de arranque, escribe alguna información en la partición de recuperación.

Sin embargo, parece que hay un fallo en alguna parte con los mecanismos de autenticación de cuentas de directorio OpenLDAP / móvil / "alternativo" y no se está escribiendo la información necesaria para poder desbloquearlo sin acceso a la red del servidor OpenLDAP.

Esto es sólo un tiro en la oscuridad - pero tal vez un representante de Apple sería capaz de ayudar más con esto. Suena como un error real legítimo para mí.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X