[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: restrict host login based on group

Joe Friedeggs wrote:

Use pam_groupdn

Specifies the distinguished name of a group to which a user must belong for logon authorization to succeed.
For example:

pam_groupdn cn=accessGroupServer1,ou=host_ssh_access,dc=example,dc=net

I am not sure if you can specify multiple groups, you'll have to play with it.

This question concerns pam-ldap and belongs on the pam-ldap mailing list.

No, pam_groupdn does not support multiple groups.

If you want to actually discuss something relevant to OpenLDAP, then switch to OpenLDAP's nssov overlay, which has full support for arbitrary host / group / ACL-based login authorization.


Date: Mon, 7 Dec 2009 18:26:57 +0530
Subject: Re: restrict host login based on group
From: shamika.joshi@gmail.com
To: adam@gradientzero.com
CC: serge.fonville@gmail.com; jarbas.junior@gmail.com; openldap-technical@openldap.org

I've been fighting with this since long time now. Reading posts&
archieves, having no luck beyond this point.......but now a bit desperate to get this done as I am
running out of time now.

Any help in this matter is truly appreciated.
I attempted to use following ldap.conf settings, but still get auth failures upon doing ssh w/ ldap user.

base dc=test,dc=com
uri ldap://
ldap_version 3

timelimit 120
bind_timelimit 120
idle_timelimit 3600
#pam_filter host=x15ubuntu
pam_filter host=*

pam_check_host_attr yes
pam_password crypt
bind_policy soft
nss_base_passwd ou=Users,dc=test,dc=com?one
nss_base_shadow ou=Users,dc=test,dc=com?one
nss_base_group ou=Group,dc=test,dc=com?one

nss_base_hosts ou=Hosts,dc=test,dc=com?one
nss_initgroups_ignoreusersavahi,avahiautoipd,backup,bin,couchdb,daemon,games,gdm,gnats,haldaemon,hplip,irc,kernoops,libuuid, list,lp,mail,man,messagebus,netdirector,news,postgres,proxy,pulse,root,saned,speech-dispatcher,sshd,sync,sys,syslog,uucp,www-data


passwd: files ldap
shadow: files ldap

group: files ldap
hosts: files ldap dns

"getent" for the user "shamika returns correct information from LDAPserver

[root@x15f12 security]# getent passwd shamika
shamika:x:503:55:Shamika J:/home/shamika:/bin/bash
[root@x15f12 security]# getent shadow shamika

[root@x15f12 security]# getent group sysadmin

No user can login even when I set pam_filter host=* , but if I comment out pam_fiilter it allows all ldap users to login via ssh.

Here is snapshot from /var/log/secure
Dec 7 18:12:26 x15f12 sshd[19642]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost user=shamika
Dec 7 18:12:28 x15f12 sshd[19642]: Failed password for shamika from ::1 port 54884 ssh2

Dec 7 18:12:29 x15f12 sshd[19643]: Connection closed by ::1

Here is my /pam.d/sshd file
auth sufficient /lib/security/pam_unix.so likeauth nullok

auth sufficient /lib/security/pam_ldap.so use_first_pass
auth required /lib/security/pam_deny.so

account required /lib/security/pam_unix.so
account sufficient /lib/security/pam_ldap.so

password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/pam_ldap.so use_authtok
password required /lib/security/pam_deny.so

session required /lib/security/pam_limits.so

session required /lib/security/pam_unix.so
session optional /lib/security/pam_ldap.so



2009/12/4 Shamika Joshi>

Hi all,
I'm stuck in the same issue as Serge Fonville.
I have created new Auxiliary objectclass 'testobj' with 'host' attribute&  added it to the ou=Groups.Then created 2 entries under Groups as below&  assigned members to those groups.

dn: cn=qagroup,ou=Groups,dc=test,dc=com
cn: qagroup
gidNumber: 4
objectClass: posixGroup
objectClass: testobj
host: x15f12.test.com

memberUid: uid=ldap1,ou=Users,dc=test,dc=com

memberUid: uid=ldap2,ou=Users,dc=test,dc=com

dn: cn=admin,ou=Groups,dc=test,dc=com
cn: admin
gidNumber: 0
objectClass: posixGroup
objectClass: testobj
host: x15ubuntu.test.com

memberUid: uid=ldap3,ou=Users,dc=test,dc=com
memberUid: uid=ldap4,ou=Users,dc=test,dc=com

Now which parameter in ldap.conf or any other files I host machine should I modify and how, so that members from qagroup or admin groups only get access to host mentioned in their respective attributes ??

Thanks in advance

2009/12/3 Adam Hough>

Or you can create your own Aux. object class that includes the host

attribute then you just have to modify the ldap.conf for the machine to

restrict user authentication.

- Adam

On Thu, 2009-12-03 at 10:48 -0300, Jarbas Peixoto Júnior wrote:

If you are using ssh and pam can be done like this:

# tail /etc/ssh/sshd_config

# Allow client to pass locale environment variables

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

# Restringir acesso ao grupo local 'suporte' e a grupos LDAP

AllowGroups suporte "SSH UDSL"

where "SSH UDSL" is a Group in LDAP, and "suporte" is a local group.

2009/12/3 Serge Fonville>:


While setting up an LDAP server. I noticed that it is not possible to

add a host attribute to a posixGroup.

Is there a way to limit a user what host they can logon to based on

their group membership?

Thanks in advance


Serge Fonville

  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/