PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : openldap will nicht.



ralle2k
05.05.05, 13:37
Hallo Leute,

ich bin gerade dabei in einer Testumgebung (vmware / suse9.3) ein LDAP-Authentifizierungssystem aufzubauen.
Selbstverständlich habe ich alle möglichen howtos durchgelesen und komme dennoch nicht weiter.
Was ich will ist eine klassiche zentralisierte User und Gruppenverwaltung in LDAP und eine eine Anbindung von Clients (NFS,SMB,Automount,mkhomdir etc...). Ich scheiter schon am import von ldif Dateien.
Meine Hauptanleitungen sind:
[1] http://www.aumund.org/taxonomy/term/35
[2] http://www.solarblue.net/docs/ldap.htm#d0e163

ich benutze die angebene base.ldif für die Grundstruktur und bekomme gleich die Fehlermeldung:

ldap_add: Object class violation (65)
additional info: invalid structural object class chain (domain/organization)

Irgendwie bin ich noch nicht hinter das System von object klassen u.s.w gestiegen.

Kann mir jemand helfen. Vielleicht hat jemand da auch schon eine eigene ldap struktur die meine Zwecke erfüllt.

Danke

Hier nochmal die base.ldif von [1]


dn: dc=structure-net,dc=de
dc: structure-net
objectClass: top
objectClass: domain
objectClass: dcObject
objectClass: organization
o: Testfirma

dn: ou=Hosts,dc=structure-net,dc=de
ou: Hosts
objectClass: top
objectClass: organizationalUnit

dn: ou=Rpc,dc=structure-net,dc=de
ou: Rpc
objectClass: top
objectClass: organizationalUnit

dn: ou=Services,dc=structure-net,dc=de
ou: Services
objectClass: top
objectClass: organizationalUnit

dn: nisMapName=netgroup.byuser,dc=structure-net,dc=de
nismapname: netgroup.byuser
objectClass: top
objectClass: nisMap

dn: ou=Mounts,dc=structure-net,dc=de
ou: Mounts
objectClass: top
objectClass: organizationalUnit

dn: ou=Networks,dc=structure-net,dc=de
ou: Networks
objectClass: top
objectClass: organizationalUnit

dn: ou=People,dc=structure-net,dc=de
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=structure-net,dc=de
ou: Group
objectClass: top
objectClass: organizationalUnit

dn: ou=Netgroup,dc=structure-net,dc=de
ou: Netgroup
objectClass: top
objectClass: organizationalUnit

dn: ou=Protocols,dc=structure-net,dc=de
ou: Protocols
objectClass: top
objectClass: organizationalUnit

dn: ou=Aliases,dc=structure-net,dc=de
ou: Aliases
objectClass: top
objectClass: organizationalUnit

dn: nisMapName=netgroup.byhost,dc=structure-net,dc=de
nismapname: netgroup.byhost
objectClass: top
objectClass: nisMap

AceTheFace
05.05.05, 13:40
Bin selbst noch nicht richtig Fit in der Materie. Habe aber nach dem Howto von http://www.idealx.org/prj/samba/index.en.html ein funktionierendes System zum Laufen bekommen. Windows- und Linuxclients können sich einwandfrei connecten und Daten austauschen. Auch die smbldap-tools von idealx.org sind eine echte Erleichterung. Vielleicht hilft dir das ja schon ein bisschen weiter.

Gruß,
Ace

ralle2k
10.05.05, 22:29
Hallo AceTheFace,

ich taste mich Schritt für Schritt nach deiner Anleitung an die Sache ran. Inzwischen habe ich schon mal einen Anfangsstruktur in der LDAP Datenbank.
Hab derweil das ganze auf fc3 aufgestetzt. Ging irgendwie besser. Mußte zwar diverse perl-Module nachinstallieren aber dann.
Wie auch immer. Ich habe trotzdem beim smbldap-populate am Ende einen Fehler bekommen:

(1) failed to add entry: naming attribute 'sambaDomainName' is not present in entry at /usr/local/sbin/smbldap-populate line 469, <GEN1> line 21

und

(2) Wenn ich über luma mal gemütlich einen neuen User hinzufügen will oder einen bestehenden ändern will sagt er mir immer, dass eine stärkere Authentifizierung benötigt wird. (strong(er) authentification required)

Vielleicht kannst du mir ja weiterhelfen. Wenn das klappt kommen die nächsten Schritte wie samba und pam etc...

Ganz schön kompliziert dieses Ldap-Projekt.

gruß R2k

AceTheFace
11.05.05, 00:38
Hm, so spontan kann ich dir da nicht helfen. Häng doch mal bitte deine aktuellen config-Dateien an.

Gruß,
Ace

mamue
11.05.05, 09:55
In cosine.schema steht:


objectclass ( 0.9.2342.19200300.100.4.13 NAME 'domain'
SUP top STRUCTURAL
MUST domainComponent


In core.schema steht:


objectclass ( 2.5.6.4 NAME 'organization'
DESC 'RFC2256: an organization'
SUP top STRUCTURAL


Jeder Eintrag muß genau eine Strukturelle Objektklasse haben, so sagt es der Standard. Neuere OpenLDAP Versionen erzwingen die Einhaltung.
Du hast leider zwei strukturelle Objectclasses verwendet, wenn ich mich nicht irre.

HTH,
mamue

ralle2k
11.05.05, 10:43
@mamue,

die Fehlermeldung auf die du dich jetzt beziehst ist nicht mehr aktuell. Das war noch mit suse93 und einer base.ldif, die ich aus irgendeinem Internet-howto genommen habe. Ich benutze inzwischen ja die smbldap-tools. Damit bin ich ja auch schon wesentlich weiter gekommen.

@AceTheFace
werde ich heute abend nochmal Infos zu posten. Zum Problem mit der authentification ist mir gerade eingefallen, dass ich wohl im Luma eine rootdn angeben muß, die schreiben darf. Per default logged sich ja bestimmt anonymous ein, der nicht schreiben darf. Werde ich heute abend mal testen. Wenn das klappt bleibt nur noch das Problem mit der sambaDomainName
.

Gruß R2k

ralle2k
18.05.05, 23:13
Hallo,

inzwischen habe ich mich weitergekämpft und habe den LDAP-Server am Laufen. Alle Linuxrechner können sich am LDAP anmelden. Sogar das automatische Homedir erstellen mit pam_mkhomedir geht. Zwar stimmen da die Rechte noch nicht (umask) aber egal. Das kommt später.
Jetzt ist die Samba-Sache dran und die geht natürlich auch erstmal nicht.
Ich denke dass meine smb.conf in Ordnung ist, aber dennoch kann ich keine Clients in die Domäne hinzufügen. Der Fehler ist eigentlich auch schon gefunden, nämlich der den ich am Anfang erwähnte. Diese Sache mit der dem smbldap-populate script, dass den SambaDomainName nicht ins ldap schreiben kann. Jetzt habe ich dadurch das Problem, dass die smbldapp-useradd scripte nicht laufen, weil der Domäneneintrag nicht im ldap steht.
Kann ich den denn manuell hinzufügen?

smbldapp-useradd gibt den Fehler: error looking for next uid ....

Gruß R2k

ralle2k
18.06.05, 00:40
Mein Kampf geht weiter....

Nachdem ich jetzt das ganz nochmal von vorne aufgesetzt habe funktionieren jetzt auch alle smbldap-.... scripte per hand. Ich hab eigentlich nur noch das Problem, dass ich meine Windows Rechner nicht in die Domäne hiefen kann, weil komischerweise die Verbindung zw. smb und ldap nicht richtig will. Ich hab erstmal alles mit ssl/tls abgeschaltet und ein ldapsearch -x geht auch. Kennwörter auf beiden Seiten stimmen. Irgendwie will samba noch nicht. Logfile sagt:

failed to bind to server ldap://127.0.0.0/ with dn="Manager,...."
smbldap_search_suffix: Problem during the LDAP search: (unknown) (Timed out)

Ich glaube wenn das geschafft ist rennt die Sau endlich.
Ideen?

ralle2k
01.07.05, 11:46
Das Problem ist gelöst. Ich glaube da kommt erst einmal nicht so schnell jemand drauf. War auch nur ein Zufall, dass ich das rausbekommen habe. Das Problem liegt in der SElinux Erweiterung von Fedora. Schalte ich das ab klappt die Verbindung zwischen samba und slap sofort und ohne Probleme.

So jetzt stimmt soweit alles nur dass beim Eintreten von Windows-Clients der Admin Benutzer nicht akzeptiert wird.
Das Problem schätze ich als 'easy' ein und hoffe da auf eure Hilfe

Gruß R2k

ralle2k
02.07.05, 18:51
noch keine Lösung. Hab langsam auch keine Bock mehr.

Wenn ich der Samba Domäne beitreten will wird immer gesagt, dass der Benutzer (root) nicht gefunden werden kann. Gebe ich ein falsches Passwort ein, sagt mir w2k, dass der benutzername oder das Kennwort falsch sind.

Hab inzwischen alles was google hergab durchprobiert.
- registry -> enableplaintextpassword auf 1 gestellt
- in den erweiterungen von den smbldap-useradd %.... in der smb.conf rumgespielt
- verschieden Sachen an den ou´s etc...

Ich bin mir sicher, dass es entweder an der smb.conf liegen muß oder an den Einstellungen des w2K clients.

Kann mir keiner helfen?

__________________
anbei meine smb.conf:
__________________

# Global parameters
[global]
workgroup = IDEALX-NT
netbios name = PDC-SRV
security = user
enable privileges = yes
interfaces = 172.16.145.128
#username map = /etc/samba/smbusers
server string = Samba Server %v
#security = ads
encrypt passwords = Yes
min passwd length = 3
#pam password change = no
#obey pam restrictions = No
ldap passwd sync = Yes
unix password sync = Yes
passwd program = /usr/local/sbin/smbldap-passwd -u %u
passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n"
#passwd chat debug = Yes
log level = 8
syslog = 1
log file = /var/log/samba/log.%m
max log size = 100000
time server = Yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
mangling method = hash2
Dos charset = 850
Unix charset = ISO8859-1

logon script = logon.bat
logon drive = H:
logon home =
logon path =

domain logons = Yes
domain master = Yes
admin users = root,testuser1
os level = 65
preferred master = Yes
wins support = yes
passdb backend = ldapsam:ldap://127.0.0.1/
ldap admin dn = cn=Manager,dc=idealx,dc=org
#ldap admin dn = "cn=samba,ou=DSA,dc=idealx,dc=org"
ldap ssl = off
ldap server = 127.0.0.1
ldap suffix = dc=idealx,dc=org
ldap group suffix = ou=Groups
ldap user suffix = ou=People
#ldap machine suffix = ou=Computers
ldap machine suffix = ou=People
#ldap idmap suffix = ou=Idmap
add user script = /usr/local/sbin/smbldap-useradd -m "%u"
#ldap delete dn = Yes
delete user script = /usr/local/sbin/smbldap-userdel "%u"
add machine script = /usr/local/sbin/smbldap-useradd -t 0 -w "%m"
add group script = /usr/local/sbin/smbldap-groupadd -p "%g"
#delete group script = /usr/local/sbin/smbldap-groupdel "%g"
add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/local/sbin/smbldap-usermod -g '%g' '%u'

# printers configuration
printer admin = @"Print Operators"
load printers = Yes
create mask = 0640
directory mask = 0750
#force create mode = 0640
#force directory mode = 0750
nt acl support = No
printing = cups
printcap name = cups
deadtime = 10
guest account = nobody
map to guest = Bad User
dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd
show add printer wizard = yes
; to maintain capital letters in shortcuts in any of the profile folders:
preserve case = yes
short preserve case = yes
case sensitive = no

idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
winbind use default domain = no
[netlogon]
path = /home/netlogon/
browseable = No
read only = yes

[profiles]
path = /home/profiles
read only = no
create mask = 0600
directory mask = 0700
browseable = No
guest ok = Yes
profile acls = yes
csc policy = disable
# next line is a great way to secure the profiles
#force user = %U
# next line allows administrator to access all profiles
#valid users = %U "Domain Admins"

[printers]
comment = Network Printers
printer admin = @"Print Operators"
guest ok = yes
printable = yes
path = /home/spool/
browseable = No
read only = Yes
printable = Yes
print command = /usr/bin/lpr -P%p -r %s
lpq command = /usr/bin/lpq -P%p
lprm command = /usr/bin/lprm -P%p %j
# print command = /usr/bin/lpr -U%U@%M -P%p -r %s
# lpq command = /usr/bin/lpq -U%U@%M -P%p
# lprm command = /usr/bin/lprm -U%U@%M -P%p %j
# lppause command = /usr/sbin/lpc -U%U@%M hold %p %j
# lpresume command = /usr/sbin/lpc -U%U@%M release %p %j
# queuepause command = /usr/sbin/lpc -U%U@%M stop %p
# queueresume command = /usr/sbin/lpc -U%U@%M start %p

[print$]
path = /home/printers
guest ok = No
browseable = Yes
read only = Yes
valid users = @"Print Operators"
write list = @"Print Operators"
create mask = 0664
directory mask = 0775