merenda Geschrieben 25. Juli 2005 Teilen Geschrieben 25. Juli 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 25. Juli 2005 Teilen Geschrieben 25. Juli 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
merenda Geschrieben 25. Juli 2005 Autor Teilen Geschrieben 25. Juli 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
merenda Geschrieben 25. Juli 2005 Autor Teilen Geschrieben 25. Juli 2005 HI, ich hab mit dem --service Schalter gefunden useradd -D ou=Test-Systeme,o=firma,c=de -m --service 'ldap' mars2Also 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 25. Juli 2005 Teilen Geschrieben 25. Juli 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
merenda Geschrieben 25. Juli 2005 Autor Teilen Geschrieben 25. Juli 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 25. Juli 2005 Teilen Geschrieben 25. Juli 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
merenda Geschrieben 25. Juli 2005 Autor Teilen Geschrieben 25. Juli 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 26. Juli 2005 Teilen Geschrieben 26. Juli 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
merenda Geschrieben 27. Juli 2005 Autor Teilen Geschrieben 27. Juli 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 28. Juli 2005 Teilen Geschrieben 28. Juli 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
merenda Geschrieben 28. Juli 2005 Autor Teilen Geschrieben 28. Juli 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 29. Juli 2005 Teilen Geschrieben 29. Juli 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.