J'espérais que certains gourous PAM / LDAP pourraient m'aider ici. J'ai récemment mis en place un annuaire LDAP sur Ubuntu Server pour détenir des comptes à la fois pour mes clients (à utiliser avec les systèmes basés sur le Web) et le personnel (qui devra se connecter via SSH.)
L'authentification LDAP fonctionne parfaitement. Cependant , je ne peux pas les restrictions de compte de travail: les comptes du personnel auront ID entre 2001
et 2999
et sera membre du ssh-users
groupe pour leur permettre de connexion aux serveurs.
Les restrictions en question sont /etc/ldap.conf
, et sont pam_min_uid
, pam_max_uid
et pam_groupdn
.
pam_groupdn
contient le DN complet de mon ssh-users
groupe. pam_min_uid
= 2000
et pam_max_uid
= 2999
.
Maintenant, j'ai réussi à les faire fonctionner en ajoutant:
account [success=1 default=ignore] pam_ldap.so
au-dessus de la pam_unix.so
ligne /etc/pam.d/common-account
. Cependant, les comptes Unix locaux ne peuvent alors PAS se connecter: le serveur SSH tue la connexion dès qu'ils essaient.
J'ai défini le pam_ldap.so
module sufficient
dans le fichier ci-dessus, mais les utilisateurs non valides reçoivent un message disant qu'ils ne peuvent pas se connecter, mais il les connecte quand même.
Alors, comment puis-je définir ces restrictions de compte pour les utilisateurs LDAP, tout en permettant aux utilisateurs UNIX de se connecter?
Comme vous pouvez probablement le deviner, je suis un débutant dans PAM, même si j'ai réussi à faire fonctionner le module "créer automatiquement des répertoires personnels" :-)
Merci beaucoup, Andy
J'utiliserais simplement
pour autoriser uniquement des groupes spécifiques (à la fois pour les groupes locaux et LDAP). De cette façon, vous n'avez rien à spécifier
ldap.conf
.Si vous souhaitez conserver l'autorisation à votre façon, vous ne devez pas filtrer les utilisateurs lors de la passe "compte". Je crois que vous devriez plutôt le faire sur le pass "auth". Deuxièmement, comme vous pouvez le constater vous-même, pam_unix traite à la fois les comptes locaux et LDAP (au moins lors de la passe "account"), il semble donc qu'il n'y ait aucun besoin de pam_ldap.
EDIT: Troisièmement, si vous insistez pour avoir des choses sur le pass "account" (ce qui pourrait avoir des effets secondaires étranges), votre séquence devrait se terminer par: ..., "suffisamment pam_ldap", "required pam_localuser", "required pam_unix" . Je veux dire, si vous avez d'autres modules, déplacez-les avant pam_ldap - sinon ils seraient ignorés pour les comptes LDAP en raison de la clause "suffisante".
la source
Juste pour ajouter à @ andy-shellam, voici mon
common-account
fichier:la source