Samba kennt verschiedene Sicherheitsebenen, die alle durch die Angabe

  security = ...

in der [global]-Sektion eingestellt werden. Das heißt, sie gelten immer für den gesammten Server und sind nicht für jedes einzelne share einstellbar. Denkbare Werte für security sind share, user, server und domain. Diese vier Sicherheitsebenen werden hier einzeln erläutert.

security = share

Bisher haben wir in unsere Samba Konfiguration immer die Zeile

  security = share

in die [global]-Sektion eingetragen. Dieser Eintrag entspricht der „Zugriffssteuerung auf Freigabeebene“ unter Windows. Es ist die geringste Sicherheitsstufe, die Zugriff auf bestimmte shares nur über die Frage klärt, ob ein share öffentlich ist oder nicht. Allerdings kann auch unter dieser Einstellung mit Samba eine userbezogene Freigabe realisiert werden, indem dem share die Anweisung

  guest ok = No

gesetzt wird. In diesem Fall wird Samba ein Passwort anfordern, das zu dem Usernamen passen muß, der unter Windows angegeben wurde. Auch hier gilt, dass ab Win98 die Passwörter verschlüsselt übermittelt werden, also die Zeile

  encrypt passwords = Yes

in der [global]-Sektion stehen muß. Zusätzlich muß der entsprechende User sowohl Linux bekannt sein, als auch ein verschlüsseltes Passwort in der Datei /etc/smbpasswd besitzen. (Siehe Userverzeichnisse)

Die Frage, wer dann nun was in dem Verzeichnis anstellen darf wird wiederum von Linux selbst beantwortet. Es gelten die normalen Unix-Dateizugriffsrechte des jeweiligen Users. Das ist auch der Grund, warum jeder Samba-User auch eine gültige Unix UserID besitzen muß.

Zusammenfassend ist also zu sagen, dass Samba mit dieser Methode noch wesentlich sicherere Zugriffe zulässt, als es Windows95/98 zulassen würde. Andererseits ist diese Methode erheblich eingeschränkt, was die Möglichkeiten der userbasierten Zugriffskontrolle angeht.

security = share wird hauptsächlich in Systemen eingesetzt, die alle Dienste frei – ohne Passwörter – anbieten wollen, oder in Systemen, deren User nicht identisch mit den Windows-Usern sind.

security = user

Eine andere Möglichkeit wird durch die Einstellung

  security = user

in der [global]-Sektion ermöglicht. Das ist – seit Samba 2.0 – die voreingestellte Methode. In dieser Einstellung muß sich ein Windows-User zuerst „einloggen“, bevor er irgendwelche Dienste des Samba-Servers in Anspruch nehmen darf. Das heißt, er muß einen Usernamen und ein Passwort an den Samba-Server schicken, der wiederum überprüft, ob die beiden Angaben stimmen und erst nach erfolgreicher Prüfung Zugriff gewährt. Der Zugriff ist dann wiederum abhängig von den Linux-Rechten, die dieser User auf dem Samba-Server hat. Das heißt, dass diese Methode nur dann funktioniert, wenn auf dem Windows-Rechner die selben Usernamen existieren, wie auf dem Samba-Server.

Wie schon bei früheren Passwortübermittlungen wird auch hier wieder zwischen unverschlüsselter Passwortübermittlung (bis einschließlich Win95) und verschlüsselter Passwortübergabe (ab Win98) unterschieden. Das heißt, wenn die Windows-Rechner mindestens Win98 fahren, muß die Zeile

  encrypt passwords = Yes

in der [global]-Sektion stehen und die User müssen mittels smbpasswd angelegt werden.

Beachten Sie, dass der Name der angeforderten Resource nicht an den Server weitergeschickt wird, bevor sich der Windows-User nicht korrekt angemeldet hat. Das ist der Grund, warum Gast-shares (guest ok) in diesem Modus nicht funktionieren, ohne dass User automatisch in einen Gastaccount umgewandelt werden. Aber auch dazu müssen sie sich zuerst korrekt anmelden, also einen Useraccount besitzen.

Eine kommentierte Beispielkonfiguration für den User-Modus finden Sie hier

security = server

In diesem Modus versucht Samba die Passwortüberprüfung nicht selbst vorzunehmen, sondern die angegebenen Username/Passwort Kombinationen an einen anderen SMB-Server zur Überprüfung weiterzuleiten (z.B. einen NT-Rechner). Wenn das fehlschlägt, wird automatisch auf die Einstellung security = user zurückgeschaltet.

Damit Samba weiss, an welchen Server es die Passwortüberprüfung weiterleiten soll, muß der entsprechende Server mit der Angabe password server = … in der [global]-Sektion angegeben werden. Der angegebene Name muß ein NetBIOS Name sein, also der Name, unter dem der Rechner auch unter Windows ansprechbar ist. Dieser angegebene Server muß selbst im security = user Modus laufen, um die entsprechende Überprüfung vorzunehmen.

Achtung: Versuchen Sie niemals hier den Samba Server selbst einzutragen! Es würde zu einer Endlosschleife kommen, die den gesammten Samba-Server blockieren würde.

Aus der Sicht des Windows-Clients ist der Server-Modus absolut identisch mit dem User-Modus. Der Unterschied bezieht sich nur auf die Frage, wie der Samba-Server die Überprüfung der Zugriffsrechte vornimmt. Im User-Modus macht er es selbst, im Server-Modus leitet er es an einen anderen Server weiter. Natürlich kann dieser andere Server auch wieder ein Samba Rechner sein, der dann aber eben im User-Modus laufen muß…

Beachten Sie, dass der Name der angeforderten Resource nicht an den Server weitergeschickt wird, bevor sich der Windows-User nicht korrekt angemeldet hat. Das ist der Grund, warum Gast-shares (guest ok) in diesem Modus nicht funktionieren, ohne dass User automatisch in einen Gastaccount umgewandelt werden. Aber auch dazu müssen sie sich zuerst korrekt anmelden, also einen Useraccount besitzen.

Eine kommentierte Beispielkonfiguration für den Server-Modus finden Sie hier

security = domain

Dieser Modus funktioniert nur dann, wenn der Samba-Server mittels des Programms smbpasswd an eine bestehende Windows NT Domain angeschlossen wurde. Der Parameter encrypted passwords muß aktiviert sein. In diesem Modus versucht der Samba-Server alle Authentifizierungen an einen Primären- oder Backup Domain Controller einer Windows-NT Domain weiterzuleiten, genau so, wie es eine NT-Maschine selbst tun würde.

Trotzdem müssen User dem Linux-System bekannt sein, damit eine Bestimmung ihrer Zugriffsrechte auf einzelne Verzeichnisse möglich ist. Jeder User braucht also einerseits einen Account auf dem PDC der Windows-Domain und andererseits einen gültigen Acccount auf dem Linux-Server.

Wie schon bei dem Server-Modus, so ist dieser Modus aus der Sicht des Windows-Clients einfach der User-Modus. Der Unterschied liegt nur darin, auf welche Weise der Samba-Server die Passwörter authentifiziert.

Wie schon im Server-Modus, so muß auch hier der Rechner angegeben werden, der die Passwortüberprüfung vornimmt. Wieder benutzen wir die Angabe

  password server = ...

in der [global]-Sektion. Nur jetzt geben wir nicht einen Server an, sondern eine Liste, durch Kommata getrennt. Hier können wir den PDC und alle existierenden BDCs angeben, also etwa

  password server = NT-PDC, NT-BDC1, NT-BDC2

Wird statt einer Liste einfach nur ein Pluszeichen (+) angegeben, so versucht Samba den PDC und die BDCs selbst herauszufinden.

Beachten Sie auch, dass der Name der Domain, der wir uns anschließen, wiederum mit dem Parameter workgroup = … angegeben wird.

Damit unser Samba-Server aber überhaupt Mitglied einer Domain werden kann, müssen wir erst dafür sorgen, dass er davon auch weiss. Dazu kommt wiederum das Programm smbpasswd zur Anwendung, das wir ja schon zum Anlegen der User und Wechseln der Passwörter benutzt hatten.

Mit dem Aufruf von

  smbpasswd -j Domain

wird der Samba-Server in die genannte Domain aufgenommen. Damit das funktioniert, muß der Administrator der NT-Domain mit dem Programm Server Manager for Domains den primären NetBIOS Namen des Samba-Servers in die Liste der Domain-Mitglieder aufgenommen haben.

Erst nachdem dieser Befehl ausgeführt wurde, sollte die smb.conf auf security = domain gesetzt werden. Von nun an sendet der Samba-Server alle Anfragen an den PDC zur Authentifizierung weiter.

Eine kommentierte Beispielkonfiguration für den Domain-Modus finden Sie hier