Aus Linux-Magazin 07/2008

LPIC-1-Vorbereitung - Teil 24: Samba

© Forgiss, Fotolia.com

Ob beim Anbandeln auf dem Schulball oder dem Anbinden von Dateisystemen aus der Windows-Welt – etwas Sicherheit auf dem einen oder anderen Parkett ist immer nützlich. Die aktuelle Folge des LPI-Kurses zeigt die ersten Schritte im Samba-Takt.

In heterogenen Umgebungen kommen Anwender und Admins nicht um den Kontakt mit Windows herum. Sie wollen auf Servern gespeicherte Dateien lesen oder Clients solche anbieten. Lokal ist das einfacher: Linux bindet NTFS- oder FAT-Partitionen einfach ein.

Über das Netzwerk greift Unix klassischerweise per Network File System (NFS) auf entfernte Volumes zu [1], aber solche Implementationen für Windows sind selten. Fest eingebaut in Windows hingegen ist das SMB-Protokoll (Server Message Block), das neuerdings auch unter dem Namen Common Internet File System (CIFS) firmiert. Von der Bezeichnung hat das Samba-Projekt seinen Namen entlehnt und bietet das Protokoll für Linux und andere Unix-Varianten als freie Software unter der GPLv3 an [2].

Ein Samba-Server erteilt, ganz analog zu Windows-vernetzten Rechnern, Clients bestimmte Freigaben, die es ihnen erlauben, auf die vom Server verwalteten Ressourcen im Dateisystem zuzugreifen. Eine Freigabe (ein Share) ist ein Verzeichnisbaum, den Samba über das Netz anbietet. Dazu muss der Administrator nur auf dem Linux-Server die Software installieren, die Windows-Clients bringen alles schon von Haus aus mit.

LPI-Aufgabengruppen

Das Linux Professional Institute gliedert die Prüfungsfragen in Aufgabengruppen. Dieser Artikel erläutert die Konfiguration von Samba, die Objective 1.113.4 spezifiziert.

Vor dem Tanz

Samba implementiert die CIFS-Spezifikation mit fünf grundlegenden Diensten: Dateifreigabe, Drucken im Netzwerk, Authentifizierung und Autorisierung, Namensauflösung und Dienstankündigung (Suchen nach Datei- und Druckservern, das so genannte Browsing). Die LPIC-1-Prüfung konzentriert sich darauf, abzufragen, wie der Admin Daten freigibt, Berechtigungen verteilt und wie Benutzer sich authentifizieren. Druckfreigaben behandelt eine gesonderte Objective.

Jede gängige Distribution hat Samba mit an Bord, sodass sich die Programme einfach per Paketverwaltung einspielen lassen. Alternativ wartet das Quellpaket auf der Homepage des Projekts darauf, dass der Admin es abholt und übersetzt [3]. Nach der Installation stellt Samba einige Hilfswerkzeuge und drei Daemons bereit (siehe Tabelle 1). Die Serverdienste »smbd«, »winbindd« und »nmbd« bilden den Kern. Das Paket »samba« für Ubuntu oder Debian zieht eine Reihe von weiteren Paketen nach und bringt ein eigenes Init-Skript mit, das in den typischen Runlevels verlinkt ist.

Tabelle 1:
Komponenten der Samba-Suite

 

Name

Bedeutung

smbd

SMB/CIFS: Datei- und Druckdienste, Authentifizierung und
Autorisierung

nmbd

Netbios-Nameserver: Namensauflösung und
Dienstankündigung

winbindd

Name-Service-Switch zur Namensauflösung von
NT-Servern

testparm

Überprüft »smb.conf« auf syntaktische
Korrektheit

smbpasswd

Zuteilung oder Änderung eines SMB-Benutzerkennworts

smbstatus

Report über zwischen Server und Clients bestehende
Samba-Verbindungen

smbclient

»ftp«-artiger Client für den Zugriff auf
SMB/CIFS-Serverressourcen

swat

Samba Web Administration Tool

Rhythmus-Sektion

Herz einer Samba-Installation ist die Konfigurationsdatei »smb.conf«, befindlich im Ordner »/etc/samba« oder »/etc« selbst (siehe Listing 1). Diese Textdatei folgt in ihrem Format den ».ini«-Dateien von Windows und kontrolliert Sambas Dienste »smbd« und »nmbd«. Die Konfiguration von »smb.conf« beschreibt Verzeichnisse und Drucker, die der Server freigeben soll. Darüber hinaus legt sie fest, wer auf die Freigaben zugreifen darf (Authentifizierung) und in welcher Form er dazu berechtigt ist (Autorisierung). Sie legt etwa Zugriffsrechte fest.

Kommentare beginnen mit »#« oder »;« und müssen in eigenen Zeilen stehen. Ein Backslash »« bricht längere Zeilen um. Zuweisungen haben mit Zeichenketten, Wahrheitswert oder Ganzzahlen vom Parameter abhängende Typen, bei denen durch Kommata gebildete Aufzählungen zulässig sind.

Verschiedene Schreibweisen

Die Konfigurationsdatei von Samba kennt über 300 Parameter. Manche Dokumentationen sprechen alternativ auch von Optionen, Variablen oder Zuweisungen. Für viele Parameter gibt es mehrere synonyme Schreibweisen. So bedeuten »writable« oder »writeable«, dass eine Ressource beschrieben werden darf (Listing 1, Zeile 19). Ähnliches gilt für die Werte der Variablen: »yes«, »on« und »true« stehen für dieselbe Bedeutung.

Listing 1: Beispiel einer
»smb.conf«

01 # Globale Einstellungen:
02 [global]
03 ; Zugriff für Clients erlauben:
04 hosts allow = bob, 192.168.2.122
05 ; Für die anderen ist der Zugriff verboten:
06 hosts deny = ALL EXEPT 192.168.2.
07 ; Benutzer mit erlaubtem Zugang:
08 valid users = wolli, tanja
09 ; Maximale Größe der Log-Datei: 2 MByte
10 max log size = 2000
11 # Generischer Export von Homedirs:
12 [homes]
13 ; %U expandiert zum Benutzernamen:
14 comment = Heimatverzeichnis von %U
15 ; %S expandiert zum Namen der Freigabe,
16 ; hier ergibt das den Benutzernamen:
17 valid users = %S
18 ; Freigabe ist für diese Benutzer schreibbar:
19 writable = yes
20 
21 # Freigabe eines dedizierten Teilbaumes:
22 [musik]
23 comment = Lokale Musiksammlung
24 ; Freizugebender Server-lokaler Teilbaum:
25 path = /data/mp3/musik
26 ; Ist die Freigabe lediglich lesbar?
27 writable = no

Parameter treten oft in komplementären Paaren auf, etwa »read list« und »write list«, die eine Liste von Benutzern festlegt, die nur lesend oder auch schreibend zugreifen dürfen. In solchen Fällen sind die individuellen Vorrangregeln wichtig für die Konfiguration. Admins müssen sich letztlich damit abfinden, dass es mehrere alternative Wege gibt, eine konkrete Einstellung zu konfigurieren.

Samba bringt Standardeinstellungen für Parameter mit, weshalb es ausreicht, in einer kleinen Konfigurationsdatei nur notwendige Zuweisungen zu tätigen. Die mitgelieferte »smb.conf« eignet sich meist mit geringen Anpassungen für den Heimgebrauch. Für den Einstieg reicht es, die Struktur der Konfigurationsdatei zu verstehen und wenige wichtige Optionen zu kennen [4].

Die Datei besteht aus Sektionen. Ein in eckigen Klammern eingeschlossener Bezeichner leitet jede von ihnen ein. Alle Angaben unterscheiden nicht zwischen Groß- und Kleinbuchstaben. Typischerweise steht eine Sektion für eine Freigabe oder einen Dienst.

Einlasskontrolle

Eine Ausnahme bildet eine Sektion, die mit dem Schlüsselwort »[global]« beginnt. Sie vereinbart Einstellungen, die für den ganzen Server gelten; sie sollte in keiner Konfiguration fehlen. Ferner legt sie alle Standardeinstellungen für die folgenden Freigaben fest, es sei denn, andere Parameter überschreiben die Vorgabe.

Der Admin legt hier fest, welche Systeme sich mit Samba verbinden dürfen und welche nicht. Er definiert zugelassene und abzuweisende Benutzer und Gruppen und spezifiziert die maximal mögliche Größe der Samba-Protokolldatei in KByte für alle durch Samba exportierten Dateisysteme (Zeile 10).

Als Ausgangslage gestattet Samba jedem Client die Kontaktaufnahme. Der Systemverwalter kann dies mittels »hosts allow« oder »hosts deny« feiner eingrenzen. Dazu legt er mit dem Parameter »hosts allow« zunächst jene Rechner fest, die als Client auf eine Freigabe des Samba-Servers zugreifen dürfen (Zeile 4).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben