Suche im Katalog
Linux Netzwerker-Handbuch

Linux Netzwerker-Handbuch


Tony Bautts, Terry Dawson & Gregor N. Purdy
3. Auflage Juli 2005
ISBN 3-89721-414-8
382 Seiten
Weitere Informationen zur gedruckten Version des Buches finden Sie unter:
www.oreilly.de/catalog/linag3ger/

Zur Übersicht aller OpenBooks


TOC PREV NEXT INDEX

Kapitel 16

Samba

Microsoft Windows-Rechner sind in einer Netzwerkumgebung häufig unvermeidlich, ihre Kombination mit anderen Maschinen aber oft problematisch. Glücklicherweise hat eine Gruppe von Entwicklern in den letzten zehn Jahren schwer gearbeitet und eines der fortschrittlichsten Software-Pakete für die Windows-zu-Unix-Interoperabilität geschaffen - Samba. Diese Software ist sogar so erfolgreich und praktisch, dass Systemadministratoren Windows-Server komplett durch Samba-Server ersetzen können, wobei die Funktionalität erhalten bleibt, während sich die Stabilität erhöht.

Samba - Eine Einführung

Samba, das nach wie vor weiterentwickelt wird, um die Kompatibilität der Funktionen mit der sich laufend ändernden Microsoft-Software zu gewährleisten, stellt ein Framework zur Verfügung, das es Linux-Maschinen erlaubt, auf Windows-Netzwerkressourcen, wie etwa freigegebene Laufwerke und Drucker, zuzugreifen. Samba ermöglicht Linux-Maschinen nicht nur den Zugriff auf diese Dienste, sondern erlaubt es Linux sogar, Windows-Maschinen die gleichen Dienste anzubieten. Mit Samba ist es möglich, einen Windows-basierten Fileserver, einen Windows-Druckerserver und sogar - mit entsprechend erweiterten Optionen - den Primären Domänen-Controller (PDC) zu ersetzen. Aktuelle Versionen von Samba bieten sogar Kompatibilität mit Active Directory. Dadurch, dass Samba Open Source ist, kann die Entwicklung ständig fortgesetzt werden und neue Funktionen eingeführt werden, wenn sich die Windows-Architektur ändert. Weitere Informationen über Samba finden Sie im Buch Samba von Jay Ts, Robert Eckstein und David Collier-Brown (O'Reilly).

SMB, CIFS und Samba

Die Samba zugrunde liegende Technik basiert auf Server Message Blocks (SMB) und wurde in den frühen 80er-Jahren ursprünglich von Dr. Barry Feigenbaum entwickelt, als dieser bei IBM arbeitete. Anfangs war IBM aktiv an der Entwicklung beteiligt, aber schon bald übernahm Microsoft die Führung und setzte die Entwicklungsarbeit verstärkt fort. Später benannte Microsoft das SMB-Protokoll in Common Internet File System (CIFS) um; unter dieser Bezeichnung ist es heutzutage auch bekannt. Die Begriffe werden oft auch abwechselnd verwendet.

Über die Funktionsweise von CIFS gibt es nur wenig genaue und offizielle Dokumentationen. Im Gegensatz zu den meisten anderen Netzwerkprotokollen gibt es keine offizielle RFC-Dokumentation, obwohl Microsoft in den 90er-Jahren Spezifikationen an die IETF übermittelte, die aufgrund verschiedener Ungenauigkeiten und Inkonsistenzen verfielen. Neuere Dokumentationsversuche von Microsoft waren nicht besonders hilfreich für die Samba-Entwicklungsgruppe, einerseits wegen auferlegter Lizenzbeschränkungen, andererseits wegen eines allgemeinen Mangels an neuen Informationen.

Samba beziehen

Es gibt eine ganze Reihe von Möglichkeiten, um Samba zu beziehen. Viele Distributionen enthalten Samba inzwischen als Teil ihrer Standardinstallation. Falls das bei Ihrer Distribution auch so ist, müssen Sie Samba nicht unbedingt aus den Quellen kompilieren. Benutzer von Red Hat, Mandrake und SuSE können das Paket aus RPM-Quellen installieren, die über eine Vielzahl von Samba-Spiegel-Servern verfügbar sind. Gentoo-Benutzer müssen nur emerge samba benutzen, um das Paket zu installieren. Debian-Benutzer machen dasselbe mit apt-get. Andere Benutzer (oder auch Benutzer der genannten Distributionen, die das gern möchten) können das Samba-Paket aus den Quellen installieren. Damit erreicht man oft die größtmögliche Flexibilität, da alle Optionen bei der Kompilierung zur Verfügung stehen.

Kompilieren aus den Quellen

Um Samba aus den Quellen zu kompilieren, müssen Sie sich die neueste tar-Datei mit dem Quellcode besorgen, die Sie auf einer der gespiegelten Samba-Sites finden können, die auf der Haupt-Website http://www.samba.org aufgeführt sind. Sobald die tar-Datei heruntergeladen wurde, packen Sie sie in einem Verzeichnis aus und kompilieren sie mit Hilfe der mitgelieferten Konfigurationsdatei.

vlager# tar xzvf samba-current.tgz
vlager# cd samba-3.0.0
vlager# cd source
vlager# ./configure
...
...
vlager# make
...
vlager# make install

Wenn die Software kompiliert und installiert wurde, müssen Sie entscheiden, wie Sie sie beim Start ausführen wollen. Samba kann als inetd-Dienst oder als Dämon ausgeführt werden. Jede Methode ist akzeptabel, allerdings macht das Ausführen von Samba vom inetd möglicherweise eine Aktualisierung der Datei /etc/services erforderlich. Sie müssen sicherstellen, dass die folgenden Zeilen eingefügt werden, die das Samba-Protokoll definieren:

netbios-ns 137/tcp # NETBIOS Name Service
netbios-ns 137/udp
netbios-dgm 138/tcp # NETBIOS Datagram Service
netbios-dgm 138/udp
netbios-ssn 139/tcp # NETBIOS session service
netbios-ssn 139/udp
microsoft-ds 445/tcp Microsoft-DS
microsoft-ds 445/udp Microsoft-DS

Nachdem Sie das hinzugefügt oder bestätigt haben, müssen Sie Samba zu Ihrer inetd.conf-Datei oder zu Ihrer xinetd-Konfiguration hinzufügen. Sie sollten außerdem überprüfen, ob Ihre Firewall so konfiguriert ist, dass sie die notwendigen Ports zulässt.

Falls Sie dagegen planen, Samba als Dämon-Prozess auszuführen, müssen Sie es in Ihre rc-Startskripten einfügen. Das funktioniert für jede Linux-Distribution anders. Wenn Sie daher unsicher sind, wie Sie dabei vorzugehen haben, schauen Sie in die Dokumentation Ihrer Distribution.

Samba konfigurieren

Sobald Sie Samba kompiliert oder installiert haben, steht Ihnen die unter Umständen langwierige Aufgabe der Konfiguration bevor. Die außerordentliche Flexibilität, die Samba bietet, bedeutet, dass es eine Vielzahl von Konfigurationsoptionen gibt. Für den Betrieb als Fileserver ist die Konfiguration glücklicherweise relativ einfach. In diesem Abschnitt behandeln wir einige der grundlegenden Optionen und besprechen, wie Sie freigege- bene Dateiverzeichnisse anlegen können. Zusätzliche Informationen finden Sie in Samba (O'Reilly).

Grundlegende Konfigurationsoptionen

Die einfachste Möglichkeit, mit der Konfiguration von Samba zu beginnen, besteht darin, mit einer minimalen Konfiguration anzufangen und diese dann zu erweitern. Deshalb legen wir zunächst eine Arbeitsgruppe an, benennen unseren Server und fügen eine einfache Dateifreigabe hinzu.

{global}

workgroup = Brewery
netbios name = vlager

[share]

path = /home/files
comment = Einige Rezepte für den Selbstbrauer

Sie können Ihre Samba-Konfigurationen mit testparm testen. Dieses Werkzeug analysiert Ihre Konfigurationsdateien und zeigt Tippfehler oder fehlerhafte Optionen an, die Sie eingegeben haben. Momentan ist es noch nicht sehr wahrscheinlich, dass Sie irgendwelche Fehler haben, dennoch ist es gut zu wissen, wie Sie dieses Werkzeug benutzen müssen.

Wenn alles funktioniert, können Sie Ihren Samba-Server starten oder neu starten und versuchen, Ihre neue Dateifreigabe zu betrachten. Das Programm smbclient, das Teil des Samba-Pakets ist, kann dazu verwendet werden, um Dateifreigaben zu betrachten. In diesem Beispiel schauen wir uns die Dateifreigaben an, die wir gerade auf vlager (10.10.0.5) erzeugt haben.

client# smbclient -L 10.10.0.5
Password:

Sharename Type Comment
--------- ---- -------
share Disk Einige Rezepte für den Selbstbrauer
client#

Nachdem dieser Schritt erfolgreich abgeschlossen wurde, können wir uns nun den etwas anspruchsvolleren Konfigurationsoptionen zuwenden, die Samba viel nützlicher machen.

Samba-Benutzer-Accounts konfigurieren

Die oben gezeigte Konfiguration ist großartig, falls Sie nur daran interessiert sind, eine offene Dateifreigabe zu haben. Sie haben sich aber vermutlich schon gefragt, wie es mit der Zugangskontrolle aussieht. In der obigen Beispielkonfiguration kann jeder eine Verbindung zu der Dateifreigabe aufbauen. Das ist in einem Netzwerk im Allgemeinen nicht wünschenswert. Aus diesem Grund besitzt Samba Funktionen für die Benutzerautorisierung.

Ausgehend von der vorherigen Konfigurationsdatei, kann eine Authentifizierung mit den folgenden Zeilen aktiviert werden:

security = user
encrypt passwords = yes
smb passwd file = /etc/samba/private/smbpasswd
username map = /etc/samba/smbusers

Die erste Zeile aktiviert die Benutzersicherheit. Das bedeutet, dass Sie die users-Datei auf dem Samba-Server verwalten müssen. Die zweite Zeile legt fest, dass die Samba-Kennwortdatei verschlüsselt wird. Die dritte und vierte Zeile geben die Pfade für die Kennwort- und Benutzerdateien an. Es ist nicht erforderlich, eine eigene users-Datei zu haben, mit Linux ist es aber möglich.

Wenn das alles konfiguriert wurde, müssen Sie nun Benutzer auf Ihrem System anlegen. Die Samba-Suite stellt für die Verwaltung der Benutzer-Accounts die smbpasswd-Datei bereit. Diese müssen Sie nicht unbedingt nutzen, da Samba in Ihrer /etc/passwd-Datei auf die Benutzer verweisen kann. Falls allerdings Benutzer aus Microsoft-Umgebungen auf die Dateien Ihres neuen Samba-Servers zugreifen, müssen Sie diese Datei haben.

Das Anlegen von Benutzern ist ziemlich einfach und wird mit smbpasswd erledigt.

vlager# smbpasswd -a larry
New SMB password:
Retype new SMB password:
vlager#

Wenn der Benutzer angelegt wurde, kann er entweder mit einer Windows-Maschine oder mit einer Linux-Maschine mit Hilfe von smbmount getestet werden. Nach der Eingabe von \\<server.ip> in die Adressleiste des Explorers wird dem Windows-Benutzer die Dialogbox angezeigt, die Sie in Abbildung 16-1 sehen können.
Abbildung 16-1
Login-Fenster für ein Windows-Netzwerk

Für Linux und andere Unixe wird smbmount folgendermaßen aufgerufen:

vlager# mount -t smbfs -o username=larry //server.ip /mnt/samba

Falls alles in Ordnung ist, können Sie nun unter /mnt/samba auf das freigegebene Verzeichnis zugreifen.

Weitere Samba-Optionen

Bisher haben wir die minimale Konfiguration eines Samba-Servers besprochen. Diese eignet sich hervorragend für alle, die schnell etwas ins Netzwerk stellen wollen. Um aus Samba ein bisschen mehr herauszuholen, müssen wir uns einige weitere Optionen ansehen.

Zugriffssteuerung

Der Samba-Server bietet etwas zusätzliche Sicherheit, die sich in großen Netzwerken als nützlich erweisen kann. Es steht eine IP-basierte Zugriffssteuerung zur Verfügung; die entsprechenden Befehle kommen Ihnen wahrscheinlich bekannt vor:

hosts allow = 10.10.
hosts.deny = any

Dies erlaubt lediglich Verbindungen aus dem Netzwerk 10.10. Die IP-Zugriffssteuerung von Samba folgt der gleichen Logik wie die von tcpwrapper. Sie können IP-Adressen oder IP-Adressbereiche entweder ausdrücklich erlauben oder verbieten. Diese Option ist wirklich bequem, weil sie auf globaler oder auf Freigabeebene benutzt werden kann. Das bedeutet, Sie können eine Liste von IP-Adressen haben, die auf allen Dateifreigaben Ihres Servers erlaubt oder verboten sind. Sie können das Ganze aber auch herunterschrauben, so dass nur bestimmte IP-Adressen Zugriff auf bestimmte freigegebene Verzeichnisse haben. Diese Art des fein abgestimmten Zugriffs wird nicht einmal von Windows selbst angeboten!

Der Samba-Server ist auch flexibel in Bezug darauf, an welche Schnittstelle er gebunden wird. Standardmäßig bindet er sich an alle verfügbaren Schnittstellen, einschließlich der Loopback-Schnittstelle. Um jeden unerwünschten Zugriff zu verhindern, beispielsweise wenn Samba an die externe Schnittstelle einer Dual-Homed-Maschine gebunden wird, kann die zu bindende Schnittstelle festgelegt werden.

bind interfaces only = True
interfaces = eth1 10.10.0.4

Das stellt sicher, dass Samba nur an der festgelegten Schnittstelle der angegebenen IP-Adresse lauscht. Falls Sie sich Sorgen um die Sicherheit machen, ist es am besten, den Zugriff auf der Applikationsebene zu beschränken, anstatt sich auf den Schutz durch eine Firewall zu verlassen.

Eine andere Art von Zugriffssteuerung, die von Samba angeboten wird, ist die Fähigkeit, ein freigegebenes Verzeichnis als »browsable« (navigierbar) zu kennzeichnen. Ist es browsable, dann ist es sofort sichtbar und die Benutzer können seinen Inhalt durchsuchen. Der Befehl zum Bearbeiten dieser Funktion lautet:

browsable = yes|no

Falls Sie anderen den Zugriff auf bestimmte Dateien erlauben wollen, etwa indem Sie ihnen eine URL zusenden, die auf eine bestimmte Datei verweist, dann muss diese Option auf no gesetzt sein. Dabei sollen diese Personen aber nicht die Möglichkeit haben, alle Dateien im Verzeichnis zu sehen. Ein URI dieser Art sollte Ihnen bekannt vorkommen. Beispielsweise würde \\vlager.vbrew.com\recipe\secret.txt für Windows-Benutzer funktionieren, während Unix-Benutzer smb://vlager.vbrew.com/recipe/secret.txt verwenden. In jedem Fall wäre dem Benutzer ausschließlich der Zugriff auf die Datei secret.txt gestaltet. Meist ist diese Option auf yes gesetzt, da der Samba-Server zweckmäßiger ist, wenn die Benutzer durch das Dateisystem navigieren können.

In diesen Zeilen können freigegebene Verzeichnisse dahin gehend gekennzeichnet werden, ob sie öffentlich verfügbar sind. Wenn ein Ordner als nicht öffentlich markiert ist, kann ein Benutzer selbst mit einem konkreten URI nicht auf eine Datei zugreifen. Sie sollten jedoch wissen, dass jeder Benutzer mit einem Samba-Account in der Lage ist, Ordner anzuschauen, die als öffentlich gekennzeichnet sind.

public = yes|no

Nachdem einem Benutzer das Recht gewährt wurde, Verzeichnisse zu betrachten, kann der Samba-Administrator auch festlegen, ob die freigegebenen Verzeichnisse geschrieben werden können. Das geschieht mit Hilfe des Befehls writable:

writable = yes|no

Wenn diese Option auf no gesetzt ist, kann nichts in das Verzeichnis geschrieben werden.

Sollten Sie den Wunsch nach einem relativ offenen Samba-Server verspüren, etwa um einen offenen, navigierbaren Dokumentationsserver zu haben, dann könnten Sie einen Samba-Gastzugang aktivieren. Dabei hilft Ihnen die Anweisung guest:

guest ok = yes|no

Eine der nützlichsten Funktionen von Samba ist schließlich, dass man den Zugriff auf freigegebene Verzeichnisse über Benutzerzugriffslisten steuern kann. Am einfachsten erreichen Sie das mit der Option valid users.

valid users = sharon paul charlie pat

Sie können das noch vereinfachen, indem Sie eine bereits definierte Gruppe aus Ihrer /etc/group-Datei verwenden:

valid users = @brewers

Das at-Zeichen (@) teilt Samba mit, dass es sich bei dem Wert brewers um einen Gruppennamen handelt. Nachdem Sie nun festgelegt haben, bis zu welchem Punkt Sie einen kontrollierten Zugang zulassen möchten, wollen Sie jetzt vermutlich sicherstellen, dass Ihre Konfiguration auch funktioniert. Am besten, Sie finden es mit Hilfe von Sambas ausgezeichneten Protokollierungsfunktionen heraus.

Protokollierung mit Samba

Die Benutzung der Protokollierungsfunktionen von Samba ist recht einfach. Es gibt eine Reihe von zusätzlichen Modifikatoren, die hinzugefügt werden können, um die Protokollierungsfähigkeiten zu erweitern. Die einfachste Protokollierung kann mit dem folgenden Befehl erreicht werden:

log file = /var/log/samba.log

Damit wird eine einfache Protokollierung aller Samba-Transaktionen in die angegebene Datei ausgelöst. Manchmal jedoch, wenn viele Maschinen auf den Samba-Server zugreifen, können diese Protokolldateien ein wenig unhandlich werden. Um das Durchsuchen des Protokolls zu vereinfachen, bietet Samba die Möglichkeit, anhand der sich verbindenden Hosts zu protokollieren. Wenn Sie diese Funktionalität aktivieren wollen, müssen Sie lediglich folgenden Zusatz anbringen:

log file = /var/log/samba.log.%m

Wie bei den meisten Protokollierungsfunktionen unter Linux hat der Administrator die Möglichkeit zu konfigurieren, wieviel protokolliert werden soll. In Samba gibt es für diesen Loglevel eine Skala von 0 bis 10, beginnend bei einer geringen Protokollierung bis hin zu einer sehr intensiven Protokollierung. Für die meisten Zwecke empfiehlt die Samba-Dokumentation den Loglevel 2, der ausreichende Informationen für die Fehlersuche bietet, ohne es dabei zu übertreiben. Die Level 3 und höher sind für Samba-Entwickler gedacht und nicht für den normalen Einsatz vorgesehen. Um den Loglevel in Ihrer Samba-Konfigurationsdatei festzulegen, fügen Sie diese Zeile hinzu:

log level = 2

Falls Sie einen stark ausgelasteten Server haben, ist es sehr wahrscheinlich, dass Ihre Protokolldateien schnell anwachsen. Aus diesem Grund bietet Samba eine Anweisung, um die maximale Größe der Protokolldatei festzulegen.

max log size = 75

Dieses Beispiel setzt die maximale Größe der Protokolldatei auf 75 KB. Wenn die Protokolldatei diese Größe erreicht, wird sie automatisch umbenannt, indem die Erweiterung .old an die Datei angehängt wird. Gleichzeitig wird eine neue Datei angelegt. Erreicht die neue Protokolldatei eine Größe von 75 KB, wird die vorherige .old-Datei überschrieben. Besteht in Ihrer Umgebung die Notwendigkeit, die Protokolldateien aufzuheben, dann sorgen Sie dafür, dass Ihre Samba-Protokolldateien mit Hilfe eines Skripts automatisch archiviert werden.

Protokollierung mit syslog

Zusätzlich zu seinen eigenen Protokollierungseinrichtungen benutzt Samba die Systemprotokollierung syslog. Dazu muss es mit der Option --with-syslog kompiliert werden. Wenn Administratoren Werkzeuge zur automatischen Protokollüberwachung wie etwa swatch einsetzen, kann sich diese Möglichkeit als sinnvoller erweisen. Damit Samba syslog verwendet, fügen Sie einfach die folgende Zeile in Ihre Samba-Konfigurationsdatei ein:

syslog = 2

Das sendet alle Protokollierungsinformationen aus dem Samba-Loglevel 2 an die syslog-Datei. Falls Ihnen das gefällt und Sie ausschließlich syslog benutzen wollen, geben Sie Folgendes in Ihrer smb.conf-Datei an:

syslog only = yes

Drucken mit Samba

Samba ist ein voll funktionsfähiger Windows-Printserver, der es Benutzern ermöglicht, eine Verbindung aufzubauen und zu drucken und sogar die relevanten Druckertreiber herunterzuladen. Laut dem Samba-Team war das wegen der Komplexität des Warteschlangensystems für Druck-Jobs unter Windows eines der größten Probleme beim Zusammenspiel der verschiedenen Systeme, mit denen es sich konfrontiert sah. Es gibt eine Reihe von Methoden, um Samba für das Drucken zu konfigurieren. Die beiden gebräuchlichsten sind das traditionelle BSD-Drucksystem und das neuere CUPS.

Das BSD-Drucksystem

Die ältere, traditionelle Druckmethode ist das BSD-Drucksystem, das auf dem RFC 1179-Framework beruht. Diese Methode verwendet Befehle wie lpr, mit denen die meisten Unix-Administratoren vertraut sind. Samba funktioniert mit dieser Umgebung gut und lässt sich leicht konfigurieren. Die grundlegende Konfiguration zum Aktivieren des BSD-Druckbetriebs sieht so aus:

[global]
printing = bsd
load printers = yes

[printers]
path = /var/spool/samba
printable = yes
public = yes
writable = no

Falls Sie an dieser Stelle glauben, dass das wirklich einfach zu sein scheint, dann haben Sie Recht damit! Es ist dank der Tatsache einfach, dass Samba anhand seiner vorgegebenen Konfiguration eine ganze Reihe von Annahmen trifft. Wenn Sie sehen wollen, wie die Konfiguration tatsächlich aussieht, können Sie das Programm testparm verwenden:

ticktock samba # testparm -s -v |egrep "(lp|print|port|driver|spool|\[)"
Processing section "[printers]"
[global]
smb ports = 445 139
nt pipe support = Yes
nt status support = Yes
lpq cache time = 10
load printers = Yes
printcap name = /etc/printcap
disable spoolss = No
enumports command =
addprinter command =
deleteprinter command =
show add printer wizard = Yes
os2 driver map =
wins support = No
printer admin =
nt acl support = Yes
min print space = 0
max reported print jobs = 0
max print jobs = 1000
printable = No
printing = bsd
print command = lpr -r -P'%p' %s
lpq command = lpq -P'%p'
lprm command = lprm -P'%p' %j
lppause command =
lpresume command =
printer name =
use client driver = No
[printers]
path = /var/spool/samba
printable = Yes

Hier können Sie nun einige der voreingestellten Optionen ändern, die für Ihr System möglicherweise nicht zutreffen. Beispielsweise sollten Sie überprüfen, ob sich die lp-Befehle in dem von Ihnen vorgegebenen Pfad befinden. Sie können außerdem weitere Dinge zu den lp-Befehlszeilen hinzufügen.

Weiterhin sehen Sie hier eine beispielhafte /etc/printcap-Datei. Da alle Systeme unterschiedlich sind, funktioniert diese Konfigurationsdatei für Sie vielleicht nicht richtig, sie gibt Ihnen aber eine Vorstellung vom Konfigurationsformat. Ausführlichere Informationen finden Sie in den printcap-Manpages.

# /etc/printcap: printer capability database.

/lp|Generic dot-matrix printer entry
:lp=/dev/lp1
:sd=/var/spool/lpd/lp
:af=/var/log/lp-acct
:lf=/var/log/lp-errs
:pl#66
:pw#80
:pc#150
:mx#0
:sh

Drucken mit CUPS

In den meisten Linux-Distributionen hat das Common Unix Printing System (CUPS) das BSD-Drucksystem bereits ersetzt. Es gibt mehrere Gründe, weshalb CUPS den Status quo ablöst. Wir wollen auf diese Gründe hier aber nicht eingehen. Allerdings wäre keine Besprechung des Druckens in der Samba-Umgebung vollständig ohne einen Abschnitt über das CUPS-Drucksystem.

Um das Drucken mit CUPS vorzustellen, wollen wir uns eine einfache smb.conf-Datei ansehen, die für CUPS konfiguriert wurde:

[global]
load printers = yes
printing = cups
printcap name = cups

[printers]
comment = Brauerei-Drucker
path = /var/spool/samba
browsable = no
public = yes
guest ok = yes
writable = no
printable = yes
printer admin = root, @wheel

Mehr ist für eine einfache Konfiguration nicht erforderlich, damit Samba mit CUPS funktioniert. Voraussetzung ist lediglich, dass CUPS selbst auf Ihrem System einsatzbereit ist.

Der globale Abschnitt legt fest, dass die Datei /etc/printcap mit der Option load printers spezifiziert wurde, wodurch automatisch die printcap durchsucht wird und die Drucker aktiviert werden, die in ihr konfiguriert sind. Diese Funktion kann für manche Systemadministratoren sowohl hilfreich als auch ein bisschen beängstigend sein. Die Konfiguration wird einerseits zwar vereinfacht, andererseits verringern sich in gewisser Weise die Möglichkeiten des Administrators bei der Festlegung, was für die Benutzer sichtbar ist. Wenn diese Option ausgeschaltet ist, müssen Sie alle Druckerfreigaben einzeln in den Samba-Konfigurationsdateien erzeugen.

Die Option printing, die zuvor auf bsd gesetzt war, wurde zu cups geändert. Wir haben die printcap außerdem cups genannt, um Verwechslungen zu vermeiden.

Der nächste Abschnitt, printers, ist dem vorherigen Beispiel ebenfalls sehr ähnlich; allerdings haben wir nun eine Druckeradministrationsgruppe konfiguriert. Das ist eine grundlegende Option, die der angegebenen Gruppe einen administrativen Zugriff auf alle CUPS-Aspekte des Druckens gewährt.

Auch wenn es nicht notwendig ist, kann einer CUPS-Drucker-Konfiguration eine Vielzahl zusätzlicher Optionen hinzugefügt werden, um sie an Ihre Anforderungen anzupassen. Weitere Details und komplexere Konfigurationen mit CUPS und Samba finden Sie auf der Samba-Website unter http://www.samba.org sowie auf der CUPS-Website unter http://www.cups.org.

SWAT

Das Samba Web Administration Tool (SWAT) soll die Administration und Konfiguration von Samba vereinfachen. Für alle, die gern eine grafische Benutzeroberfläche verwenden, ist dies eine der besten Optionen, da dieses Werkzeug vom Samba-Team geschrieben wurde und alle möglichen Konfigurationsoptionen enthält. Andere grafische Benutzeroberflächen funktionieren zwar auch, sind aber möglicherweise nicht auf dem neuesten Stand.

SWAT aktivieren

SWAT ist prinzipiell sowohl ein Webserver als auch ein Administrationswerkzeug. Um es zum Laufen zu bringen, müssen Sie es in Ihre inetd.conf- oder xinetd-Konfigurationen einfügen. Mit xinetd sollte Ihre Konfiguration für SWAT etwa so aussehen:

service swat
{
port = 901
socket_type = stream
wait = no
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
}

Sie müssen den SWAT-Port außerdem noch in Ihre /etc/services-Datei einfügen, falls er dort noch nicht eingetragen ist.

swat 901/tcp # Samba-Konfigurationsprogramm

Nachdem Sie den xinetd-Prozess neu gestartet haben, können Sie den Dienst benutzen. Dazu verweisen Sie mit Ihrem Webbrowser auf die IP-Adresse des Samba-Servers, und zwar an Port 901.

SWAT und SSL

Sie haben möglicherweise bemerkt, dass SWAT kein SSL benutzt, was in Ordnung ist, wenn Sie es ausschließlich von localhost aus verwenden. Wollen Sie SWAT jedoch über das Netzwerk einsetzen, dann sollten Sie eine Verschlüsselung in Betracht ziehen. SWAT unterstützt zwar keine Verschlüsselung, mit Hilfe des beliebten SSL-Tunnel-Werkzeugs stunnel ist eine Verschlüsselung dennoch möglich.

Die einfachste Methode, um den Tunnel zu konfigurieren, wurde von Markus Krieger entwickelt. Um diese Methode benutzen zu können, müssen sowohl OpenSSL als auch stunnel installiert sein. Die Dokumentation und den Quellcode von stunnel finden Sie unter http://www.stunnel.org. Sobald beide installiert und betriebsbereit sind, müssen Sie einen privaten Schlüssel generieren. Dabei können Sie folgendermaßen vorgehen:

vlager# /usr/bin/openssl req -new -x509 -days 730 -nodes -config /path/to/stunnel/stunnel.cnf -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem

Sobald Sie Ihre Schlüssel erzeugt haben, müssen Sie das ursprüngliche SWAT aus Ihrer inetd.conf-Datei entfernen und notfalls ein SIGHUP-Signal an den Dämon senden. Sie rufen den Standard-SWAT-Dämon ab jetzt nicht mehr über inetd auf, achten Sie deshalb darauf, dass er wirklich entfernt wurde.

stunnel kann nun gestartet werden. Sie können es von der Kommandozeile aus aufrufen oder ein kleines Skript schreiben, das es automatisch startet. Um stunnel zu starten, geben Sie als root Folgendes ein:

vlager# stunnel -p /etc/stunnel/stunnel.pem -d 901 -l /path/to/samba/bin/swat swat

Fehlerbehebung

Falls Sie Ihren Samba-Server zusammengestellt haben und alles gleich beim ersten Mal fehlerfrei funktioniert, rechnen Sie sich zu einer glücklichen Minderheit. Für alle anderen halten wir hier ein paar Hinweise bereit, wie einige häufig auftretende Probleme entdeckt und behoben werden können.

Stress mit der Konfigurationsdatei

Wenn Sie bei Samba Fehler beheben wollen, müssen Sie daran denken, dass die vorgegebenen Optionen immer Vorrang genießen. Das bedeutet, wenn eine vorgegebene Konfigurationsoption gesetzt ist, dann ändert sich durch ein einfaches Auskommentieren ihr Wert nicht. Beispielsweise könnten Sie versuchen, die Option load printers zu deaktivieren, indem Sie sie auskommentieren.

[printers]
path = /var/spool/samba
#load printers = yes

Mit testparm werden Sie jedoch feststellen, dass die Option weiterhin auf yes gesetzt ist.

ticktock samba # testparm -s -v |grep "load printers"
load printers = Yes

Bei Samba müssen Sie die Optionen, die Sie haben wollen, immer ausdrücklich definieren; ein Auskommentieren reicht nicht aus. Falls etwas nicht funktioniert, überprüfen Sie zuerst diese Tatsache.

So banal es klingen mag, schauen Sie außerdem immer nach, ob die smbd- und nmbd-Prozesse existieren. Es ist nicht unüblich, dass irgendetwas dafür sorgt, dass diese Prozesse stillschweigend ausfallen, und Sie gar nicht merken, dass sie nicht mehr laufen.

Zugangsprobleme

Eines der häufiger auftretenden Login-Probleme mit Samba betrifft root, es kann aber jeden Benutzer im System treffen. Jeder Samba-Benutzer sollte daran denken, dass ein eigenes Samba-Kennwort erzeugt werden muss, da Samba nicht die Linux-datei /etc/shadow benutzt. Falls Sie beispielsweise versuchen, als root auf eine Samba-Dateifreigabe zuzugreifen, wird das Systemkennwort für root nicht funktionieren, es sei denn, Sie haben bereits ein Samba-Kennwort für den root-Zugang erzeugt und dabei dasselbe root-Kennwort benutzt (was wirklich nicht empfohlen wird). Um dieses Problem zu beheben, muss ein separater Zugang angelegt werden:

vlager# smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.

TOC PREV NEXT INDEX


O'Reilly Home | O'Reilly-Partnerbuchhandlungen | Bestellinformationen
Kontakt | Über O'Reilly | Datenschutz

© 2005, O'Reilly Verlag GmbH & Co. KG