Zum Inhalt springen

LDAP - Userverwaltung mittels useradd und userdel ?


merenda

Empfohlene Beiträge

Hi @all,

mir ist lezte woche aufgefallen, dass man auch wenn LDAP eingesezt, useradd und userdel weiterhin benutzen kann. Ich dachte jetzt eigentlich, dass es alles über dem LDAP - Server laufen muss, dem ist aber nicht so.

Nach dem ich mir Manpages von useradd und userdel durchgelesen habe, habe ich mir gedacht ich teste das mal gleich aus:

useradd -D cn=admin,o=firma,c=de -m mars2
Nun ist es so, Der User wird jetzt aber auf dem LDAP-Client angelegt Lokal in der /etc/passwd und nicht wie gewünscht auf dem LDAP-Server. Ich poste euch mal meine Konfigfiles, villeicht kann mir jemand weiter Helfen ?! /etc/openldap/slapd.conf (LDAP-Server)
include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/misc.schema

include         /etc/openldap/schema/krb5-kdc.schema


pidfile         /var/run/slapd/run/slapd.pid

argsfile        /var/run/slapd/run/slapd.args


loglevel 256


schemacheck on


sizelimit 500

timelimit 3600



#### TEST - Maschinen ####


### Intel-TestMaschine

access to dn.subtree="ou=mars,ou=Test-Systeme,o=firma,c=de"

    by peername="127.0.0.1"      read

    by peername="53.139.198.186" read

    by * none


### sxA

access to dn.subtree="ou=sxA,ou=Test-Systeme,o=firma,c=de"

    by peername="127.0.0.1"      read

    by peername="10.206.176.212" read

    by * none


##################################################

# bdb database definitions

##################################################


database        bdb

checkpoint      1024    5

cachesize       10000



suffix          "o=firma,c=de"

rootdn          "cn=admin,o=firma,c=de"

rootpw          test


directory       /var/lib/ldap



index           default                 pres,eq

index           objectClass             eq


index           cn                      pres,sub,eq

index           sn                      pres,sub,eq

index           uid                     pres,sub,eq

index           displayName             pres,sub,eq


index           uidNumber               eq

index           gidNumber               eq

index           memberUid               eq
/etc/openldap/ldap.conf(LDAP-Client)
host    10.206.176.97


base    o=firma,c=de


nss_map_attribute       uniqueMember uniquemember



ldap_version    3


ssl     no


pam_password    crypt


pam_filter      objectclass=posixAccount


nss_base_passwd ou=mars,ou=Test-Systeme,o=firma,c=de

nss_base_shadow ou=mars,ou=Test-Systeme,o=firma,c=de

nss_base_group  ou=mars,ou=Test-Systeme,o=firma,c=de

/etc/pam.d/sshd (LDAP-Client)
#

# PAM configuration for the "sshd" service

#


# auth

auth     required       pam_nologin.so  no_warn

auth     required       pam_env.so

auth     sufficient     pam_ldap.so     no_warn try_first_pass

auth     required       pam_unix2.so    no_warn try_first_pass



# account

account  required       pam_nologin.so

account  sufficient     pam_ldap.so

account  required       pam_unix2.so


# password

session  required       pam_mkhomedir.so skeli=/etc/skell umask=0022

session  sufficient     pam_ldap.so

session  required       pam_unix2.so    none # trace or debug

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das hat nichts mit der LDAP oder PAM Konfiguration zu tun wo useradd seine User ablegt. Bei mir geht's über den Schaler '--service ldap'. Sobald der gesetzt ist wird der User im LDAP und nicht in den Dateien eingetragen.

Wo kann man diesen Schalter setzen ? Was hast du für eine Linux Distribution ? Ich setze SLES 8 / 9 ein.

Könntest du mir mal deine /etc/openldap/slapd.conf bzw. deine Access-Regeln posten, ich blickt da nicht mehr ganz durch :(

Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

HI,

ich hab mit dem --service Schalter gefunden :)

useradd -D ou=Test-Systeme,o=firma,c=de -m --service 'ldap' mars2

Also der User wird angelegt, aber er wird nicht angezeigt :(

Wenn ich dann aber mit slapcat ein Dumpabfrage, dann ist der User in der Datenbank ?! Weiß jemand weiter ?

Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei slapcat taucht der User auf, beim getent nicht? Ist das richtig so? Steht der User auch an der richtigen Stelle im LDAP?

Ich hatte auch so ein Problem. Nachdem ich fast alle 'index' Einträge entfernt habe hat's dann auch geklappt. Was bei mir ebenfalls noch einige Besserungen gebracht hat war der Austausch von rfc2307bis.schema durch nis.schema.

Und hier meine Config:

#

# rofa.rocl.local OpenLDAP Konfigruation

#



# Schema includieren

include			/etc/openldap/schema/core.schema

include			/etc/openldap/schema/cosine.schema

include			/etc/openldap/schema/inetorgperson.schema

include			/etc/openldap/schema/nis.schema

#include		/etc/openldap/schema/rfc2307bis.schema

include			/etc/openldap/schema/samba3.schema

include			/etc/openldap/schema/amavisd-new.schema

#include		/etc/openldap/schema/yast.schema

#include		/etc/openldap/schema/moz.schema

include			/etc/openldap/schema/mozillaOrgPerson.schema



# Allgemeine Einstellungen

pidfile			/var/run/slapd/slapd.pid

argsfile		/var/run/slapd/slapd.args

#loglevel		392



# Backend-Module einbinden

modulepath		/usr/lib/openldap/modules

# moduleload		back_ldap.la

# moduleload		back_meta.la

# moduleload		back_monitor.la

# moduleload		back_perl.la



# SASL

#sasl-host		rofa.rock.local

#sasl-realm		ldap://RoFa.Rock.Local

#sasl-secprops		noplain,minssf=0



# TLS

TLSCertificateFile	/etc/openldap/ldap.crt

TLSCertificateKeyFile	/etc/openldap/ldap.key

TLSCACertificateFile	/etc/openldap/cacert.pem

TLSCipherSuite		HIGH:MEDIUM

#TLSVerifyClient		allow



# weitere Sicherheitseinstellungen

password-hash		{SSHA}



################################################################################



##### Auth-Database (NSS + PAM) #####

database		bdb

cachesize		500

checkpoint		1024	5

suffix			"dc=Rock,dc=Local"

rootdn			"cn=Manager,dc=Rock,dc=Local"

rootpw			{SSHA}AL+uBzZm369rR4iSW1rzSXAKCdN3JwDW

directory		/var/lib/ldap/Rock_Local

index			objectClass 	eq

#index			uid 		pres,eq

#index			uidNumber	eq

#index			gidNumber	eq

#index			cn		pres,eq,sub


# Passwort schuetzen

access to attrs=userPassword

    by self write

    by * auth


# Rest darf lesen

access to *

    by * read


Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei slapcat taucht der User auf, beim getent nicht? Ist das richtig so? Steht der User auch an der richtigen Stelle im LDAP?
Ja genau, wenn ich slapcat aufrufe wird der User angezeigt und bein einem getent nicht auch nicht bei einem ldapsearch.

Ich hatte auch so ein Problem. Nachdem ich fast alle 'index' Einträge entfernt habe hat's dann auch geklappt. Was bei mir ebenfalls noch einige Besserungen gebracht hat war der Austausch von rfc2307bis.schema durch nis.schema.
Also ich hab die indexe auch auskommentiert hat aber nicht viel gebracht :(

Ich denke auch nicht das es am index liegt. die Option index steht nur für:

Index: Indiziert die Häufig genuzte Attribute, dadurch wird die Suche im gesamten Verzeichnisbaum reduziert.

Leider klappt das immer noch nicht mit dem useradd :( Sonst noch vorschläge ?

gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich hab die indexe auch auskommentiert hat aber nicht viel gebracht :(

Ich denke auch nicht das es am index liegt. die Option index steht nur für: *snip*

Das ist schon klar. Sobald die bei mir aber drin sind geht leider nur noch die Hälfte. Muss mal ein Update von OpenLDAP suchen und mal schauen, was dann passiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist schon klar. Sobald die bei mir aber drin sind geht leider nur noch die Hälfte. Muss mal ein Update von OpenLDAP suchen und mal schauen, was dann passiert.

Villeicht wird durch den Index etwas ausgelassen ?

Was hast du für eine Openldap Version ? Was ich immer noch nicht kapiert habe, wie funkt das mit den LDAP - Acceslist ?!

Wie muss ich das konfiguriren, dass eine gescheite Userauthentifizierung zu stande kommen kann ?

Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Weiß nicht genau welche Version ich habe. Sollte ziemlich aktuell sein - ist sicherlich aber nicht die 'Neuste'. Mal damit bei Gelegenheit mein Glück probieren. Was ich mir auch schon mal überlegt habe ist das Backend auszutauschen. Bringt ja vielleicht auch noch was...

Für die Authentifizierung sollte das hier reichen:

# Passwort schuetzen

access to attrs=userPassword

    by self write

    by * auth


# Rest darf lesen

access to *

    by * read

Lesen darf sowieso jeder und das muss ja auch so sein, sonst könnte auch das System selbst nicht zugreifen. Nur das Passwort sollte geschützt werden - das macht die erste Regel: das Feld userPassword darf nur von dem jeweiligen User geschrieben werden, alle anderen dürfen es nur für die Authentifizierung nutzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ok dann teste ich das mal so mit der Accessliste.

Was mir aufgefallen ist, wir haben uns darüber unterhalten, dass bei meinen useradd kein User angelegt wird. Das stimmt, der User wird angelegt, blos fu der Falschen Maschine.

mars:~ # useradd -D cn=admin,o=firma,c=de -m --service 'ldap' mars4

Enter LDAP Password:

Base DN for user account `mars4' is [COLOR=Red]"ou=sxA,ou=Test-Systeme,o=firma,[/COLOR]c=de".

useradd: Cannot find group `dialout' in service `ldap', ignored.

useradd: Cannot find group `uucp' in service `ldap', ignored.

useradd: Cannot find group `video' in service `ldap', ignored.

useradd: Cannot find group `audio' in service `ldap', ignored.

Der User wird auf der sxA angelegt und nicht auf Maschine mars wie es gewünsch ist. Muss ich beim useradd noch was mitgeben ?!

Wie ist das jetzt bei SLES 8 da funktioniert das wieder ganz anders ?! Hab schon verschiedene Varianten Versucht, haben aber nicht gefunzt :(

Weißt du wie man das auf einer SLES8 Maschine macht ?

Was sind das jetzt für Fehlermeldungen ?! Kannst du was damit anfangen ?

Danke und Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eigentlich trägt useradd die Daten an der richtigen Stelle ein - vorrausgesetzt die ldap.conf ist richtig eingerichtet. Ich selbst nehme für die Userverwaltung meist irgendein Frontend (hier bevorzuge ich phpldapadmin (phpldapadmin.sf.net)).

Für die Fehlermeldungen kannst Du ignorieren sofern der User trotzdem in diesen Gruppen ist. Alles was damit ausgesagt wird ist, dass LDAP diese Gruppen in sich nicht kennt - diese sind in /etc/groups definiert. Wie schon gesagt: solange es trotzdem funktioniert kannst Du das ignorieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also ich hab gestern ou=sxA,ou=Test-Systeme,o=firma,c=de gelöscht und wieder angelt und seit dem funkt das mit dem useradd.

Naja, ich denke, ich werde die User es doch über phpLDAPadmin verwalten.

Das ist echt ein Tolles Tool !

Ich hab die Access - Regeln noch mal überarbeitet

(1)# User können Ihr eigenes Passwort ändern 

access to attrs=userPassword 

    by cn=admin,o=firma,c=de write 

    by self write 

    by anonymous auth 

    by * none 


(2)### Intel-TestMaschine 

access to dn.subtree="ou=mars,ou=Test-Systeme,o=firma,c=de" 

    by cn=admin,o=firma,c=de write 

    by peername="53.139.198.186" read 

    by * none 


(3)### sxA 

access to dn.subtree="ou=sxA,ou=Test-Systeme,o=firma,c=de" 

    by cn=admin,o=firma,c=de write 

    by peername="10.206.176.212" read 

    by peername="10.206.176.148" read 

    by peername="10.206.176.74"  read 

    by * none

(1) Dieser Eintrag bewirkt, dass User auf "ihr eigenes" Atributt userPassword zugreifen dürfen. Ich könnte hier jetzt noch andere Atributte eintragen, je nach dem was die user dürfen und was nicht. Der Admin ist natürlich auch drin.

(2) Hier habe ich die Abteilung mars abgebildet, der Admin darf wieder schreiben, aber die Maschine selber darf nur lesen.

(3) Hier haben wir wieder ein Ähnliches beispiel, nur das es sich hier um die Abteilung sxA handelt.

Was hälst du davon ? So könnte ich doch meine Access-Regeln aufbauen ?

Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Klar, kann man so machen. Falls es sich beim Admin um den in der slapd.conf angegebenen handelt, kannst Du die Schreibrechte für den weglassen - die hat er sowieso immer.

Bei der Authentifizierung gehe ich selbst halt den Weg, dass jeder User alles lesen außer das Passwort und das eigene Passwort überschreiben darf. Wenn man mit den 'klassichen' Dateien passwd usw. arbeitet oder in einfachen NIS-Domains ist dieses Verhalten ja genauso.

Meine Zugriffsregeln werden erst dann komplexer, falls es z.B. mehrere in LDAP selbst verwaltete Admins gibt die z.B. nur für bestimmte Abteilungen Schreibrechte haben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...