Samba Server #

Samba ist ein Server-Programm, mit dem ein Windows-Server simuliert werden kann. Seine Fähigkeiten stehen einem Windows NT oder 2000 in nichts nach. Hier soll jedoch zuvorderst beschrieben werden, wie man Samba schnell und leicht (unter Debian) zum Laufen bekommt. Ausführlichere (und sehr gute Dokumentation) findet sich auf http://www.samba.org.

Das folgende Beispiel soll unkompliziert einen Server aufsetzen, wie er in tausenden Netzen immer wieder gebraucht wird: Ein Filesystem sowie alle Drucker werden für alle Clients ohne besondere Authentifizierung freigegeben. Ich warne ausdrücklich davor, wichtige Daten ohne Authentifizierung abzulegen, aber dazu kommen wir später...

Debian-Installation #

Folgende Pakete sollte man installieren:

  • samba
  • samba-doc (kann auch weggelassen werden)
  • swat (zur Konfiguration)
Ein paar Fragen bei der Installation beantworten sich fast von selbst. Im Zweifelsfalle einfach "Enter" drücken. Die Grundkonfiguration durch debconf (wie angeboten) kann man machen, muss man aber nicht. Wir konfigurieren später mit SWAT.

Konfiguration #

Mit obiger Paketauswahl haben wir auch SWAT installiert. SWAT ist ein Web-orientiertes Konfigurationstool, mit dem Samba komplett eingestellt werden kann. Obwohl es eine Weboberfläche hat, sollte es nur lokal benutzt werden, da das angeforderte root-Passwort sonst im Klartext über die Leitung geht (und man nie weiss, welchen Sniffer man sich bereits im LAN gefangen hat). Auf reinen Servern (ohne X) habe ich mit dem Textbrowser w3m bereits gute Erfahrungen gemacht, lynx sollte aber auch gehen. Die URL ist http://localhost:901 (Wer von anderen Rechnern zugreifen will sollte SwatPerSSL lesen.)

Nun hat man erstens Zugriff per Weboberfläche auf die oben mitinstallierte Dokumentation und kann zweitens den Server komplett einstellen. Die verschiedenen Bereiche der Konfiguration können am oberen Rand ausgewählt werden. Ich beschreibe hier, welche der Einstellungen für unsere einfache Problemstellung interessant sind. Falls eine der angegebenen Einstellungen nicht erscheint, kann es sein, daß man zuerst auf Advanced View klicken muss. Von den dann erscheinenden Optionen sollte man sich nicht verwirren lassen! Nach Einstellung eines Seite kann man mit Commit Changes die Änderungen absenden.

Globals #

  • Security Options / security: SHARE - Vereinfacht die Konfiguration ohne Userkontrolle.
  • Filename Handling / character set: ISO8859-1 - Richtige Umsetzung von Umlauten zwischen Linux und Windows
  • Security Options / hosts allow: 192.168.5.* - Oder wie auch immer mein LAN heisst
  • Security Options / hosts deny: * - alles andere sperren

Shares #

Shares sind freigegebene Verzeichnisse, auf die dann die Clients zugreifen können. Zuerst mal sollte man einen Namen in das Formularfeld eingeben (z.B. public oder windows-share oder so) und eine neue Share anlegen. Dann kann man die erzeugten Shares auswählen und einstellen:

  • Base Options / Path: /pfad/des/freizugebenden/verzeichnisses - darum geht's hier eigentlich
  • Security Options / Read Only: NO - Wir wollen das Verzeichnis auch beschreiben können
  • Security Options / guest only: YES - Userverwaltung macht vorerst keinen Sinn
  • Security Options / guest ok: YES - Anonymer Gastzugang erlaubt

Homes-Share #

Man kann eine Homes-Share einrichten. Dann können Benutzer über den Share-Namen homes auf ihr Linux-Home-Verzeichnis per Samba zugreifen. Hierzu muss ein Benutzer unter Linux angelegt werden (z.B. mit adduser username') und dann der Benutzer noch dem Samba-Server bekannt gemacht werden mit smbpasswd -a -U username'. Die Einstellungen in Swat für diese Homes-Share sollten selbsterklärend sein, wenn man vorher obige Public-Share erfolgreich erstellt hat.

Printers #

Die Einrichtung von Druckern hängt vom zugrundeliegenden Drucksystem ab, ist abner im allgemeinen ein Kinderspiel (besonders mit SWAT). Wer CUPS benutzt (DruckenMitCUPS), findet bei SambaUndCUPS eine entsprechende Anleitung.

Status #

Auf dieser Seite sollte nach Änderungen in den Einstellungen sowohl der smbd als auch der nmbd neu gestartet werden.

Sicherheit #

Man sollte sich darüber im klaren sein, dass der Server mit obigen - sehr laxen - Einstellungen jederzeit für jeden offen steht. Durch die "hosts allow" - Einstellung kommt zwar nicht direkt jeder Hanswurst aus dem Internet rein, aber die Wahrscheinlichkeit, daß früher oder später irgendetwas oder -jemand in unser Netz gerät, was da nicht reingehört, ist heutzutage recht hoch. Offene Samba-Server sind da ein gerngesehenes Fressen. Also keine lebenswichtigen und sensitiven Daten darauf ablegen!

Ein Tip noch dazu: Der Gastzugang wird unter Linux auf den User "nobody" umgeleitet. Wenn also Dateien im Unix-Verzeichnis anderen Usern (oder root) gehören und nobody nur über die Gruppen- oder algemeinen Rechte die Dateien lesen darf, besteht keine Gefahr, dass ein Samba-Client diese Dateien beschreiben, ändern oder löschen darf. So kann man einen Teil des Verzeichnisses read-only machen.

Linux-Clients #

Natürlich ist es auch unter Linux möglich, Samba-Shares zu mounten. Am einfachsten macht man dazu eine entsprechende Zeile in der /etc/fstab und installiert das Debian-Paket smbfs. Übrigens ist es nicht ganz trivial, die Umwandlung von Umlauten hinzubekommen. Mit den folgenden Einstellungen läuft es allerdings, wenn man beim Erstellen des Kernels (DebianKernelKompilieren) Module für die benutzte Codepage und Translation gemacht hat. Falls gar nichts klappt, hat man vielleicht den samba-client gar nicht in den Kernel eingebaut...

 \\sambaserver.lug.loc\windowsshare   /mnt/win   smbfs   noauto,uid=65534,gid=65534,dmask=777,fmask=777,guest,codepage=cp850,iocharset=iso8859-15
  0   0

Die genaue Bedeutung der verwendeten Optionen entnimmt man der Manpage von smbmount.

Unter bestimmten Bedingungen (d.h. auf meinem aktuellen System) funktioniert diese fstab-Zeile nicht, weil smbmount sich über die Option "noauto" echauffiert. Diese sollte allerdings auch smbmount gar nichts angehen. Ich weiss nicht, wie die anderen mount-Befehle das machen, aber entweder gehört das vorher gefiltert, weils eine fstab-Option ist, oder es gehört später ignoriert. Auf jeden Fall funktioniert die Zeile, wenn man noauto weglässt; dann wird allerdings die Share bei jedem booten gemountet. -- ThomasBayen

Übrigens ist sich Linux auch nicht immer mit sich selbst einig, was ein Umlaut ist. Ich habe bei mir als locale "LANG=de_DE@euro" gesetzt. Dabei sollte man diese Einstellung vornehmen, bevor man seine bash startet (oder eine neue starten oder neu einloggen), damit man Umlaute auch richtig eingeben kann.

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-7) was last changed on 18-Mar-2009 17:22 by Peter Hormanns