我希望有些PAM / LDAP大师可以帮助我.我最近在Ubuntu Server上设置了一个LDAP目录,用于保存我的客户端(用于基于Web的系统)和员工(需要通过SSH登录)的帐户.
LDAP身份验证工作正常.但是,我无法使帐户限制正常工作:员工帐户将具有2001年到2999年之间的ID,并且将成为ssh-users组的成员,以允许他们登录到服务器.
有问题的限制在/etc/ldap.conf中,并且是pam_min_uid,pam_max_uid和pam_groupdn.
pam_groupdn包含我的ssh-users组的完整DN. pam_min_uid = 2000和pam_max_uid = 2999.
现在,我已经设法让他们通过添加:
account [success=1 default=ignore] pam_ldap.so
在/etc/pam.d/common-account中的pam_unix.so行之上.但是,本地Unix帐户无法登录:SSH服务器在尝试时立即终止连接.
我已经在上面的文件中将pam_ldap.so模块设置为足够,但是无效用户会收到一条消息,指出他们无法登录,但无论如何都会记录它们.
那么,如何为LDAP用户设置这些帐户限制,同时仍允许UNIX用户登录?
你可能猜到我是PAM的新手,虽然我已经设法让“自动制作主目录”模块工作:-)
非常感谢,
安迪
PAM能够根据访问控制列表限制访问(至少在Ubuntu上),就像kubanskamac的答案(1)将组视为posix组一样,它们是存储在LDAP,/ etc / group还是NIS中.
/etc/security/access.conf是访问列表文件.在我的档案中,我把它放在最后:
-:ALL EXCEPT root sysadmin (ssh-users):ALL
这会拒绝除root,sysadmin和ssh-users(在LDAP中)的所有人,无论他们从哪里登录(第二个ALL).
然后在我的PAM帐户文件(这是一个帐户模块)中,我在最后添加:
account required pam_access.so
告诉PAM使用这个文件.这是一种享受:-)