LDAP + pam_access : gestion users par ldap - Infrastructures serveurs - Systèmes & Réseaux Pro
MarshPosté le 08-04-2010 à 14:17:00
Hello,
Voilà ce que voudrais faire : Permettre à mes utilisateurs de s'authentifier à travers une base ldap sur des serveurs linux, en fonction de leur groupe (s'il font parti du groupe ldapuser, je leur permet de se connecter sur la machine, sinon la connexion est refusée).
Ce qui fonctionne : l'authentification simple, sans contrôle du groupe, tout se passe bien. Ce qui ne fonctionne pas, ou aléatoirement : Le contrôle du groupe, j'ai l'impression que c'est totalement aléatoire..
Pour mettre en place tout ça, je me suis appuyé sur ce tutoriel.
/etc/security/access.conf (j'ai remplacé login par ldapuser, je suis parti du principe qu'on peut mettre le groupe que l'on veut, tant que ça reste cohérent avec notre base ldap..)
# disallow all except people in the login group and root -:ALL EXCEPT root [b]ldapuser[/b]:ALL EXCEPT LOCAL
Ce qu'il se passe : A l'ouverture d'un shell j'arrive à me loguer avec userauth, ce qui est normal, je n'arrive pas avec userdeny, ce qui est normal aussi, par contre, j'arrive aussi à me loguer avec test, alors qu'il n'est pas du tout dans le groupe ldapuser ! Le truc le plus étrange, c'est que lorsque je pars d'un shell ouvert, en root, si je fais un "su" avec n'importe lequel de ces utilisateurs, j'arrive à me loguer...
Là je sèche, je mise fortement sur un problème de conf dans mes fichier /etc/pam.d/common-*, je suis certain que quelquechose n'est pas correct à ce niveau, mais quoi ? Je suis loin de maîtriser le fonctionnement de cette partie. Par ailleurs, j'ai pris pour mes utilisateurs un template lambda, qui jusqu'à présent fonctionnait sans problème, maintenant vis à vis de ceux je veux faire, il y a peut-être des choses en trop, ou pas assez ?
Merci à vous..
Message édité par nuitn0ire le 08-04-2010 à 14:19:45
Marsh Posté le 08-04-2010 à 14:17:00
Hello,
Voilà ce que voudrais faire : Permettre à mes utilisateurs de s'authentifier à travers une base ldap sur des serveurs linux, en fonction de leur groupe (s'il font parti du groupe ldapuser, je leur permet de se connecter sur la machine, sinon la connexion est refusée).
Ce qui fonctionne : l'authentification simple, sans contrôle du groupe, tout se passe bien.
Ce qui ne fonctionne pas, ou aléatoirement : Le contrôle du groupe, j'ai l'impression que c'est totalement aléatoire..
Pour mettre en place tout ça, je me suis appuyé sur ce tutoriel.
Concernant ma conf, voilà où j'en suis :
/etc/pam.d/common-account:
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 2000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
/etc/pam.d/common-auth:
account required pam_access.so
auth sufficient pam_unix.so nullok_secure
auth requisite pam_succeed_if.so uid >= 2000 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
/etc/pam.d/common-password:
password sufficient pam_unix.so md5 obscure min=4 max=8 nullok try_first_pass
password sufficient pam_ldap.so
password required pam_deny.so
/etc/pam.d/common-session:
session required pam_limits.so
session required pam_unix.so
session optional pam_ldap.so
session required pam_mkhomedir.so skel=/etc/skel/
/etc/security/access.conf (j'ai remplacé login par ldapuser, je suis parti du principe qu'on peut mettre le groupe que l'on veut, tant que ça reste cohérent avec notre base ldap..)
# disallow all except people in the login group and root
-:ALL EXCEPT root [b]ldapuser[/b]:ALL EXCEPT LOCAL
voici un dump rapide de ma base actuelle :
dn: dc=lab3
objectClass: top
objectClass: dcObject
objectClass: organization
o: lab3
dc: lab3
dn: cn=admin,dc=lab3
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {crypt}uVPPl7R64d3rc
dn: ou=Group,dc=lab3
objectClass: organizationalUnit
objectClass: top
ou: Group
dn: cn=autre,ou=Group,dc=lab3
objectClass: posixGroup
objectClass: top
cn: autre
userPassword: {crypt}x
gidNumber: 1003
memberUid: userdeny
memberUid: test
dn: cn=ldapuser,ou=Group,dc=lab3
objectClass: posixGroup
objectClass: top
userPassword: {crypt}x
gidNumber: 1002
memberUid: userauth
cn: ldapuser
dn: cn=testdeny,ou=Group,dc=lab3
objectClass: posixGroup
objectClass: top
cn: testdeny
userPassword: {crypt}x
gidNumber: 1005
memberUid: testdeny
dn: cn=userldap,ou=Group,dc=lab3
objectClass: posixGroup
objectClass: top
cn: userldap
userPassword: {crypt}x
gidNumber: 1002
memberUid: test
dn: ou=People,dc=lab3
objectClass: organizationalUnit
objectClass: top
ou: People
dn: uid=test,ou=People,dc=lab3
uid: test
cn: test
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 14665
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1004
gecos: test,,,
homeDirectory: /home/test
userPassword: {CRYPT}lXY6l29GKWv8M
gidNumber: 1003
dn: uid=testdeny,ou=People,dc=lab3
uid: testdeny
cn: testdeny
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 14665
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1005
gecos: testdeny,,,
homeDirectory: /home/testdeny
userPassword: {CRYPT}vOrk2R9MnHjgM
gidNumber: 1005
dn: uid=userauth,ou=People,dc=lab3
uid: userauth
cn: userauth
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 14665
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1002
gecos: userauth,,,
homeDirectory: /home/userauth
userPassword: {CRYPT}ppmjn6mkK5dOY
gidNumber: 1002
dn: uid=userdeny,ou=People,dc=lab3
uid: userdeny
cn: userdeny
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 14665
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1003
gecos: userdeny,,,
homeDirectory: /home/userdeny
userPassword: {CRYPT}Ay6TrcluhmN2Q
gidNumber: 1003
Ce qu'il se passe : A l'ouverture d'un shell j'arrive à me loguer avec userauth, ce qui est normal, je n'arrive pas avec userdeny, ce qui est normal aussi, par contre, j'arrive aussi à me loguer avec test, alors qu'il n'est pas du tout dans le groupe ldapuser ! Le truc le plus étrange, c'est que lorsque je pars d'un shell ouvert, en root, si je fais un "su" avec n'importe lequel de ces utilisateurs, j'arrive à me loguer...
Là je sèche, je mise fortement sur un problème de conf dans mes fichier /etc/pam.d/common-*, je suis certain que quelquechose n'est pas correct à ce niveau, mais quoi ? Je suis loin de maîtriser le fonctionnement de cette partie.
Par ailleurs, j'ai pris pour mes utilisateurs un template lambda, qui jusqu'à présent fonctionnait sans problème, maintenant vis à vis de ceux je veux faire, il y a peut-être des choses en trop, ou pas assez ?
Merci à vous..
Message édité par nuitn0ire le 08-04-2010 à 14:19:45