SAMBA - Wanderer zwischen den Welten
von Jens Kühnel (king@babylon.de)

Linux ist immer weiter auf dem Vormarsch. Trotzdem wird noch immer vor allem auf dem Desktop Microsoft eingesetzt. Um den MS-Desktop mit dem Linux-Server zu verbinden kann Samba eingesetzt werden. Seit der Version 2.0 ist es nun auch möglich mit Samba eine Domäne zu erstellen und zu verwalten.

Inhalt

Was ist Samba?
Geschichte
Grundlagen
Verschlüsselung
Domänen
    Domänenmitglieder hinzufügen
Von Linux nach NT

Was ist Samba?

Linux ist auf dem Vormarsch. Nicht nur springen immer mehr Firmen auf den Zug, auch traditionelle Linux-Firmen wie Red Hat oder SuSE sind am Expandieren. Und trotz des Vormarsches ist Microsoft vor allem auf dem Desktop noch nicht wirklich angegriffen, auch wenn uns das die Microsoft-Verteidiger bei der Anti-Trust-Kommission vorgeweint haben.

Wer auf dem Desktop nicht auf Microsoft verzichten kann oder aus Firmengründen nicht umsteigen darf, wird sicherlich keine Lust haben, sich auch noch auf dem Server mit Microsoft-Produkten rumzuschlagen. Um dieses Problem zu beheben, kann Linux in der Kombination mit Samba eingesetzt werden, um einen SMB-Server aufzusetzen.

Samba ermöglicht es, einen MS-Windows-Server unter Linux und vielen anderen Unix-Systemen aufzubauen. Samba unterstützt eigentlich alle Clients, von MS-Clients für DOS bis Windows NT. Einzige Voraussetzung ist das gemeinsame Protokoll TCP/IP mit NBT (NetBios over TCP/IP). Besonders bei der Fehlersuche sollte nicht vergessen werden, dass Samba nur über TCP/IP funktioniert.

Samba vermittelt zwischen zwei Welten. Daher gibt es einige Problemstellen, an denen die Welten einfach nicht recht zusammenpassen wollen. Dazu gehören sowohl die Dateirechte als auch die Benutzer-Gruppen-Zuordnung.

Geschichte

Der Beginn der Entwicklung wurde von Andrew Tridgell am Computer Science Lab an der Australia National University, Canberra, gelegt, als er versuchte, DECs Pathwork (ein SMB-kompatibler Server) mit einer Sun zu verbinden. Da die Software nicht für Sun verfügbar war, begann er die Kommunikation zwischen dem Client und dem Server zu analysieren. Irgendwann hatte er das Protokoll soweit zerlegt, dass er beginnen konnte die Serversoftware zu entwickeln. Im Januar 1992 wurde "Server 0.1" veröffentlicht. Es gab auch einige Nachfragen und schon bald wurden "Server 0.5" und "Server 1.0" im Abstand von jeweils einem Monat veröffentlicht. Doch dann schlief die Entwicklung ein wenig ein, da Andrew keine Verwendung mehr für seinen "Server" hatte. Doch nachdem Andrew Linux entdeckt hatte und den PC seiner Frau an seinen Linux-Server anschließen wollte, portierte er seinen "Server" auf Linux und es lief auf anhieb. Er fand dann auch bald die lange gesuchten Protokoll-Spezifikationen und begann daraufhin seinen Code zu verbessern. Danach wurde aus dem SMB-"Server" SaMBa.

Wer die ganze Geschichte lesen möchte, dem sei der Text history im Document-Verzeichnis zu empfehlen.

Die neueste Version von Samba, Version 2.0 wurde Januar 1999 veröffendlicht.

Grundlagen

Die Konfiguration von Samba geschieht zentral in der Datei smb.conf. Zu finden ist diese Datei entweder in /usr/local/lib oder in /etc. Wie alle Linux-Konfigurationsdateien ist auch diese als reiner ASCII-Text gespeichert. Aufgebaut ist sie allerdings wie eine MS-Windows-Ini-Datei mit mehreren Sektionen, die jeweils mit einem Sektionsnamen in eckigen Klammern beginnen.

Jede Sektion stellt eine Freigabe dar, Ausnahmen sind die Sektionen Global, Homes und Printer. Die Sektion Global enthält die allgemein gültigen Konfigurationsanweisungen wie zum Beispiel die Netzwerkoptionen. Die Sektionen Homes und Printer sind Mehrfachfreigaben, um dem jeweiligen Benutzer sein Heimatverzeichnis und alle Drucker aus /etc/printcap auf einmal freizugeben.

Die Konfigurationsanweisungen bestehen aus Konfigurationsnamen, Gleichheitszeichen und Konfigurationswert. Trennzeichen, wie Leerzeichen oder Tabulator, können hinzugefügt oder weggelassen werden, es sei denn, dass der Konfigurationsnamen ein Leerzeichen enthält.

Aber wenn man sich einmal eine konkrete Konfigurationsdatei angeschaut hat, wird das alle sehr viel leichter verständlich.

[global]
workgroup=samba
[homes]
comment = Heimatverzeichnisse
browseable = no
writeable = yes
create mode = 0750
[cdrom]
path = /cdrom
read only = yes
locking = no
guest ok = yes

Dies ist eine kleine und sehr einfache smb.conf-Datei, an der wir die Konfigurationsparameter einzeln durchsprechen werden.

Jede Freigabe hat einen Kommentar Comment in dem ausführlich erklärt werden sollte, wofür diese Freigabe gedacht war, weil man es sonst eh wieder vergisst.

Mit der Option Browseable = no wird verhindert, dass diese Freigabe jedem angezeigt wird. Unter NT ist dies durch anhängen eines $ an den Freigabenamen möglich.

Normalerweise sind alle Freigaben erst einmal schreibgeschützt. Erst wenn writeable aktiviert ist, kann auf die Dateien der Freigabe auch schreibend zugegriffen werden. Da MS-Windows die Dateirechte anders als Linux verwendet, muss Samba gesagt werden, mit welchen Dateirechten die Datei angelegt werden soll. Dies geschieht mit der Zeile create mode = 0750.

Die erste normale Freigabe ist das CDROM-Verzeichnis. Mit der Pathanweisung wird angegeben, welches Linuxverzeichnis unter dem Freigabenamen verfügbar sein soll. Da man auf eine CD-ROM nicht schreiben kann, wird die Schreibberechtigung gleich entzogen. Das Filelocking, das verhindert, dass die Datei zweimal geöffnet und editiert werden kann, wird hier mit locking=no ausgeschaltet, dadurch ist der Zugriff etwas schneller.

Um den Zugang nicht nur eingetragenen Benutzern zu gewährleisten, sondern wirklich allen, wurde bei dieser Freigabe der Gastzugriff mit guest ok=yes erlaubt. Damit kann auch ohne Passwort auf die Freigabe zugegriffen werden.

Verschlüsselung

Bevor wir die Domänenfunktion aktivieren können, muss erst die Passwortverschlüsselung aktiviert werden. Neuere Versionen von MS-Windows NT (SP3) und Windows 9x können sich nur noch an einem Server anmelden, der verschlüsselte Passwörter bereitstellt. Wer dieses Verhalten ändern möchte, muss den entsprechenden Registry-Key ([Win95|NT4]_PlainPassword.reg) aus dem Verzeichnis docs einspielen oder bei Samba die Verschlüsselung aktivieren.

Die Samba Passwort-Verschlüsselung hat keinen Einfluss auf die Sicherheit der übertragenen Daten. Diese können auch weiterhin mitgelesen werden, nur die Passwörter werden verschlüsselt.

Da Samba aus den Linux-Passwörtern das Passwort nicht erhalten kann, muss es seine eigene Passwortdatei einrichten. Diese Datei heißt normalerweise smbpasswd und liegt entweder in /etc oder /usr/local/samba/private.

Wer nur ein Handvoll Einträge in die smbpasswd-Datei eintragen muss, kann dies am einfachsten tun, indem er mit dem Programm smbpasswd -a jeden Benutzer in die smbpasswd-Datei einträgt und per Hand ein neues Passwort eingibt.

Wenn schon ein bestehender Server auf verschlüsselte Passwörter umgestellt wird, kann man die Umstellung auch vereinfachen, indem man den globalen Parameter update encrypted = yes einige Tage aktiviert lässt. Damit wird bei der Anmeldung eines Benutzers das unverschlüsselte Passwort akzeptiert und dann verschlüsselt in der smbpasswd abgespeichert

Egal welche Methode eingesetzt wird, um Samba die verschlüsselten Passwörter beizubringen, es muss in jeden Fall für jeden Benutzer bereits ein Eintrag in der passwd vorhanden sein.

Nun muss nur noch die Passwortverschlüsselung mit password encrypted = yes aktiviert werden. Beachten Sie, dass der Parameter update encrypted dann wieder deaktiviert werden muss.

Damit ist die Passwortverschlüsselung aktiviert, und nun kann Samba eine Domäne erstellen und verwalten.

Domänen

Samba kann seit Version 2 auch Chef (PDC) einer Domäne werden. Damit kann sich eine NT-Workstation von Samba ein Benutzer/Passwort-Paar bestätigen lassen. Mit Hilfe einer Domäne kann mit einem Passwort auf alle Rechner einer Domäne zugegriffen werden.

Um die Domänenfunktion zu aktivieren muss nur der Parameter domain logons = yes in die smb.conf eingetragen werden.

Fertig! Der Workgroupname wird jetzt als Domainname verwendet.

Domänenmitglieder hinzufügen

Bevor sich ein NT-Rechner an einer Domäne anmelden kann, muss der Rechnername bei der Domäne eingetragen werden. Um eine NT-Workstation anzumelden, muss ein Maschinenkonto erstellt werden. Bevor dies geschehen kann, muss ein Unix-Benutzer mit der Bezeichnung Rechnername gefolgt von einem Dollarzeichen angelegt werden. Anschließend wird mit smbpasswd -a -mRechnername$ das Samba-Maschinenkonto angelegt. Nun kann Windows NT unter die Kontrolle von Linux gebracht werden.

Das NT-Fenster Identifikationsänderungen

Dazu muss man die Eigenschaften der Netzwerkumgebungen bearbeiten. Diese finden Sie entweder unter Systemsteuerung Netzwerk oder mit einem linken Mausklick auf die Netzwerkumgebung. Auf der erste Karteikarte Identifikation wählt man Ändern und erreicht damit das nebenstehende Fenster.

Hier wählt man Domäne aus und gibt den Domänennamen des Samba-Servers ein.

Der Haken an Computerkonto in der Domäne erstellen sollte entfernt werden, da Samba dies nicht zulässt. (Es gibt auch Leute die so was als Sicherheitsfeature verkaufen würden.)

Wenn man jetzt OK anwählt, dauert es einen Moment und man erhält die folgende Meldung das NT nun an der Linuxdomäne eingetragen ist.

Willkommen in der Domäne SAMBA

Auch wenn Samba Domänen unterstützt, gibt es doch noch einige Dinge, die leider noch nicht funktionieren. Zum Beispiel gibt es bei Samba 2.0 noch keine Unterstützung für PDCs.

Von Linux nach NT

Samba ist keine Einbahnstraße. Es besteht nicht nur die Möglichkeit, auf Samba zuzugreifen. Es funktioniert auch, von Samba und Linux aus auf andere SMB-Server zuzugreifen. Dafür stehen mehrere Möglichkeiten zur Verfügung.

Der einfachste Weg von Linux zum SMB-Server ist smbclient. Damit können Sie ähnlich einem FTP-Client auf den SMB-Server zugreifen. Der Aufruf ist auch nicht schwierig: smbclient //smb-Server/Freigabe -UBenutzername Wenn sie den Benutzernamen verwenden möchten mit dem sie zur Zeit eingelockt sind, können Sie auch -U Benutzername weglassen.

Wenn Sie sich mit dem richtigen Passwort autorisiert haben, können Sie sich mit den normalen FTP-Befehlen bewegen. Eine Liste aller möglichen Befehle erhalten Sie mit help oder ?.

Wer viel mit einer Freigabe hantieren muss, für den ist dies natürlich keine befriedigende Lösung. Aber dafür gibt es smbmount. Mit diesem Tool ist es möglich, ein SMB-Filesystem wie jedes andere Filesystem zu mounten: smbmount //servername/Freigabe/mnt. Danach wird das Passwort für den aktuellen Benutzer abgefragt.