- Konfigurationsdatei smb.conf
- Starten der Dämonen
- Zugriff unter MS-Windows
- Encrypted Password
- Samba als Domain-Controller
- Drucker
- Dämon oder inetd
- Administration per Browser
- Zugriff auf Windowsnetze
Samba basiert auf TCP/IP
Samba arbeitet als TCP/IP-Service. Entsprechend müssen alle SMB-Pakete über das Protokoll TCP/IP transportiert werden. Obwohl in reinen Windowsnetzen oft IPX, das alte Protokoll von Novell, eingesetzt wird, ist das kein so großer Aufwand, da inzwischen fast jeder Windowsrechner auch mit dem Internet verbunden wird und in dem Zusammenhang TCP/IP sowieso installiert wird. IPX kann man meist ohne Probleme deinstallieren, sofern nicht tatsächlich ein älteres Novellnetz eingesetzt wird. Lediglich MS-Windows 3.11 besaß noch nicht von Haus aus TCP/IP. Das kann man allerdings kostenlos von Microsoft erhalten. Quelle:
/etc/services
Da Samba ein TCP/IP-Dienst ist, müssen in der /etc/services Einträge gemacht werden:
netbios-ssn 139/tcp netbios-ns 137/tcp |
Konfigurationsdatei smb.conf
Die zentrale Konfigurationsdatei heißt /etc/smb.conf. Die Datei ist in mehrere Abschnitte eingeteilt und ähnelt einer MS-Windows INI-Datei. Die Abschnitte sind mit Titeln in rechteckigen Klammern eingeleitet. Die einzelnen Einstellungen werden durch Zuweisungen gemacht, die der Struktur Variable=Wert folgen. Der Wert umfasst den Rest der Zeile. Das Semikolon ist das Kommentarzeichen.
globale Einstellungen
Der wichtigste Abschnitt heißt global. Der Abschnitt global beschreibt den Server als solchen.
[global] server string = Gaston, der freundliche NT-Ersatz workgroup = WILLEMER share modes = yes |
Der server string ist nur ein Kommentar, der allerdings allen Clients übermittelt wird. Wer mit seinem Server protzen will, hat hier die Gelegenheit dazu. Wichtig ist die workgroup, die hier originellerweise WILLEMER heißen soll. Die Rechner, die zu einer gemeinsamen Arbeitsgruppe gehören, können sich leicht gegenseitig Ressourcen zur Verfügung stellen. Neben den Workgroups gibt es noch das Konzept der Windowsdomänen. Samba kann auch als ein solcher Domänenserver laufen. Nähere Informationen sind in der SAMBA beiliegenden Dokumentation zu finden.
Zugriff auf die Drucker
Die beiden Variablen printing und printcap name ermöglichen den Zugriff auf die in der /etc/printcap angegebenen Drucker unter MS-Windows. Man kann die Drucker, die mit ghostscript betrieben werden, unter MS-Windows als normale Postskriptdrucker ansprechen. Will man einen speziellen Druckertreiber verwenden, muss man auf den rohen (raw) Drucker verweisen, der in der printcap keinen if-Eintrag besitzt.
Interfaces
Im Abschnitt global kann eingestellt werden, auf welche Netzinterfaces Samba zugreift. Diese Einstellung ist vor allem bei einem Rechner erforderlich, der auch ein Interface zum Internet besitzt. Ansonsten versucht Samba, auch auf diesem Wege Freunde zu finden. Das wäre natürlich ein eklatantes Sicherheitsrisiko. Alternativ kann statt der Netzmaske hinter der IP-Nummer auch die Anzahl der Bits genannt werden, die zum Netzteil der Adresse gehören.
interfaces = 192.168.109.144/24 |
Im weiteren Verlauf der smbd.conf werden die Ressourcen beschrieben, die den anderen Rechnern im Netz zur Verfügung gestellt werden. Jede der Ressourcen wird in rechteckigen Klammern genannt.
[homes] comment = Heimatverzeichnis browseable = no read only = no create mode = 0750 [c-drive] comment = C-Laufwerk browsable = yes public = yes create mode = 0755 path = /windows/C writeable = yes |
Heimatverzeichnis
Die Ressource homes bietet jedem angemeldeten Benutzer sein Heimatverzeichnis an. Meldet sich also der Anwender arnold unter MS-Windows an und verbindet homes mit einem Netzlaufwerk, findet er das Verzeichnis, das laut UNIX passwd Datei sein Heimatverzeichnis ist.Die Ressource c-drive bietet das Verzeichnis /windows/C als Netzlaufwerk an. Dieses ist auf meinem Computer tatsächlich eine Windowspartition. Das ist aber keineswegs Voraussetzung. Es kann jedes beliebige Dateisystem angeboten werden.
browsable
Die Option browsable beschreibt, ob die Ressource angezeigt wird, wenn man sie von einem Windowsrechner aus anzeigen lässt. Im Beispiel kann man also homes nicht sehen, wenn man sich von einem Windowsrechner die Ressourcen des Servers anzeigen lässt. Allerdings kann man den Namen homes bei einer Verknüpfung direkt angeben. Zweck der Übung ist, dass man nicht alle Ressourcen einer breiten Öffentlichkeit darbieten möchte.
Pfad
Alle Ressourcen müssen natürlich einen Pfad haben, unter dem sie im UNIX Verzeichnisbaum zu erreichen sind. Eingetragen wird dieser Pfad unter der Option path. Ausnahmen sind wie gesagt die Heimatverzeichnisse, da sie ihren Pfad anders finden.
create mode
Die Option create mode stellt ein, welche Berechtigung eine per Samba erzeugte Datei bekommt. Über das Windowsnetz sind nicht alle Berechtigungen nachträglich zu korrigieren.
Test der smb.conf durch testparm
Durch Aufruf von testparm wird die smb.conf gestestet und Hinweise auf Fehler gegeben.
Load smb config files from /etc/smb.conf Processing section "[homes]" Processing section "[c-drive]" Processing section "[printers]" Loaded services file OK. Press enter to see a dump of your service definitions |
Nach dem Drücken der Returntaste wird die komplette Konfiguration angezeigt.
Starten der Dämonen
Samba besteht aus zwei Prozessen, smbd und nmbd. Der Server smbd bietet die eigentlichen Dateien- und Druckerdienste an. Der Server nmbd ist für die Namensdienste zuständig. Für die ersten Tests kann man sie einfach direkt nacheinander von der Konsole starten. Durch ps kann dann getestet werden, ob die Prozesse gestartet sind. Ist das nicht der Fall, ist die smbd.conf nicht in Ordnung. Nähere Informationen liefern die Dateien log.smbd und log.nmdb, die sich im Verzeichnis /var/log/samba befinden.
Lokaler Zugriff
Nachdem die Prozesse gestartet sind, wird zum Testen der Konfiguration als nächstes versucht, auf die Umgebung zuzugreifen. Dazu wird auf derselben Maschine ein SMB Client gestartet.
smbclient -L localhost |
Nach einer Passwortabfrage werden Informationen über die lokale Samba-Umgebung ausgegeben.
Domain=[WILLEMER] OS=[Unix] Server=[Samba 2.0.7] Sharename Type Comment --------- ---- ------- c-drive Disk C-Laufwerk cdrom Disk Linux CD-ROM IPC$ IPC IPC Service (Gaston, der freund ascii Printer cljet5-a4-ascii-mono-300 lp2 Printer cljet5-a4-auto-color-300 lp-mono Printer cljet5-a4-auto-mono-300 cljet5-a4-raw Printer cljet5 a4 raw faxprint Printer fax Server Comment --------- ------- Workgroup Master --------- ------- |
Zugriff unter MS-Windows
TCP/IP auf Windows installieren
Zunächst muss sichergestellt sein, dass der Windowsrechner zur gleichen Workgroup gehört. Dann muss TCP/IP als Netzprotokoll installiert sein. Die Funktion der Verbindung prüft man zunächst mit einem ping auf den Namen des Sambaservers. Wenn dies alles funktioniert, kann man in der Netzwerkumgebung nachsehen, ob die Workgroup dort erscheint und dann auch der Sambaserver erscheint. Man kann dem etwas nachhelfen, indem mit der Funktion >>Computer suchen<< nach dem Server sucht.
Windows Netzwerkumgebung
Die Netzwerkumgebung ist leider nicht besonders verlässlich in der Anzeige der verfügbaren Rechner. Windowsrechner suchen in gewissen Abständen, von welchen anderen Rechnern sie umgeben sind. Danach aktualisieren sie ihre Netzwerkumgebung. So kann es sein, dass die angezeigten Rechner längst abgeschaltet sind oder nicht angezeigte Rechner in Wirklichkeit längst verfügbar sind.
Encrypted Password
Verschlüsselte Passwörter sind nicht kompatibel
MS-Windows NT 4 ab Service Pack 3 sowie MS-Windows 98 und alle neueren Versionen senden verschlüsselte Passwörter über das Netz. Leider entspricht die Verschlüsselung nicht dem UNIX-Standard, so dass Samba nicht mehr einfach über die /etc/passwd arbeiten kann, wie das unverschlüsselt noch funktioniert. Zur Speicherung der verschlüsselten Passwörter wird eine eigenständige Datei namens /etc/smbpasswd verwendet. Um eine solche Datei zu erzeugen, liefert Samba einen Skript mit. Der Aufruf lautet:
cat /etc/passwd | bash mksmbpasswd.sh >/etc/smbpasswd |
Danach kann root für jeden Benutzer ein Startpasswort mit dem Kommando smbpasswd eintragen, indem er beispielsweise für den Benutzer willemer eingibt:
gaston# smbpasswd willemer New SMB password: Retype new SMB password: Password changed for user willemer. gaston# |
Samba als Domain-Controller
Samba kann auch als Primary Domain Controller (PDC) in einer Windows-Umgebung eingesetzt werden. Der Unterschied zu dem bisher betrachteten Peer-To-Peer Netzwerk besteht darin, dass ein einzelner Server die Anmeldung annimmt und die Ressourcen vergibt.Folgende Einträge müssen in der smb.conf hinzukommen, damit Samba einen PDC realisiert:
domain logons = yes security = user os level = 34 local master = yes preferred master = yes domain master = yes [netlogon] path = /home/netlogon public = no writable = no browsable = no |
Der Pfad für netlogon muss angelegt und von den Benutzern lesbar sein.
Die Clients müssen auf Domänenbetrieb umgestellt werden. Dies wird beispielsweise bei Windows Me im Netzwerkdialog eingestellt. Diesen erreichen Sie, indem Sie die Netzwerkumgebung mit der rechten Maustaste anklicken und aus dem Menü den Punkt Eigenschaften wählen. Aus den Netzwerkkomponenten wählen Sie den Client für Microsoft-Netzwerke aus und klicken Eigenschaften an. In dem dann erscheinenden Dialog setzen Sie einen Haken an den Punkt "An Windows NT-Domäne anmelden". Daraufhin können Sie angeben, an welcher Domäne Sie sich anmelden wollen. Der Namen entspricht dem, den Sie unter WORKGROUP in der Datei smb.conf angegeben haben.
Drucker
In Windows-Netzen können nicht nur Platten sondern auch Drucker angeboten werden. Dabei kann das UNIX-Drucksystem als Basis verwendet werden. Im Folgenden werden die Drucker eines BSD-Systems als Windows-Drucker verwendet. Dazu wird unter global das lokale Drucksystem als bsd angegeben und der Ort der printcap angegeben. Schließlich wird noch ein eigener Abschnitt für die Drucker namens printers definiert:[global] ... printing = bsd printcap name = /etc/printcap load printers = yes [printers] comment = All Printers browseable = no printable = yes public = no read only = yes create mode = 0700 directory = /tmp |
Nun gibt es zwei grundsätzlich unterschiedliche Verfahren, die Drucker von Windows aus zu installieren. Der Drucker kann entweder unter UNIX als PostScript-Drucker beispielsweise per GhostScript installiert werden. Dann wird auf dem Windows-Rechner lediglich ein beliebiger PostScript-Drucker installiert. Soll dagegen die Druckeranpassung auf dem Windows-Client erfolgen, muss in der \gpfett{printcap}-Datei der Drucker so definiert sein, dass der Druckdämon alle ankommenden Daten direkt durchschleust. Unter SuSE wird ein solcher Eintrag automatisch für jeden Drucker eingerichtet und ist an der Namenserweiterung raw zu erkennen.
Dämon oder inetd
Je nach Einsatz gibt es zwei Arten, einen Samba Server zu starten. Werden die Ressourcen nur hin und wieder zugegriffen, reicht es, den Server durch den inet-Dämon zu verwalten. Wird der Server intensiv als Firmenserver verwendet, sollte man die Dämonen aus den rc-Skripten starten.
Starten per inetd
Die Einträge in der /etc/inetd.conf lauten, falls der Dienst auf diesem Wege gestartet werden soll:netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd |
Ein kill -1 auf die PID des inetd sollte ihn dazu bringen, seine Konfigurationsdatei noch einmal zu begutachten. Wird nun der entsprechende Dienst angefordert, startet inetd die benötigten Samba-Dämonen.
rc-Skripte
Wird Samba als Server in einer Firma eingesetzt, der regelmäßig benutzt wird, werden die Serverprozesse beim Booten durch eine rc-Datei gestartet. In der SuSE-Distribution wird das durch Setzen der Variable START_SMB auf >>yes<< in der /etc/rc.config erreicht. Auf anderen Plattformen muss die Datei smb, die dem Sambapaket beiliegt, mit symbolischen Links in die richtige Startumgebung gebracht werdenAdministration per Browser
Mit dem Programm swat ist eine Administration des Samba-Servers auch per Browser möglich. Zunächst muss swat aktiviert werden. Das erfolgt in der Datei /etc/inetd.conf. Dort muss der folgende Eintrag stehen.swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat |
Danach muss der inet-Dämon durch ein HUP-Signal dazu gebracht werden, seine Konfiguration noch einmal einzulesen.
gaston # ps -ef | grep inetd root 1271 1 0 10:30 ? 00:00:00 /usr/sbin/inetd gaston # kill -HUP 1271 |
Anschließend kann ein Webbrowser gestartet werden. swat wird auf Port 901 angesprochen. Die Nummer finden Sie in der Datei /etc/services. Als Adresse wird also auf der lokalen Maschine http://localhost:901 eingegeben. Von fremden Maschinen muss der Name des Servers angegeben werden. In beiden Fällen erscheint eine Dialogbox, in der Sie sich als root anmelden müssen. swat konfiguriert die Datei smb.conf auf sehr übersichtliche Weise und ermöglicht die Verwendung der grafischen Oberfläche. Das ist vor allem für Anfänger sehr hilfreich. Auf der anderen Seite bleiben die Vorteile der textuellen Konfigurationsdatei erhalten. Man kann sie leicht sichern oder ausdrucken. Zur Not kann sie auch mit einem einfachen Textprogramm bearbeitet werden.
Zugriff auf Windowsnetze
Auch der Zugriff auf Windowsnetze ist möglich. Das Programm smbclient wurde schon zum Testen des Sambaservers kurz vorgestellt. Mit der Option -L Servername zeigt es alle Ressourcen, die der Server anbietet und die in als browsable gekennzeichnet sind.
Dateientausch per smbclient
Der Zugriff auf die von gaston angebotenen Heimatverzeichnisse würde von einem anderen UNIX-Rechner per smbclient ermöglicht
smbclient \\\\gaston\\homes |
Nach dem Aufruf wird ein Passwort angefordert und man befindet sich in einer Umgebung, die stark an den ftp-Client erinnert. Und tatsächlich funktioniert er auch mit den gleichen Kommandos. Etwas irritierend sind die vielen Backslashes. An sich werden vor dem Wort gaston zwei benötigt. Da aber der Backslash von der Shell interpretiert werden, braucht man hier vier. Allerdings darf man auch normale Schrägstriche verwenden und dann sieht der Aufruf schon etwas ziviler aus.
smbclient //gaston/homes |
Einbinden durch smbmount
Interessanter als ein ftp-Zugang dürfte aber das Einbinden einer Ressource in den eigenen Verzeichnisbaum sein. Dazu gibt es den Befehl smbmount, der einem mount mit dem Dateisystemtyp smbfs entspricht. Das Einbinden der Ressource HOMES vom Rechner gaston kann also mit einem der beiden Befehle erfolgen:
smbmount //gaston/homes /mnt -o username=arnold mount -t smbfs -o username=arnold //gaston/homes /mnt |
Die Verbindung wird mit dem normalen umount wieder aufgelöst:
umount /mnt |
Zugriff auf Windows XP
Windows XP versucht, die Sicherheitslöcher, die im Peer To Peer Netz entstehen, dadurch zu stopfen, dass das Gastkonto nicht mehr frei zugänglich ist. Darum fordern die Aufrufe von smbclient und smbmount jedesmal ein Passwort.
Dieser Schutz, der in einem lokalen Netzwerk normalerweise überflüssig ist,
kann durch den Policy-Editor von Windows XP Professional abgeschaltet werden.
Über den Start-Button und Systemsteuerung eröffnet sich ein Fenster.
Über Performance und Wartung weiter zu Verwaltung - Lokale
Sicherheitsrichtlinien
- Lokale Richtlinien -Lokale Richtlinien - Sicherheitsoptionen.
Die Einstellung "Netzwerkzugriff: Modell für gemeinsame Nutzung und
Sicherheitsmodell für lokale Konten" wird von "Nur Gast" auf "Klassisch"
umgestellt.
Bei Windows XP Home wird stattdessen in der Registry unter
HKLM\System\CurrentControlSet\Control\LSA
der Eintrag ForceGuest auf 0 gesetzt.