Dieses Dokument ist urheberrechtlich geschützt.
Das Copyright für die englische Samba-HOWTO, auf der dieses Dokument
basiert, liegt bei David Wood. Das Copyright für die deutsche Übersetzung
liegt bei Klaus-Dieter Schumacher.
Das Dokument darf gemäß der GNU General
Public License verbreitet werden. Insbesondere bedeutet dieses, daß
der Text sowohl über elektronische wie auch physikalische Medien ohne
die Zahlung von Lizenzgebühren verbreitet werden darf, solange dieser
Copyright Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist
erlaubt und ausdrücklich erwünscht. Bei einer Publikation in
Papierform ist das Deutsche Linux HOWTO Projekt hierüber zu zu informieren.
- Was ist Samba, und was fuer Möglichkeiten ermoeglicht Samba- Steuerung des Smbclients ueber die smb.conf
Das SMB-Protokoll (Server Message Block-Protokoll)
wird von der Firma Microsoft für Windows 3.11, NT und 95 genutzt,
um den gemeinsamen Zugriff auf Laufwerke und Drucker zu gestatten.
Mit der Sammlung der Samba-Tools von Andrew Tridgell
besteht nun die Möglichkeit, daß sich UNIX-Rechner und damit
auch Linux-Maschinen Platten und Drucker mit Windows-Rechnern teilen.
Insgesamt bietet Samba vier verschiedene Optionen an:
1.Linux-Laufwerke werden auch
von Windows-Rechnern genutzt.
2.Windows-Laufwerke werden
auch von Linux-Rechnern genutzt.
3.Ein an einer Linux-Maschine
angeschlossener Drucker wird auch von Windows-Rechnern genutzt.
4.Ein an einem Windows-Rechner
angeschlossener Drucker wird auch von Linux-Rechnern genutzt.
Steuerung des Smbclients ueber die smb.conf:
Diese Seite soll in erster Linie Informationen über die Benutzung von Amanda mit Samba liefern. Deshalb werden die allgemeinen Informationen über Samba relativ gering ausfallen. Die Installation und die noetigen Daemonen werden also nicht beschrieben. An diesem Punkt möchte ich jedoch beschreiben wie die Samba Konfiguration gestaltet werden muß.
Die Samba-Konfiguration für Linux oder andere
UNIX-Rechner wird ausschließlich durch die Datei /etc/smb.conf gesteuert.
Diese Datei bestimmt,
welche Resourcen das System nach außen
anbietet und welche Einschränkungen hierbei festgelegt sind.
1.)
Netzlaufwerke freigeben
Allgemein zugängliche Verzeichnisse2.) Benutzerverwaltung, Paßwörter und das % - Zeichen
Globale Parameter
Private Verzeichnisse
Einschränkung anhand der Client - IP
Einschränkung auf bestimmte Unix - User
Das % Zeichen
Unix Dateiattribute
Allgemein zugängliche Verzeichnisse
Die Freigabe von Verzeichnissen findet wie gesagt
in der Konfigurationsdatei /etc/smb.conf statt. Um z.B. das Verzeichnis
/test freizugeben, muß die Datei
folgendes enthalten:
Die Angabe in eckigen Klammern ist der Freigabename der Ressource . Der lokale Laufwerkspfad zu der Ressource wird durch den Paramater path bestimmt. Mit puplic wird festgelegt, ob ein Benutzer ohne Name/ Paßwortabfrage auf die Resource zugreifen darf. writeable legt fest, ob die Ressource schreibar ( yes ) oder schreibgeschützt ( no ) exportiert werden soll.[test]path = /testpuplic = yeswritable = yes
Mehrere freigegebene Verzeichnisse werden in der
Konfigurationsdatei hintereinander aufgeführt:
ACHTUNG:[test]path = /testpuplic = yeswritable = yes[cdrom]path = /cdrompuplic = yeswritable = no
killall smbdkillall nmbd
mit /sbin/init.d/smb
start starten sie Samba wieder neu.
Wenn bestimmte Parameter für alle Ressourcen
gelten sollen, werden sie am Anfang der Komfigurationsdatei unter dem speziellen
Service-Namen global angegeben:
Der server string legt die Sever - Beschreibung fest, wie sie z.<<b. in der Browse-Liste von WfW angezeigt wird. %v ist ein Makro (erkennbar am "%"-Zeichen ) und wird durch die aktuelle Versionsnummer von Samba ersetzt. Der Server-String darf keine Anführungszeichen enthalten, sonst erscheint unter gewissen Umständen der gesamte Server nicht in der Browse-Liste. strict locking schützt die Dateien vor gleichzeitigem Zugriff von mehreren Nutzern, ähnlich wie das DOS-Programm share.exe bei WfW. Das Flag revalidate weisst Samba an, bei jeder Verbindung nach dem Paßwort zu fragen. Ist revalidate auf no gesetzt, so frägt Samba nur beim ersten Connect eines Clients nach dem Paßwort. Dies ist eine Sicherheitslücke, wenn ein Windows-Rechner ohne zwischenzeitlichen Reset von mehreren Personen genutzt wird.[global]server string = Samba %vstrict locking = yesrevalidate = yes[test]path = /testpuplic = yeswritable = yes[cdrom]path = /cdrompuplic = yeswritable = no
Gibt es auf dem Linux-Server mehrere Benutzer
mit eigenem Home-Verzeichnis, so braucht nicht jedes Verzeichnis einzeln
in der smb.conf Datei aufgeführt sein. Die Freigabe aller Home-Verzeichnisse
für den jewiligen User wird einfach in der homes-Sektion gemacht:
Damit kan nun jeder Benutzer , der ein Account auf der Linux-Maschine hat, sich via SMB mit seinem Home-Verzeichnis verbinden. Gibt es zum Beispiel[homes]puplic = nowriteable = yes
und seinem Unix-Paßwort mit seinem Home-Verzeichnis verbunden.\\test\tom
2.) Benutzerverwaltung, Paßwörter
und das % - Zeichen :
Bisher zeigten wir nur zwei Möglichketen
der Freigabe von Laufwerken: Freigabe pauschal an alle Benutzer (Gastzuganag),
oder Zugriff auf eigene Home-Verzeichnisse. Im zweiten Fall ergibt sich
der (Unix) Name des Bunutzers aus dem Freigabenamen (er ist mit diesem
identisch), und das abgefragte Paßwort muß das Unix Paßwort
des Benutzers sein. In diesem Unterkapitel möchten wir die Benutzung
eines Verzeichnisses durch mehrere Benutzer näher erläutern.
Einschränkung anhand der Client - IP
Mit dem Eintrag hosts allow kann der Verzeichnis
Zugriff auf eine IP oder einen IP - Bereich beschränkt werden. Mehrere
IP's können durch Komma getrennt angegeben werden, IP-Bereiche werden
durch ihre Netmask beschrieben oder durch Weglassen der hinteren Stellen
der IP. Ausnahmen werden durch das Schlüsselwort EXCEPT gekennzeichnet.
hosts allow = 150.203 EXCEPT 150.203.6.66hosts allow = 150.203.15.0/255.255.255.0hosts allow = lapland.planet.org, arvidsjaur.babylon.de
Einschränkung auf bestimmte Unix - User
Durch den Eintrag valid users in der smb.conf
kann der Zugriff auch auf einzelne Benutzer beschränkt werden. Voraussetzung
ist, daß die Benutzer als ganz normale Unix-Benutzer beim Linux -Server
eingetragen sind. Wichtig ist, daß dann puplic auf no
gesetzt werden muß. Ein Beispiel ist:
Wenn der Zugriff auf alle Mitglieder einer Unix-Gruppe beschränkt werden sol, so kann bei valid users auch der Gruppenname mit vorangestelltem Klammeraffen "@" angegeben werden:[test]path = /testpuplic = nowritable = yesvalid users = tom, walter, root, dump
valid users = @operator
An dieser Stelle ergibt sich ein Problem: Wie
übermittelt ein Windows Rechner dem Linux Sever den Unix Benutzernamen
? Im Dialogfeld ist kein Feld daür vorgesehen. Zur Lösung diese
Problems haben sich die Samba-Programmierer folgendes einfallen lassen:
Wenn der Freigabename ein Prozentzeichen enthält, wird als eigentlicher
Freigabename nur der Teil vor dem %-Zeichen betrachtet; der hintere Teil
wird als Benutzername betrachtet, zu dem dann das abgefragte Paßwort
passen muß. Möchte im obigen Beispiel der Benutzer "Tom" sich
mit dem freigegebenen Verzeichnis "Test" verbinden, so muß er unter
Windows im Verbinden Dialog eingeben:
\\Meinserver\Test%Tom
und als Paßwort sein Unix-Paßwort
eingeben. Da dies eine SAMBA-Speziallösung ist und sich außerhalb
der SMB_Norm befindet, bekommt Windows davon überhaupt nichts mit.
Für Windows sieht es so aus, als hätte sich der unbekannte Benutzer
mit dem Verzeichniss >>TEST%TOM<< auf dem Server >>MEINSERVER<<
verbunden.
Noch ein Hinweis: Wenn kein %-Zeichen angegeben
wurde, setzt SAMBA den Benutzernamen mit dem Freigabenamen gleich ( wie
in der Homes-Sektion).
Wenn ein Benutzer Dateien via Samba auf einem freigegebenen Verzeichnis ablegt, werden die Dateien mit seinem Standartdateiattributen versehen. Es kann also zu Konflikten kommen, wenn ein Benutzer eine Datei lesen möchte, die ein anderer Benutzer angelegt hat, obwohl er sich mit dem Laufwerk verbinden konnte. Das kommt daher , daß Samba jedem Benutzer nur die Rechte gewährt, die er in der Unix-Shell auch hätte. Zur Veranschaulichung nehmen wir einmal folgendes Beispiel: Benutzer "Tom" hat sich mit "\\MEINSERVER\TEST%TOM verbunden und auf seinem Laufwerk eine Datei "bericht.doc" abgelegt. Unter Unix sieht das Verzeichnis dann folgendermaßen aus:
Über das Netz (unter DOS ) ist diese Datei jedoch nur sichtbar als:-rw------- 1 tom staff 1434 Aug 11 9:13 bericht.doc
Wenn nun "Walter" kommt und sich mit \\MEINSERVER\TEST%WALTER verbindet , sieht er die Datei im Inhaltsverzeichniss, kann sie aber nicht lesen, da "Walter" keine Unix-Leseberechtigung für die Datei "bericht.doc" hat, denn diese ist -wie die Unix Permissions angeben- nur für den Benutzer "Tom" lesbar. Abhilfe schafft hier der Eintrag von create maks in die smb.conf.BERICHT DOC 1434 11.08.99 BERICHT.DOC
Durch diesen Eintrag wird Samba angewiesen, alle Dateien mit Unix-Permissions weltlesbar und weltschreibbar abzulegen. Diese Lösung hat jedoch den Nachteil, daß jeder Benutzer mit Telnet-Zugang zum Server alle Dateien lesen kann, unabhängig davon, ob er sich via Samba mit dem Laufwerk verbinden darf oder nicht. Abhilfe schafft hier, die Datei nur gruppenschreibbar zu machen. In einem zweiten Abschnitt wird Samba angewiesen bei allen Zugriffen auf Dateien unabhängig vom Benutzer immer die gleiche Gruppe zu verwenden. Dazu dient der Parameter force group:[test]path = /testpuplic = nowritable = yescreate mask 777valid users = tom, walter, root, dump
Jeder der in diesem Beispiel nicht in der Gruppe Test steht, kann außer durch Samba nicht auf die Dateien im freigegebenen Verzeichnis zugeifen.[test]path = /testpuplic = nowritable = yescreate mask 777force group = testvalid users = tom, walter, root, dump
Wie benutze ich den SMBCLIENT:
Der Smbclient läßt sich ähnlich
wie ftp benutzen. Das heißt der SMBCLIENT muß zuerst gestartet
werden. Dabei muß eine Verbindung zu dem gewuenschten Rechner aufgebaut
werden. Die Synopsis siht für den SMBCLIENT wie folgt aus:
smbclient servicename [password] [-s smb.conf] [-B IP addr] [-O socket options][-R name resolve order] [-M NetBIOS name] [-i scope]
[-N] [-n NetBIOS name] [-d debuglevel] [-P] [-p port] [-l log basename] [-h] [-I dest IP] [-E] [-U username] [-L NetBIOS name]
[-t terminal code] [-m max protocol] [-W workgroup] [-T<c|x>IXFqgbNan] [-D directory] [-c command string]
Um eine Verbindung mit dem SMBClient zu Martini
als User root zu bekommen starte ich den SMBCLIENT z.B. wie folgt:
Da die ganze Benutzung wie gesagt ähnlich zu ftp ist, verzichte ich an dieser Stelle auf eine ausführliche Erklärung, und gebe nur die Liste aus,die erscheint wenn Sie den SMBCLIENT ohne jegliche Angabe zu service oder Parametern starten wollen:/home# smbclient //martini/test%rootAdded interface ip=192.168.188.170 bcast=192.168.188.255 nmask=255.255.255.0Password:Domain=[ARBEITSGRUPPE] OS=[Unix] Server=[Samba 2.0.3]smb: \>
/home# smbclientAdded interface ip=192.168.188.170 bcast=192.168.188.255 nmask=255.255.255.0Usage: smbclient service <password> [options]Version 2.0.3-s smb.conf pathname to smb.conf file-B IP addr broadcast IP address to use-O socket_options socket options to use-R name resolve order use these name resolution services only-M host send a winpopup message to the host-i scope use this NetBIOS scope-N don't ask for a password-n netbios name. Use this name as my netbios name-d debuglevel set the debuglevel-P connect to service as a printer-p port connect to the specified port-l log basename. Basename for log/debug files-h Print this help message.-I dest IP use this IP to connect to-E write messages to stderr instead of stdout-U username set the network username-L host get a list of shares available on a host-t terminal code terminal i/o code {sjis|euc|jis7|jis8|junet|hex}-m max protocol set the max protocol level-W workgroup set the workgroup name-T<c|x>IXFqgbNan command line tar-D directory start from directory-c command string execute semicolon separated commands
Durch die Installation von Amanda mit smbclient
( der natuerlich vorhanden sein muß ) ist Amanda nun auch in der
Lage Rechner mit Windows 95, Windows 98 und Windows NT zu sichern. Dabei
sollten aber vorher alle Files die es zu diesem Thema gibt vorher
gründlich durchgelesen werden, da die Installation und Konfiguration
gar nicht so einfach ist. Man muß vorher genau wissen welche Amanda
Version man benutzt, und welche Version des SMBCLIENTS man benutzt, um
wenn nötig die richtigen
Patches
zu installieren.
Amanda - Samba - MultiNET:
Wo ist Amanda mit Samba bei Multinet installiert ?Was muss ich tun um einen Windows Rechner mit Amanda zu sichern ?
Was wird zur Zeit bei MultiNET mit Amanda - Samba gesichert ?
Wo ist Amanda mit Samba bei Multinet installiert
?
Amanda wurde bei MultiNET auf Martini mit Smbclient
( --with-smbclient) installiert, da auf der Martini schon ein Smbclient
(2.0.3) vorhanden war. Master Host fuer Sicherungen ist aber nach wie vor
Tomcat. Das heisst, es ist moeglich Amanda mit Samba Sicherungen von Windows
Maschinen machen zulassen, wobei zwar ein Smbclient noetig ist, dieser
aber nicht zwingend auf dem Master Host installiert sein muss. Es reicht
also vollkommen aus einen Smbclient auf einem Amandaclient zu haben, wichtig
ist nur das dieser Amandaclient mit der Option --with-smbclient installiert
wurde.
Was muss ich tun um einen Windows Rechner
mit Amanda zu sichern ?
1.Passwort und smbclient in
/etc/amandapass eintragen
2.Partitionen in die Disklist
stellen
3.Partition auf Windows
Rechner freigeben
1.Passwort und smbclient in /etc/amandapass
eintragen :
Damit mit Samba das Laufwerk eines Windows-Rechners gesichert werden kann, muss auf dem Rechner mit dem Smbclient in der Datei /etc/amandapass ein Eintrag in folgender Form stehen:
//Windows-Rechner/Partition Passwort
Beispiel fuer MultiNET um die /tmp
Partition von Walter's Toshix zu sichern:
//toshix-wo/tmp Passwort ;-)
2.Partitionen in die Disklist stellen :
Natuerlich muss die zu sichern gewuenschte Partition des Windows-Rechners auch noch in die Disklist aufgenommen werden. Dabei sieht der Eintrag fuer eine Windows Partition in der Disklist etwas anders aus als ueblicherweise:
Samba installed Unix Host //Windows-Rechner/Partition dumtype (must include the tar option)
bei unserem Beispiel mit Walter's Toshix und
Martini als Unix Host mit Smbclient also:
martini //toshix-wo/tmp nocomp-user-gnutar
3. Partition auf Windows Rechner freigeben
:
Die Partition die man mit Amanda-Samba sichern moechte muss auf jeden Fall auch auf dem entsprechenden Windows Rechner freigegeben werden. Dies geschieht folgendermasen:
Im Windows Explorer einen Klick mit der rechten
Maustaste auf die gewuenschte Partition, und Freigabe anwaehlen. Nun erhaelt
man eine Auswahl verschiedener Freigabe Moeglichkeiten, und waehlt eine
dieser Moeglichkeiten.
Was wird zur Zeit bei MultiNET mit Amanda
- Samba gesichert ?
Zur Zeit wird bei MultiNET leider nichts mit Amanda
- Samba gesichert. Genauer heisst dies wir versuchen zwar die tmp-Partition
von Walter seinem Toshix zu sichern, doch leider gelang dies bis dato noch
nicht.
Amanda meldet zwar beim amcheck keinen Fehler,
doch die Sicherung klappt nie. In den kommenden Mails von Amanda steht
dann immer: "missing results for ..". Leider ist es seit dem wir Amanda
mit Smbclient auf der Martini installiert haben nicht mal mehr moeglich
die "echten" Martini Partitionen zu sichern. Woran das alles genau liegt
wissen wir noch nicht, bleiben aber am Ball um dieses Problem zu loesen.
Amanda - Samba Vor - und Nachteile
Zu den Vor und Nachteilen von Amanda und Samba kann ich noch nicht viel
sagen, da es uns wie gesagt noch nicht gelungen ist eine erfolgreiche
Sicherung damit durchzufuehren. Aus diesem Grund kann ich auch noch kein
Urteil ueber die Vor - und Nachteile abgeben. Sobald wir es aber geschafft
haben Sicherungen mit Amanda - Samba zu machen, und wir einige Tests durchgefuehrt
haben werden Sie hier Informationen ueber die Vor und Nachteile finden.