14 votos

La restricción de la cuenta de los inicios de sesión de LDAP y PAM

Tenía la esperanza de que algunos de PAM/LDAP gurús puede ser capaz de ayudarme a salir de aquí. He creado recientemente un directorio LDAP en el Servidor de Ubuntu para mantener las cuentas de mis clientes (para su uso con sistemas basados en la web) y el personal (que tendrá que iniciar sesión a través de SSH.)

La autenticación LDAP funciona a la perfección. Sin embargo, no puede obtener la cuenta de las restricciones de trabajo - personal de cuentas se tienen Identificadores entre 2001 y 2999 y será un miembro de la ssh-grupo de usuarios que les permita ingresar a los servidores.

Las restricciones en cuestión se encuentran en /etc/ldap.conf, y son "pam_min_uid", "pam_max_uid" y "pam_groupdn".

pam_groupdn contiene el DN completo a mi ssh-grupo de usuarios. pam_min_uid = 2000 y pam_max_uid = 2999.

Ahora, me las he arreglado para conseguir trabajo mediante la adición de:

account [success=1 default=ignore] pam_ldap.so

por encima de la "pam_unix.así que" la línea en /etc/pam.d/common-account. Sin embargo, el local de las cuentas de Unix puede, a continuación, no de inicio de sesión - el servidor SSH mata la conexión tan pronto como se intenta.

He puesto los pam_ldap.así módulo de "suficiente" en el archivo de arriba, pero luego los usuarios no válidos aparece un mensaje que dice que no puede iniciar sesión, pero los registros en de todos modos.

Así que, ¿cómo puedo establecer estas restricciones de cuenta para los usuarios de LDAP, mientras sigue permitiendo que los usuarios de UNIX de inicio de sesión?

Como usted probablemente puede adivinar, yo soy un novato, PAM, aunque me las he arreglado para conseguir la "realización automática de directorios home" módulo de trabajo :-)

Muchas gracias, Andy

11voto

Andy Shellam Puntos 1325

He intentado publicar esta respuesta de ayer, pero el sitio estaba fallando.

De todos modos me las arreglé para resolver esto de una manera más elegante. PAM tiene la capacidad de restringir el acceso en función de una lista de control de acceso (al menos en Ubuntu) que, como kubanskamac la respuesta (+1) se refiere a los grupos como posix grupos, ya sea que estén almacenados en LDAP, /etc/group o NIS.

/etc/security/access.conf es la lista de acceso de archivo. En mi archivo, me puse al final:

- TODOS EXCEPTO la root de sysadmin (ssh-usuarios):TODOS

Este niega todo el mundo, excepto la root, sysadmin y en el grupo ssh-usuarios (que es en LDAP) siempre que el inicio de sesión (el segundo).

Luego, en mi PAM archivo de la cuenta (esta ES una cuenta del módulo), puedo añadir al final:

se requiere una cuenta de pam_access.así

que le dice a PAM a usar este archivo. Esto funciona de maravilla :-)

5voto

kubanczyk Puntos 4395

Yo simplemente uso

auth required    pam_listfile.so   sense=accept item=group file=/etc/groups.allow onerr=fail

para permitir sólo a grupos específicos (tanto para locales y grupos de LDAP). De esta manera usted no tiene que especificar nada en ldap.conf.

Si desea mantener la autorización de su camino, no se debe filtrar a los usuarios en "cuenta" paso. Yo creo que más bien debe hacerlo en "auth" paso. En segundo lugar, como se puede ver, pam_unix los procesos locales y las cuentas LDAP (al menos en la "cuenta" de paso), así que parece que no hay necesidad de pam_ldap.

EDIT: en tercer lugar, si usted insiste en tener cosas en "cuenta" pass (que creo que podría tener extraños efectos secundarios), su secuencia final: ..., "suficiente pam_ldap", "requerido pam_localuser", "required pam_unix". Quiero decir, si usted tiene cualquier otro módulo, moverlos antes de pam_ldap - podrían ser ignorados por las cuentas LDAP debido a "suficiente" de la cláusula.

0voto

Hank Puntos 199

Sólo para agregar a @andy-shellam, aquí está mi common-account archivo:

account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore]            pam_ldap.so
account requisite                     pam_deny.so
account required                      pam_access.so
account required                      pam_permit.so

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: