• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Domänen-Beitritt, Machinen-Account unvollständig

pixel

Hacker
Hallo zusamen,

ich versuche schon seit drei Tagen ein Problem mit der Vertrauensstellung der Windows-Clients im Samba/LDAP zu lösen. Die Manpage zum tool sowie dessen Hilfe sind nicht wirklich hilfreich und extrem übersichtlich :-(

Es geht um ein OpenSuSE 12.2 (tritt aber auch auf 12.3 & 13.1 auf). Die Umgebung ist immer gleich. Samba-PDC der die User/Gruppen etc. im LDAP vorhält. Die smb.conf stellt sich wie folgt dar:
Code:
[global]
        workgroup = LOCALDOM
        passdb backend = ldapsam:ldap://tux.local.lan
        logon path = \\%L\profiles\.msprofile
        logon home = \\%L\%U\.9xprofile
        logon drive = P:
        add user script = ldapsmb -a -u "%u"
        delete user script = ldapsmb -d -u "%u"
        add machine script = ldapsmb -a --homedir /var/lib/nobody -w "%u"
        add group script = ldapsmb -a -g "%g"
        delete group script = ldapsmb -d -g "%g"
        add user to group script = ldapsmb -j -u "%u" -g "%g"
        delete user from group script = ldapsmb -j -u "%u" -g "%g"
        set primary group script = ldapsmb -m -u "%u" -gid "%g
        domain logons = Yes
        domain master = Yes
        ldap admin dn = cn=Administrator,dc=local,dc=lan
        ldap group suffix = ou=group
        ldap machine suffix = ou=Machines
        ldap passwd sync = Yes
        ldap suffix = dc=local,dc=lan
        ldap user suffix = ou=people
        local master = Yes
        os level = 255
        preferred master = Yes
        security = user
        wins support = Yes
        netbios name = tux
        usershare allow guests = No
        map to guest = Bad User

Das Groupmapping sollte auch passen:
Code:
~# net groupmap list
allusers (S-1-5-21-3602057179-2995430197-2187176434-513) -> allusers
admins (S-1-5-21-3602057179-2995430197-2187176434-512) -> admins
guests (S-1-5-21-3602057179-2995430197-2187176434-514) -> guests
domcomputer (S-1-5-21-3602057179-2995430197-2187176434-515) -> domcomputer

Wenn ich nun mit dem Windows-Client einen Domänen-Beitritt durchführe wird zwar im LDAP das entsprechende Objekt angelegt. Das sieht so aus:
Code:
dn: uid=wints$,ou=Machines,dc=local,dc=lan
objectClass: sambaSamAccount
objectClass: posixAccount
objectClass: account
cn: Windows Workstation WINTS$
gidNumber: 65534
homeDirectory: /var/lib/nobody
sambaSID: S-1-5-21-3602057179-2995430197-2187176434-1027
uid: wints$
uidNumber: 1001
displayName: WINTS$
loginShell: /bin/false
sambaAcctFlags: [W          ]
sambaNTPassword: A641BFED514B1BF870C9A87AFD312BBD
sambaPwdLastSet: 1392401476
aber es fehlt das Attribut:
Code:
sambaPrimaryGroupSID: S-1-5-21-3602057179-2995430197-2187176434-515
welche das Objekt als Windows-Domänencomputer spezifiziert.

Für das On-The-Fly - Anlegen der Vertrauensstellung sind ja diese Zeilen verantwortlich:
Code:
add user script = ldapsmb -a -u "%u"
delete user script = ldapsmb -d -u "%u"
add machine script = ldapsmb -a --homedir /var/lib/nobody -w "%u"
add group script = ldapsmb -a -g "%g"
delete group script = ldapsmb -d -g "%g"
add user to group script = ldapsmb -j -u "%u" -g "%g"
delete user from group script = ldapsmb -j -u "%u" -g "%g"
set primary group script = ldapsmb -m -u "%u" -gid "%g
Zumindest werden diese in der Samba-Doku zum System (samba-doc, File: /usr/share/doc/packages/samba/examples/smb.conf.SUSE)
# This allows machine-account-creation on-the-fly.
# You need to create a root samba-user (never ever with the unix root pwd !!!)
# root has to be domain admin. and you need a group "machines"


Einzig den Parameter "--homedir /var/lib/nobody" musste ich hinzufügen da sonst der Domänen-Beitritt im Log mit dem Fehler dass die Variable $HOME nicht übergeben wurde abbricht.

Was mir jetzt allerding nicht ganz klar ist: Wird bei einem Domänen-Beitritt lediglich die Zeile:

add machine script....

ausgeführt oder spielen die anderen Zeilen auch mit rein? Ich habe den Aufruf von "ldapsmb" schon so ziemlich mit allen Parameter welche möglich sind getestet aber ohne Erfolg.

Solange die sambaPrimaryGroupSID nicht gesetzt ist wird im Log die Fehlermeldung:
Code:
Feb 14 19:11:17 tux smbd[13398]: [2014/02/14 19:11:17.857061,  0] rpc_server/netlogon/srv_netlog_nt.c:976(_netr_ServerAuthenticate3)
Feb 14 19:11:17 tux smbd[13398]:   _netr_ServerAuthenticate3: netlogon_creds_server_check failed. Rejecting auth request from client WINTS machine account WINTS$
ausgegeben.

Hat jemand von Euch ein ähnliches Setup unter OpenSuSE oder hat eine Idee wo das Problem liegen könnte?

Viele Grüße
pixel
 

spoensche

Moderator
Teammitglied
pixel schrieb:
aber es fehlt das Attribut:
Code:
sambaPrimaryGroupSID: S-1-5-21-3602057179-2995430197-2187176434-515
welche das Objekt als Windows-Domänencomputer spezifiziert.

Das Attribut fehlt nicht und spezifiziert auch keinen Windows Rechner als Domänencomputer. Das Attribut bezieht sich auf Benutzer und nicht auf Computer. Der Windows Rechner wird als Domänenmitglied anhand des dazu gehörigen Machineaccount verifiziert.
 
OP
P

pixel

Hacker
spoensche schrieb:
Das Attribut fehlt nicht und spezifiziert auch keinen Windows Rechner als Domänencomputer. Das Attribut bezieht sich auf Benutzer und nicht auf Computer. Der Windows Rechner wird als Domänenmitglied anhand des dazu gehörigen Machineaccount verifiziert.
Danke für die Info.
 
OP
P

pixel

Hacker
Danke für den Hinweis! Diese Woche kam wohl ein Update. Danach war der Befehl "ldapsmb" nicht mehr vorhanden. Das gleichnamige Paket war ebenfalls nicht mehr installiert und auch nicht mehr im Repo. Ich konnte es zwar auf dem Buid-Server herunterladen allerdings funktioniert es mit der aktuell unter OpenSuSE-13.1 installierten Samba-Version nicht.

Um mit Windows in die Domäne überhaupt wieder eintreten zu können musste ich nun wieder auf:
Code:
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
Nur damit habe ich nun wieder den Effekt dass das Maschinen-Konto sowohl in /etc/passwd als auch im LDAP angelegt wird was ja eigentlich Unsinn ist, oder?
 

spoensche

Moderator
Teammitglied
pixel schrieb:
Um mit Windows in die Domäne überhaupt wieder eintreten zu können musste ich nun wieder auf:
Code:
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
Nur damit habe ich nun wieder den Effekt dass das Maschinen-Konto sowohl in /etc/passwd als auch im LDAP angelegt wird was ja eigentlich Unsinn ist, oder?

Unsinn würde ich nicht sagen, aber überflüssig. Das der Machine-Account auch in der /etc/passwd angelegt wird liegt am useradd Befehl, da er normalerweise nur lokale Accounts anlegt.

Damit der Machine-Account nur auf dem LDAP-Server angelegt wird musst du "ldapadd" verwenden.
 
Oben