tux

L i n u x - S c h u l e
Der Samba Server

  Homepage | Server | Linux-Clients | Win9x-Clients | WinNT-Clients | Win3.11-Clients | Dos-Clients | Utilities  

Grundlagen

Das Sicherheitskonzept

Die Konfigurationsdatei /etc/samba/smb.conf

Erweiterungen zur Konfigurationsdatei"


Ein Samba-Server stellt unter Linux Datei- und Druckdienste bereit, die von Windows-Clients aus genutzt werden können. Grundlage dieser Dienste ist das SMB (Server Message Blocks) Protokoll. Dieses Protokoll muss auf einem Transportprotokoll aufsetzen. Beim c't-Server ist dies das TCP/IP- Protokoll (zu seiner Einrichtung auf den Clients gibt es Hinweise auf der entsprechenden Seite des Client-Betriebssystems).
Der Server wird mit einer lauffähigen Konfiguration ausgeliefert, die auch als Anmeldeserver genutzt werden kann. Zur Änderung der Konfiguration sind zwei Wege möglich:

Das Sicherheitskonzept

Es sind verschiedene Sicherheitslevel möglich, die in der Konfigurationsdatei gesetzt werden können:

Der Aufbau der Konfigurationsdatei /etc/samba/smb.conf

[global]Das ist die Bezeichnung der Section.
workgroup = bfshrDie Workgroup ist das, was beim Windows "Domain" heißt. Die Vorgabeeinstellung ist "WORKGROUP".
server string = %h mit Samba %vDas wird als Kommentar in der Netzwerkumgebung gezeigt. %h wird durch den Servernamen und %v durch die Samba-Versionsnummer ersetzt.
os level = 34Damit gewinnt der Samba-Server die Wahl zum Master-Browser. Hat man noch einen NT-Server im Netz, sollte man das OS-Level auf 2 heruntersetzen.
security = userAlle User brauchen ein Passwort (siehe oben).
domain master = yesSamba will Master-Browser werden.
domain logons = yesSamba arbeitet als Domain-Kontroller. Er nimmt Einlogganforderungen von Clients entgegen.
logon script = logon.batDiese Batchdatei (sie liegt im Share "Netlogon") wird beim Einloggen abgearbeitet.
case sensitive = noWird zwischen Groß- und Kleinschreibung unterschieden?
password level = 8Werden unterschiedliche Kombinationen von Groß- und Kleinschreibung beim Passwort probiert? (Manche Clients übermitteln alle Passworte in Großschreibung, egal was man eingibt; z.B. Win3.11)
mangle case = noWerden lange Dateinamen zu kurzen "umgebaut"?
preserve case = yesSoll Groß- oder Kleinschreibung erhalten bleiben?
short preserve case = yesWird Kleinschreibung erhalten?
mangled names = noWerden Dateinamen, die nicht der DOS-Konvention (drei Zeichen als Extension) entsprechen, angezeigt?
map archive = noWerden Dateien mit unter DOS gesetztem Archivattribut unter Linux als "ausführbar" gekennzeichnet?
valid chars = 148:153 132:142 129:154 225Welche ASCII-Zeichen sind in Dateinamen erlaubt?
printing = bsdZum Drucken wird der bsd-Druckerspooler verwendet. Der Druckertreiber muß auf dem Client installiert werden.
printcap name = /etc/printcapDiese Datei ist für die Konfiguration des Druckers verantwortlich.
load printers = yesSoll am Server gedruckt werden?
guest account = nobodyUnter welcher User-ID werden die Files ohne Passwortabfrage angelegt?
message command = /bin/bash -c 'rm %s' &Welches Kommando führt Samba aus, wenn es eine WinPopUp-Message bekommt (hier löscht es die Nachricht)?
lock directory = /var/lockWo stehen die Informationen über die Verhinderung von gemeinsamen Dateizugriffen?
share modes = yesWerden konkurrierende Dateizugriffe abgewehrt?
include = /etc/samba/smb.conf.projGibt es noch einen anderen Konfigurationsfile, der beachtet werden muß?
interfaces = 192.168.0.1/255.255.255.0 Über welche Netzwerkkarten bzw. IP-Nummern läuft der Datenverkehr? Wichtig, um ungewollte Rauswahlen zu verhindern.
  
[netlogon]Dieser Share beinhaltet die Angaben, wo und was beim Einloggen passiert.
browsable = yesWird der Share im Dateimanager angezeigt?
path = /etc/samba/scriptsWo befindet sich der Share?
public = yesHat jeder darauf Zugriff?
writeable = yesDarf dort geschrieben bzw. dürfen Dateien geändert werden?
writelist = adm,rootWer darf diese Änderungen durchführen? Hier kann sich z.B. der Netzwerkverwalter mit seiner perönlichen Kennung eintragen. Bei mir steht da noch "tlitsch".
  
[homes]Hier werden die Homeverzeichnisse erzeugt. Beim Einloggen eines eingetragenen Users mit Homeverzeichnis wird [home] automatisch durch /home/user ersetzt. M.E. das genialste Feature bei Samba.
; available = noIst der Service verfügbar? Im Beispiel ist diese Zeile auskommentiert, so dass er erreichbar ist. Mit dem Entfernen des ";" und einem Neustart von Samba können so ganz einfach die Zugriffe auf die Homes gesperrt werden.
comment = StammverzeichnisDas erscheint im Dateinamanger.
browseable = noDarf dort auch von anderen Usern gesucht und in Unterverzeichnisse gewechselt werden?
read only = noZum Schreiben freigegeben.
create mode = 0755Welche Unix-Dateiattribute erhalten DOS/Win-Dateien?
map archive = noWerden Dateien mit unter DOS gesetztem Archivattribut unter Linux als "ausführbar" gekennzeichnet?
wide links = noWerden Softlinks auf andere Verzeichnisse oder Dateien verfolgt?
preexec = /bin/bash -c 'cat /etc/motd | /usr/samba/bin/smbclient -M %m -I %I' &Diese Kommando (hier wird die motd = Message of the Day geschickt) wird beim Einloggen eines Clients ausgeführt. (Ich habe auf Win9x und Win3.11 noch nie eine solche Message gesehen.)
  
[printers]
comment = Die Drucker
printable = yes
browsable = no
public = no
writable = no
create mode = 0700
path = /var/tmp
min printspace = 10000
Wie der Name schon sagt: hier geht es um die Drucker. Das macht normalerweise keine Probleme und wird deshalb auch nicht weiter kommentiert.
  
[tmp]Das ist das Verzeichnis für den Datenaustausch. Es sollte regelmäßig geleert werden. Und bei Klassenarbeiten gehört es abgeschaltet!
; available = noDurch Entfernen des ; kann man den Datenaustausch abschalten !
comment = DatenaustauschSo heißt es.
path = /home/tmpDa ist es.
read only = noAlle können was reinschreiben.
public = yesGenau, alle dürfen.
wide links = noAber es werden keine Links auf andere Verzeichnisse oder Dateien verfolgt.
  
[pub]Hier sollte für alle (public) zugängliches Material gesammelt werden
comment = UnterrichtsmaterialDas sieht der User im Webbrowser.
path = /home/admWo ist es?
read only = yesHier darf niemend was löschen oder verändern.
public = yesWeil es für alle da sein soll.
wide links = yesHier darf man endlich auch Links auf andere Verzeichnisse oder Dateien setzen.
  
[a]
comment = Diskette in Laufwerk A
path = /a
read only = no
public = yes
wide links = no
Hier sind nach dem oben gesagten kaum noch Kommentare nötig ...
  
[b] und [cdrom] sind genau wie [a] 

Es gibt einige wichtige Erweiterungen dieser Konfigurationsdatei in der Section [global]:

[global]
admin users = anwender
Hier kann einzelnen Anwendern oder ganzen Gruppen (dann mit einem "@" davor, z.B. @lehrer) das Zugriffsrecht auf alle Verzeichnisse auf dem Server gegeben werden. Dieses Recht sollte sehr restiktiv benutzt werden. Die von einem Admin-User angelegten Dateien erhalten auch, wenn sie aus Winxx heraus angelegt wurden, unter Linux die Eigentumsrechte root.gruppe-des-anwenders!
logon script = %g.bat
Hier wird eine gruppenspezifische Login Datei abgearbeitet. Es gibt also eine Datei lehrer.bat und eine Datei schueler.bat. Dadurch lassen sich versteckte shares (browseable=no) einem Laufwerksbuchstaben zuweisen, z.B. das share /home/lehrer dem Buchstaben L:. Es ist auch möglich, beim Login Programme zu starten oder eben nicht (wie z.B. einen identd).
[tree]
path = /
browseable = no
write only = yes
write list = @lehrer
Diese Freigabe erlaubt den Zugriff auf den gesamten Verzeichnisbaum des Servers. Der browseable Flag sorgt dafür, dass man die Freigabe im Windows-Explorer nicht sieht. Man muss also wissen, dass es diese Freigabe gibt, um mit "net use q: \\arktur\tree" eine Verbindung zu dieser Freigabe herzustellen. Die Dateien dieser Freigabe (also alle auf dem Server) sind nur durch die freigegebene Gruppe (hier die Lehrer) beschreibbar.

Eine Konstruktion wie die zuletzt genannte macht sich auch die Fachlehrershell zu Nutze. Mit dieser Shell können Schüler zu Projektgruppen zusammengefasst werden, die dann eine nur für diese Projektgruppe beschreibbare Freigabe erhalten.

  Nach oben

© Thomas Litsch, zuletzt aktualisiert 30.04.2000, Email: thomas.litsch@linux-schule.de