Hallo, ich habe ein kleines Problem mit LDAP ! Unterhalb meiner Basedn: o=system gibt es einen User (uid=admin) und mehrere Servicebereiche (ou=samba, ou=proftpd) in denen es jeweils mehrer User gibt. Nun möchte ich das Server 1 mit SAMBA ausgestattet, nur den User "Admin" & die User unterhalb von Samba bekommt. Server 2 dagegen den User "Admin" & alle User unterhalb von proftpd. Ich habe schon versucht den pam_filter (ldap.conf) entsprechend zusetzen, aber das funktioniert überhaupt nicht. Syslog liefert "bad filter" Vielleicht hat ja jemand einen kleinen Tip für mich ! Manfred
Manfred Schmid
Hallo,
ich habe ein kleines Problem mit LDAP !
Unterhalb meiner Basedn: o=system gibt es einen User (uid=admin) und mehrere Servicebereiche (ou=samba, ou=proftpd) in denen es jeweils mehrer User gibt. Nun möchte ich das Server 1 mit SAMBA ausgestattet, nur den User "Admin" & die User unterhalb von Samba bekommt. Server 2 dagegen den User "Admin" & alle User unterhalb von proftpd.
Ich habe schon versucht den pam_filter (ldap.conf) entsprechend zusetzen, aber das funktioniert überhaupt nicht. Syslog liefert "bad filter"
Vielleicht hat ja jemand einen kleinen Tip für mich !
Ja. Du möchtest ja einen Administrator habem der stellvertretend für Samba die Paßworte und Einträge vornimmt. Dazu gibt es in smb.conf entsprechende Konfigurationsparamter, nämlich ,----[ smb.conf ]---- | ldap admin dn = cn=sambaAdmin,o=system | ldap suffix = ou=samba,o=system `---- Dann fügst du die virtuelle Person sambaAdmin hinzu, achte aber darauf daß das Atribut 'cn' genutzt wird, 'uid' verlangt andere Objectclassen. ,----[ sambaAdmin.ldif ]---- | dn: cn=sambaAdmin,o=system | objectclass: person | sn: sambaAdmin | cn: sambaAdmin | userPassword: xxxxxx | description: samba Administrator `-------- Dann fügst du noch entsprechende access Regeln in slapd.conf ein ,----[ slapd.conf ] | access to attrs=userPassword,lmPassword,ntPassword | by self write | access to dn.subtree="ou=samba,o=system" | by dn.exact="cn=sambaAdmin,o=system" write | by users read `---- users sind hier authentifizierte User. Bedenke, daß das dann keine PAM Authentifizierung ist. Das gleiche kannst du für proftp machen. -Dieter -- Dieter Kluenter | Systemberatung Tel:040.64861967 | Fax: 040.64891521 mailto: dkluenter(at)dkluenter.de http://www.avci.de
Nein, leider missverstanden ! Ich möchte auf beiden Maschinen einen User "uid=admin,o=system" der sich z.B. per SSH einloggen kann. Unter ou=samba,o=system soll es ein Anzahl X Usergeben die sich per LDAP am Samba authenifizieren können. Dazu müßen die User ja einen posixAccount besitzen der in LDAP drinstehen sollte. Auf dem zweiten Server soll es den gleichen "Admin" uid=admin,o=system wiederum geben, der sich per ssh einloggen kann. Da proftpd uidNumber & gidNumber benötigt, wäre es praktisch die gleichen Objectklassen zuverwenden wie das bei den posixAccount's ist. Jetzt kommt aber das Problem, sage ich nun dem ldapclient ( ldap.conf ) seine basedn ist o=system & scope sub so findet er mir alle User aus proftpd & samba. Und genau das möchte ich nicht. Manfred
Manfred Schmid
Nein, leider missverstanden !
Glaube ich nicht :-)
Ich möchte auf beiden Maschinen einen User "uid=admin,o=system" der sich z.B. per SSH einloggen kann. Unter ou=samba,o=system soll es ein Anzahl X Usergeben die sich per LDAP am Samba authenifizieren können. Dazu müßen die User ja einen posixAccount besitzen der in LDAP drinstehen sollte. Auf dem zweiten Server soll es den gleichen "Admin" uid=admin,o=system wiederum geben, der sich per ssh einloggen kann. Da proftpd uidNumber & gidNumber benötigt, wäre es praktisch die gleichen Objectklassen zuverwenden wie das bei den posixAccount's ist. Jetzt kommt aber das Problem, sage ich nun dem ldapclient ( ldap.conf ) seine basedn ist o=system & scope sub so findet er mir alle User aus proftpd & samba. Und genau das möchte ich nicht.
Samba User brauchen keinen Posixaccount, aber die Objectclasse posixAccount, da dort einige Attribute enthalten sind, die nicht in samba.schema enhalten sind. Andererseits dürfen Samba User aber einen User Account auf dem Host haben. Der von mir vorgeschlagene 'cn=sambaAdmin' ist KEINE reale Person, kann sich daher auch nicht mit dem Distinghuished Name per ssh einloggen. Stattdessen nimmt ein reales Individuum bei der Bindung zum Ldapserver die Identität cn=sambaAdmin an. Du kannst natürlich für beide Anwendungen einen einzigen Admin verwenden, so wie du das beabsichtigst, das halte ich aber für ein prinzipielles Sicherheitsrisiko. Proftp benötigt das nis.schema und die dort enthaltenen Attribute. Damit folgen die Entwickler der Empfehlung, Standardschemas zu verwenden, im Gegensatz zu den Sambaentwicklern, die ihre eigenen privaten Attribute und Objektklassen verwenden. Ich weiß nicht, ob proftp eine Authentifizierung über PAM durchführt, oder einen eigenen Mechanismus für LDAP hat. Samba, obwohl mit libldap und glibc kompiliert, liest nicht die /etc/openldap/ldap.conf , sondern nur seine eigene Konfigurationsdatei. Proftp liest vermutlich, da ebenfalls mit libldap und glibc kompiliert, ldap.conf und nimmt dann die dort vorhanden Einstellungen. Es sollte mich aber nicht wundern wenn Proftp nicht einen Parameter zur Konfiguration der Base DN hätte. Sonst setze doch einfach die Base DN auf 'ou=proftp,o=system'. oder nutze in slapd.conf den Parameter 'defaultsearchbase'. Ein ganz anderer Ansatz wäre natürlich, wenn du Gruppen bildest, und deine Anwender zentral unter einem Tree verwaltest. Das könnte dann so aussehen: ,----[ group.ldif ] | dn: cn=samba,o=system | objectclass: groupOfNames | cn=samba | member: uid=fritz,ou=users,o=system | member: dn=Franz Müller,ou=users,o=system `---- Das gleiche dann für proftp. Der Vorteil wäre, daß alle User unter einem Tree zusammengefügt sind, das hat Vorteile bei einer PAM Authentifizierung. Außerdem ist es einfacher, die Gruppen zu pflegen, da Veränderungen während der Laufzeit erfolgen können. -Dieter -- Dieter Kluenter | Systemberatung Tel:040.64861967 | Fax: 040.64891521 mailto: dkluenter(at)dkluenter.de http://www.avci.de
participants (2)
-
Dieter Kluenter
-
Manfred Schmid