= 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.

== Links ==

*[http://wiki.bsdforen.de/Samba_PDC] beschreibt Samba als PDC
*[http://wiki.ubuntuusers.de/Samba_PDC] ähnliche Doku bei Ubuntu-Users
*[http://www.oreilly.de/german/freebooks/samba2ger/] vergriffenes O'Reilly Samba Buch Online

[{Tag Samba Linux Windows ServerDienste}]