Samba 3.x mit tdbsam und "Usermanager for Domains"

aus WB Wiki; freien Wissensdatenbank rund ums Thema Computer
Wechseln zu: Navigation, Suche

Linux

Eine Umsetzung der FAQ-Artikel erfolgt auf eigene Gefahr. Der Autor weist in seinem Artikel auf den jeweiligen Schwierigkeitsgrad und Zeitaufwand hin. Es wird ausdrücklich empfohlen, vor der Durchführung von Systemänderungen an Windows einen aktuellen Wiederherstellungspunkt anzulegen.
Siehe auch Wiki FAQ und Impressum.

Details
Bereich: Software
Kategorie: System
Gruppe: Linux
Betriebssystem: Linux
Zeitaufwand: Hoch
Anforderung: Mäßig

Zurück zur Übersicht


Samba als PDC in der Version 3.x
Kontenmangement mit dem MS-Tool „Usermanager for Domains“


Ziel soll sein, einen Samba-PDC einzurichten, welcher neben den homes und profiles eine netlogon-share sowie Daten hält. Die Authentifizierung erfolgt über das tdbsam-Backend, die gesamte Kontenverwaltung über das kostenlose MS-Tool „Usermanager for Domains“ (www.microsoft.com) welches es auch „nicht-Linux-kundigen“ Administratoren erlaubt, Benutzer und Gruppen von einer NT- oder XP-Workstation aus zu modifizieren.
Dieses kleine Tutorial will kein Tiefenwissen vermitteln, sondern anhand eines schnellen Erfolges zum Experimentieren und Weiterlernen anregen.

Ich arbeite zwar mit SuSe SLES 9 / SP3 doch gilt das Folgende auch für die Versionen SuSe 9 und 10. Unter der Anpassung der Pfade sollte das Gesagte aber auch für andere Distributionen gelten.


OK. Neu in Samba 3.x ist das sog. Groupmapping, welches beinhaltet, dass globale Domänengruppen auf lokale Unixgruppen abgebildet – gemappt - werden . Jeder, der schon einmal mit der Verwaltung einer MS-Domäne zu tun hatte, kennt sie: die Domänenadministratoren, -benutzer und –gäste. Genauso die lokalen Gruppen wie Druckoperatoren, Hauptbenutzer, Sicherungsoperatoren usw., welche nach der Installation von Microsoft Workstation oder Server bereits angelegt sind. Es handelt sich hier um sog. Built-in-Groups von denen drei für eine Domäne unerlässlich sind: das sind die Domain Admins mit der rid 512, die Domain Users, rid 513, sowie die Domain Guests mit der rid 514. Ebenso notwendig ist das Vorhandensein einer SID, ( S-1-5-21..... ), welche der Domäne eindeutig zugeordnet sein muss.
Nach der Installation von Samba 3.x wird ein solche SID erzeugt, welche die einzurichtende Domäne eindeutig identifiziert. Wir erhalten diese SID mit dem Befehl

  • net groupmap list
System Operators (S-1-5-32-549) -> -1
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
Domain Users (S-1-5-21-3732367786-856876144-3282938955-513) -> -1
Domain Admins (S-1-5-21-3732367786-856876144-3282938955-512) -> -1
Power Users (S-1-5-32-547) -> -1
Domain Guests (S-1-5-21-3732367786-856876144-3282938955-514) -> -1
Print Operators (S-1-5-32-550) -> -1
Administrators (S-1-5-32-544) -> -1
Account Operators (S-1-5-32-548) -> -1
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1


Und da sind sie, unsere MS Built.in-Groups. An dieser Stelle müssen nun die lebensnotwendigen Gruppen (rid 512-514) auf vorhandene Unixgruppen gemappt werden, um sie für die Administration von einem Windows-Client aus zugänglich zu machen. Hier können Standard Unixgruppen (ntadmin, users, guests) oder eigene verwendet werden. Der Befehl zum mappen lautet:

  • net groupmap modify ntgroup=[Gruppenname] unixgroup=[Gruppenname]

Wenn wir also Die MS-Domänengruppe Domain Admins auf die Unixgruppe ntadmin abbilden möchten, so wäre das:

  • net groupmap modify ntgroup=“Domain Admins“ unixgroup=ntadmin

Diesen Schritt wiederholen wir für die Domain Users und Domain Guests und erhalten mit

  • net groupmap list
System Operators (S-1-5-32-549) -> -1
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
Domain Users (S-1-5-21-3732367786-856876144-3282938955-513) -> users
Domain Admins (S-1-5-21-3732367786-856876144-3282938955-512) -> ntadmin
Power Users (S-1-5-32-547) -> -1
Domain Guests (S-1-5-21-3732367786-856876144-3282938955-514) -> nobody
Print Operators (S-1-5-32-550) -> -1
Administrators (S-1-5-32-544) -> -1
Account Operators (S-1-5-32-548) -> -1
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1


Wie bereits erwähnt, sind alle anderen Built-in-Groups zur Einrichtung einer Domäne nicht erforderlich. Der Parameter modify wird hier verwendet, da die zu mappenden NT-Gruppen bereits existieren. Sollte mal der Fall eintreten, ein Mapping vollständig an der Linuxconsole eingeben zu müssen, ist dies natürlich auch möglich. Als Erstes wird hierzu mit groupadd[Gruppenname] eine lokale Unixgruppe erstellt. Dann erfolgt das Mapping mit net groupmap add unixgroup=[Gruppenname] ntgroup=[Gruppenname] type=domain Also: groupadd testgruppe

Net groupmap add unixgroup=testgruppe ntgroup=testgruppe type=domain

Unser net groupmap list würde nun ergeben:

System Operators (S-1-5-32-549) -> -1
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
testgruppe (S-1-5-21-3700398112-441439466-3868696347-3003) -> testgruppe
Power Users (S-1-5-32-547) -> -1
Print Operators (S-1-5-32-550) -> -1
Administrators (S-1-5-32-544) -> -1
Domain Users (S-1-5-21-3700398112-441439466-3868696347-513) -> users
Domain Admins (S-1-5-21-3700398112-441439466-3868696347-512) -> ntadmin
Account Operators (S-1-5-32-548) -> -1
Domain Guests (S-1-5-21-3700398112-441439466-3868696347-514) -> nobody
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1


Bevor wir zur smb.conf kommen und die beiden Deamons nmb und smb erstmalig starten, ist noch ein Schritt notwendig. Da später das Anlegen von Benutzern über das Script useradd erfolgt, ist es erforderlich, die Standardeinstellungen für neu erstellte Benutzer zu ändern. Dazu starten wir yast/Sicherheit und Benutzer/Benutzer bearbeiten und anlegen und wählen dann Optionen für Experten/Standardeinstellung für neue Benutzer.
Die Standardgruppe sollte die sein, auf welche die NT-Gruppe Domain users gemappt ist. Die sekundären Gruppen (uucp, dailout etc) sollten entfern werden; Microsoft kennt diese Gruppen nicht und quittiert das mit entsprechenden Fehlermeldungen.
Die Standard Shell sollte auf /bin/false gesetzt werden – ein Windowsbenutzer benötigt keine shell. Der Pfad für das home-Verzeichnis sollte an dieser Stelle, falls nötig, angepasst werden.

So weit, so gut; kommen wir zur smb.conf:

[global]

workgroup = tuxdom # Name der Domäne
netbios name = pegasus # Netbiosname des PDC
server string = samba_pdc # Kommentar
security = user # Benutzername/Passwort erforderlich
domain master = yes # dient als Hauptbrowser f. Netbiosn.
domain logons = yes # Server ist Authentifizierungsserver


passdb backend = tdbsam # neben smbpasswd, winbindd, oder ldap
# ein weiterer Authentifizierungsmecha.
add user script = /usr/sbin/useradd "%u" -m
add machine script = /usr/sbin/useradd -s /bin/false "%u" -g machines
add group script = /usr/sbin/groupadd "%g"
add user to group script = /usr/sbin/groupmod -A "%u" "%g"
delete user from group script = /usr/sbin/groupmod -R "%u" "%g"
delete group script = /usr/sbin/groupdel "%g"
delete user script = /usr/sbin/userdel "%u"
set primary group script = /usr/sbin/usermod -g "%g" "%u"
wins support = yes # Server bietet WINS-Support
logon path = \\%L\profiles\%U # Profilverzeichnis
logon script = ntlogon.cmd # loginscript
logon drive = P: # Laufwerksbuchstabe, auf den home
# gemappt wird


Der Usermanager for Domains benutzt die ersten sieben Zeilen zur vollständigen Verwaltung von Benutzern und Gruppen. Zur Bedeutung der einzelnen Parameter sei auf die Manpages verwiesen. Bitte beachten, dass die Gruppe machines noch angelegt werden muss. Nun die drei Systemfreigaben:

[netlogon]

path = /local/samba/netlogon
read only = yes
browseable = no

[profiles]

path = /local/samba/profiles
read only = no
browseable = no
create mask =700
directory mask = 700

[homes]

path = /local/samba/homes/%S
valid users = %S
read only = no
browseable = no
read only = no
create mask = 700
directory mask = 700


Nun müssen wir noch mit smbpasswd –a root den Benutzer root und Samba einander bekannt machen sowie mit rcnmb start und rcsmb start samba starten (bitte nicht vergessen, diese Deamons später automatisch starten zu lassen).
An der Konsole des Servers geben wir nun testparm , ein Script zur logischen und syntaktischen Überprüfung der smb.conf, ein. Das Ergebnis sollte so aussehen:

Load smb config file from [Pfad zur smb.conf]
Processing section „[netlogon]“
Processing section „[profiles]“
Processing section „[homes]“
Loaded services file OK
Server role ROLE_DOMAIN_PDC


Wenn wir soweit sind, ist es an der Zeit, einen Windows-Client der Domäne anzuschließen. Dies wird wie gewohnt durch einen Wechsel aus der Arbeitsgruppe in die Domäne tuxdom erledigt. Der hierzu berechtigte Benutzer ist natürlich root mit seinem samba-Passwort.
Achso: in Grunde gibt es nur einen „echten“ Domänenadmin, und das ist root. Zwar ist es möglich, durch username map = file in der [global] Sektion auch Claudia und Peter auf root zu mappen, jedoch habe ich es bisher noch nicht fertig gebracht, dass diese Benutzer ein von root abweichendes Kennwort benutzen können.

Nach erfolgtem Domänenanschluß rufen wir den Usermanager auf und setzten zuerst die Primary Group des Benutzers root auf Domain Admins. Dies deshalb, da die Windows-Clients mit der Primary Group root ( in dieser ist der Benutzer root per default) nichts anfangen können. Danach nehmen wir die globale Gruppe Domain Admins in die lokale Gruppe Administratoren auf.
So, nun Benutzer,Gruppen und einige Maschinenkonten anlegen; Mitgliedschaften zuweisen und sehen, ob alles funktioniert.