Ich hatte gehofft, dass einige PAM / LDAP-Gurus mir hier weiterhelfen können. Ich habe vor kurzem ein LDAP-Verzeichnis auf Ubuntu Server eingerichtet, in dem sowohl Konten für meine Clients (zur Verwendung mit webbasierten Systemen) als auch für Mitarbeiter (die sich über SSH anmelden müssen) gespeichert sind.
Die LDAP-Authentifizierung funktioniert einwandfrei. Die Kontobeschränkungen funktionieren jedoch nicht: Personalkonten haben IDs zwischen 2001
und sind 2999
Mitglied der ssh-users
Gruppe, damit sie sich bei Servern anmelden können.
Die betreffenden Beschränkungen sind in /etc/ldap.conf
, und pam_min_uid
, pam_max_uid
und pam_groupdn
.
pam_groupdn
Enthält den vollständigen DN für meine ssh-users
Gruppe. pam_min_uid
= 2000
und pam_max_uid
= 2999
.
Jetzt habe ich es geschafft, sie zum Laufen zu bringen, indem ich Folgendes hinzufügte:
account [success=1 default=ignore] pam_ldap.so
über der pam_unix.so
Linie in /etc/pam.d/common-account
. Die lokalen Unix-Konten können sich dann jedoch NICHT anmelden: Der SSH-Server trennt die Verbindung, sobald sie es versuchen.
Ich habe das pam_ldap.so
Modul sufficient
in der obigen Datei festgelegt, aber dann erhalten die ungültigen Benutzer eine Meldung, dass sie sich nicht anmelden können, sie sich jedoch trotzdem anmelden.
Wie kann ich diese Kontobeschränkungen für LDAP-Benutzer festlegen, ohne dass sich UNIX-Benutzer anmelden müssen?
Wie Sie wahrscheinlich erraten können, bin ich ein Neuling in PAM, obwohl ich es geschafft habe, das Modul "Automatisch Heimatverzeichnisse erstellen" zum Laufen zu bringen :-)
Vielen Dank, Andy
Ich würde einfach verwenden
um nur bestimmte Gruppen zuzulassen (sowohl für lokale als auch für LDAP-Gruppen). Auf diese Weise müssen Sie nichts in angeben
ldap.conf
.Wenn Sie die Autorisierung beibehalten möchten, sollten Sie Benutzer nicht nach "Konto" -Pass filtern. Ich glaube du solltest es lieber auf "auth" pass machen. Zweitens verarbeitet pam_unix, wie Sie selbst sehen, sowohl lokale als auch LDAP-Konten (zumindest im "Konto" -Pass), sodass pam_ldap anscheinend überhaupt nicht erforderlich ist.
EDIT: Drittens, wenn Sie darauf bestehen, dass Inhalte auf "account" übergeben werden (was meiner Meinung nach seltsame Nebenwirkungen haben könnte), sollte Ihre Sequenz enden mit: ..., "enough pam_ldap", "required pam_localuser", "required pam_unix" . Ich meine, wenn Sie andere Module haben, verschieben Sie diese vor pam_ldap - ansonsten würden sie für LDAP-Konten aufgrund der "ausreichend" -Klausel ignoriert.
quelle
Nur um @ andy-shellam hinzuzufügen, hier ist meine
common-account
Datei:quelle