Problems with SSH and pam_listfile

John Gorkos John.Gorkos at sensus.com
Thu Mar 11 19:48:06 UTC 2010


I am having good success using pam_listfile with my LDAP directory to 
allow/disallow users in specific posixGroups access to servers using SSH.  My 
"auth" section of /etc/pam.d/system-auth on my RHEL 5.2 system looks like 
this:

auth        required      pam_listfile.so onerr=fail item=group sense=allow 
file=/etc/login.group.allowed
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        sufficient    pam_ldap.so use_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

If a user's UID is in a memberUID field of an objectClass=posixGroup in LDAP 
(ou=Groups,o=XXXX), he can log in via SSH.  If he's not in one of the groups 
enumerated in /etc/login.group.allowed, he's denied... UNLESS he has a public 
key in his ~/.ssh/authorized_keys file.  If that is the case, he's allowed to 
log in with no problems, even if he's not in an allowed group.
Sudo (which is also controlled by LDAP) works correctly, i.e. if a user is not 
in an allowed group, but logs into the system anyway due to an authorized_keys 
entry, he will not be allowed to sudo execute anything.

The problem is that I have users with keys in place already.  We have 
automated processes that use these keys, so I can't be draconian and disallow 
key usage.  On the other hand, I have a fairly fluid set of people moving into 
and out of groups, so I need to be able to control access to these machines 
regardless of whether there is a key in authorized_keys.

Has anyone seen this before, or is there a way that I can re-order my pam 
config to force SSH to respect the group membership requirements?

Thanks.
John Gorkos




More information about the Pam-list mailing list