Esperaba que algunos gurús de PAM / LDAP pudieran ayudarme aquí. Recientemente configuré un directorio LDAP en Ubuntu Server para mantener cuentas tanto para mis clientes (para usar con sistemas basados en la web) como para el personal (que necesitará iniciar sesión a través de SSH).
La autenticación LDAP funciona perfectamente. Sin embargo no puedo conseguir las restricciones de la cuenta de trabajo: las cuentas del personal tendrán identificadores entre 2001
y 2999
y será un miembro del ssh-users
grupo que les permita a los servidores de inicio de sesión.
Las restricciones en cuestión están en /etc/ldap.conf
, y están pam_min_uid
, pam_max_uid
y pam_groupdn
.
pam_groupdn
contiene el DN completo de mi ssh-users
grupo. pam_min_uid
= 2000
y pam_max_uid
= 2999
.
Ahora, he logrado que funcionen agregando:
account [success=1 default=ignore] pam_ldap.so
por encima de la pam_unix.so
línea en /etc/pam.d/common-account
. Sin embargo, las cuentas locales de Unix NO pueden iniciar sesión: el servidor SSH corta la conexión tan pronto como lo intentan.
He configurado el pam_ldap.so
módulo sufficient
en el archivo anterior, pero los usuarios no válidos reciben un mensaje que dice que no pueden iniciar sesión, pero de todos modos los registra.
Entonces, ¿cómo puedo establecer estas restricciones de cuenta para los usuarios de LDAP, al tiempo que sigo permitiendo que los usuarios de UNIX inicien sesión?
Como probablemente pueda adivinar, soy un novato en PAM, aunque he logrado que el módulo "crear directorios de inicio" funcione automáticamente :-)
Muchas gracias Andy
Simplemente usaría
para permitir solo grupos específicos (tanto para grupos locales como LDAP). De esta manera no tiene que especificar nada
ldap.conf
.Si desea mantener la autorización a su manera, no debe filtrar usuarios en el pase de "cuenta". Creo que deberías hacerlo con el pase "auth". En segundo lugar, como puede ver usted mismo, pam_unix procesa cuentas locales y LDAP (al menos en el pase de "cuenta"), por lo que parece que no hay necesidad de pam_ldap.
EDITAR: En tercer lugar, si insiste en tener cosas en el pase de "cuenta" (que creo que podría tener efectos secundarios extraños), su secuencia debería terminar con: ..., "suficiente pam_ldap", "requerido pam_localuser", "requerido pam_unix" . Es decir, si tiene otros módulos, muévalos antes de pam_ldap; de lo contrario, se ignorarían para las cuentas LDAP debido a una cláusula "suficiente".
fuente
Solo para agregar a @ andy-shellam, aquí está mi
common-account
archivo:fuente