Linux Server - Samba

> Linux Server - Samba

> > # Samba als NT-PDC/BDC

> > Seit der Version 2.0 von Samba kann ein kompletter Windows-NT PDC (Primärer Domainen Controller) emuliert werden und so ein Netz aufgebaut werden, das alle Vorteile von NT-Domains bietet, ohne dass Lizenzgebühren anfallen. Allerdings ist diese Fähigkeit noch ziemlich beta, was nicht bedeutet, dass sie wackelig ist oder nicht funktioniert. Die Einschränkungen beziehen sich wesentlich mehr auf die Fragen der Verwaltungsarbeit.

> > Alleine über dieses Thema kann man ein ganzes Buch schreiben und wird noch genug weglassen müssen. Ich werde mich hier also ganz kurz fassen und eine einfache Konfiguration eines PDC mit Samba darstellen. Knifflige Details wie trusted domains oder Hybridserver werde ich nicht weiter beschreiben, auch wenn sie durchaus realisierbar sind.

> > ### Der Beispielserver

> > Um einen kleinen NT-Server zu emulieren brauchen wir entsprechende Verzeichnisse, die den wesentlichen Verzeichnissen des NT-Servers entsprechen. Die Namen und die Position der Verzeichnisse auf der Unix-Ebene sind frei wählbar, die Freigabenamen sollten - zumindestens bei Profiles und Netlogon - so gewählt werden wie im Beispiel.

> > Die Verzeichnisstruktur lege ich in diesem Beispiel in die /usr/local Hierarchie, sie kann genausogut an anderer Stelle angelegt werden.

> > Folgende Verzeichnisse werden erstellt, mit den jeweiligen Zugriffsrechten und Gruppenzugehörigkeiten:

> > Die Gruppe samba wurde von mir extra vorher angelegt, es kann natürlich auch mit anderen Gruppen gearbeitet werden.

> > ### Die Konfigurationsdatei /etc/smb.conf des Beispielservers

> > Wie üblich werden alle notwendigen Angaben in der Datei /etc/smb.conf vorgenommen. Die `[global]`-Sektion ist allerdings etwas größer als sonst.

> >       [global]
> >         workgroup = MYDOMAIN
> >         netbios name = NTPDC
> >         server string = Linux Samba Server %v

> >         security = user
> >         encrypt passwords = Yes
> >         domain logons = Yes

> >         guest account = nobody
> >         local master = Yes
> >         preferred master = Yes
> >         domain master = Yes
> >         os level = 65

> >         domain groups = samba,root
> >         domain admin group = root
> >         domain admin users = root,otto,hans
> >         logon home = \\%L\Profiles\%U
> >         logon path = \\%L\Profiles\%U
> >         logon drive = z:
> >         logon script = %U.log.bat

> >         username map = /usr/local/samba/users.map
> >         message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s

> >       [homes]
> >         comment = Heimatverzeichnis
> >         read only = No
> >         create mask = 0750
> >         browseable = No

> >       [Profiles]
> >         comment = Profiles (WIN9x+NT)
> >         path = /usr/local/samba/profiles/
> >         read only = No
> >         create mask = 0700
> >         directory mask = 0770
> >         browseable = YES

> >       [netlogon]
> >         comment = Netlogon Share (Read-Only)
> >         path = /usr/local/samba/netlogon
> >         browseable = YES

> >       [TREIBER]
> >         comment = Treiber und Tools
> >         path = /usr/local/samba/treiber
> >         write list = root,hans
> >         valid users = root,hans,otto,peter

> >       [DATEN]
> >         comment = Daten
> >         path = /usr/local/samba/daten
> >         force group = samba
> >         read only = No
> >         create mask = 0777

> > Im ersten Abschnitt der `[global]`-Sektion findet sich nichts wesentlich neues. Mit `workgroup = MYDOMAIN` definieren wir die Domain, für die der Server zuständig ist. Die Anweisung `netbios name = NTPDC` erklärt sich von selbst, hier wird der NetBIOS Name des Servers vergeben, der in diesem Fall vom DNS-Namen abweicht. Der Server String wurde im ersten Beispiel schon erklärt.

> > Der zweite Abschnitt enthält jetzt die Sicherheitseinstellungen. Ein NT-Server arbeitet mit der Einstellung `security = user`. Ein häufiger Fehler ist es, hier statt user domain anzugeben, aber wir wissen ja inzwischen, dass diese Angabe uns an einem anderen PDC anmeldet. Nachdem wir hier aber ja selbst der PDC sind, steht die Einstellung auf user. Natürlich arbeitet der Server mit verschlüsselten Passwörtern, daher die Angabe `encrypt passwords = Yes`. Die erste neue Anweisung ist jetzt `domain logons = Yes`. Diese Angabe ermöglicht es, Domain-Anmeldungen zu realisieren.

> > Der nächste Abschnitt erklärt uns zum Domain Master Browser, wie wir es im letzten Beispiel detailiert durchgesprochen haben.

> > Im folgenden Abschnitt finden sich die Einstellungen für die Domainverwaltung. Die Gruppen und User, die hier angegeben sind, beziehen sich auf die unter Linux gültigen Gruppen- und Usernamen. Damit werden also die Unix-User definiert, die sich überhaupt an der Domain anmelden dürfen (domain groups Mitglieder), die Verwaltungsarbeiten erledigen dürfen (domain admin group Mitglieder) und die Administratoren sind (domain admin users).

> > Die folgenden Einstellungen regeln den Domain-Logon Vorgang. Die Angabe `logon home = \\%L\Profiles\%U` bezeichnet das Verzeichnis, das als Home-Verzeichnis benutzt wird, wenn sich ein User an der Domain anmeldet. Die Angabe `logon path = \\%L\Profiles\%U` bezeichnet das Verzeichnis, das die Profiles und userbezogene Registry enthält. Beide Befehle verstehen die Standard-Substitutionen, mit denen es möglich ist, jedem User ein eigenes Verzeichnis zuzuweisen.

> > Die Angabe `logon drive = z:` wird nur von NT-Workstations benutzt und gibt den Laufwerksbuchstaben an, der für das Profiles-Verzeichnis benutzt werden soll. `logon script = %U.log.bat` gibt das Script an, das beim Anmelden an eine Domain ausgeführt werden soll. Es ist entweder eine Batch-Datei (.bat) oder eine NT Kommando-Datei (.cmd). Diese Datei muß im DOS-Textformat vorliegen, das heißt, sie muß die DOS Zeilentrenner (CR/LF) benutzen. Der Pfad wird relativ zum `[netlogon]`-Share angegeben. In der Regel sind in dieser Datei DOS-Befehle enthalten, die bestimmte Netzlaufwerke verbinden. Eine Beispieldatei für den User hans (/usr/local/samba/netlogon/hans.log.bat) könnte bei unserem Server folgendermaßen aussehen:

> >       NET USE L: \\NTPDC\DATEN
> >       NET USE M: \\NTPDC\hans
> >       NET USE N: \\NTPDC\TREIBER
> >       NET USE Y: /HOME
> >       NET TIME \\NTPDC /YES

> > Die letzten beiden Zeilen der `[global]`-Sektion beschreiben noch interessante Neuigkeiten. Die Zeile

> >       username map = /usr/local/samba/users.map

> > verweist auf eine Datei, die NT-Usernamen in Unix-Usernamen übersetzt. Eine Zeile sollte darin in jedem Fall enthalten sein, nämlich

> >       # NT to Linux map for users
> >       root = admin administrator

> > Das würde den Unix-Usernamen "root" sowohl in den Namen admin, als auch in den Namen administrator übersetzen. Wenn sich ein User also mit dem Namen admin an der Domain anmeldet, so wird er automatisch als root behandelt, muß dann aber auch das Passwort von root benutzen.

> > Die letzte Zeile der `[global]`-Sektion beschreibt ein Unix-Kommando, das ausgeführt werden soll, wenn der Server eine WinPopUp Message bekommt. Die Popup Nachricht wird in einer Datei abgelegt, die durch die Substitution %s ansprechbar ist. Unser Beispiel würde diese Nachricht an root mailen.

> > Die anderen Freigaben (homes, Profiles, netlogon, TREIBER und DATEN) sind genauso aufgebaut, wie bisher und enthalten nichts wesentlich neues mehr.

> > Damit sich User jetzt an unserer Domain anmelden können, sind noch ein paar Anmeldungen fällig. Zunächst müssen natürlich User angemeldet werden, die sowohl dem Unix-System, als auch Samba bekannt sind. In den meisten Fällen werden hier User angelegt, die sich unter Unix NICHT anmelden dürfen, also als Startshell das Programm /bin/false bekommen und kein Unix-Passwort erhalten. Diesen Usern wird dann mit smbpasswd ein Samba-Passwort vergeben und so können sie sich an der Domain, aber nicht am Unix-System anmelden. Aus der Sicht von Unix sollten die User der Gruppe samba zugeordnet werden.

> >       useradd -g samba -s /bin/false peter
> >       smbpasswd -a -e peter

> > Jetzt kann dem User ein Passwort vergeben werden.

> > Um auch NT-Rechner an einer Domain anzumelden, gibt es unter NT die Maschinen-Accounts. Auch die müssen wir anlegen, wenn wir NT-Workstations in unsere Domain aufnehmen wollen. Ein Maschinen-Account zeichnet sich durch ein Dollarzeichen am Ende des Namens aus. Ansonsten ist die Prozedur sehr ähnlich:

> >       useradd -s /bin/false RECHERNAME$
> >       smbpasswd -a -m RECHNERNAME$

> > Jetzt kann der Administrator der NT-Workstation diese Workstation in die Domain integrieren.

> > Insgesamt kann man sagen, dass es inzwischen möglich ist, die wichtigsten Funktionen eines NT-PDC unter Samba auszuführen. Einige Dinge, die die Verwaltung einfacher machen würden fehlen zwar noch, werden aber bereits entwickelt. Viele denkbare Möglichkeiten wurden hier noch nicht besprochen, weil es den Rahmen dieser Darstellung sprengen würde. Jede Samba-Distribution enthält aber eine sehr ausführliche Handbuchseite für die smb.conf Datei, sohwohl im man-Format, als auch in HTML...

> > [Zurück zur Samba Hauptseite] [Vorige Seite]