Samba

Samba verbindet zwei Welten miteinander. Auf einem Unix oder Debian GNU/Linux-Rechner installiert, dient es als Datei- und Druckerserver für über das Netzwerk angeschlossene Windows-Rechner. Samba benutzt hierzu das von Microsoft benutze SMB (Server Message Block)-Protokoll, es sind so an den Windows-Rechnern keinerlei Veränderungen vorzunehmen oder gar zusätzliche Software zu installieren.

Dieses wird durch Protokolle erreicht, die als CIFS ( Common Internet File System) bekannt wurden. Eines der wichtigsten Elemente von CIFS ist das Protokoll SMB (Server Message Block). Samba ist eine freie Implementation von CIFS.

Samba wurde bisher auf eine Vielzahl von Nicht-Unix-Betriebssystemen wie zum Beispiel VMS, AmigaOS und NetWare portiert.

Entstehung von Samba

Vor einigen Jahren entwickelten die Firmen IBM und Sytec gemeinsam ein einfaches Netzwerk-System für kleine, lokale Netzwerke. Dieses wurde NetBIOS oder „Network Basic Input Output System“ genannt. Microsoft erweiterte die Funktionalität, so daß Laufwerke übers Netz verwendet werden konnten. Diese Version wurde SMB und später CIFS genannt.

NetBIOS wurde für kleine, lokale Netzwerke entwickelt, im Zusammenspiel mit TCP/IP kann diese Grenze überwunden werden. Der Trick besteht darin, die 16 Byte langen NetBIOS-Namen auf IP-Adressen umzulegen, so daß diese ihren Weg in einem gerouteten IP-Netzwerk finden. Dieser Mechanismus wird in den RFCs 1001 und 1002 beschrieben. Mit der weiteren Entwicklung von Windows wurden zwei Funktionen hinzugefügt: Das „Browsen“ nach Diensten im Netz und eine Funktion zur zentralen Authentifizierung und Autorisierung, der sogenannte „Windows NT Domain Control“.

Funktionen von Samba

Samba besteht aus zwei existenziellen Programmen, smbd und nmbd, welche die grundlegenden, aktuellen Funktionen von CIFS implementieren. Diese sind:

Hierbei sind die Datei- und Druckdienste sicherlich die wichtigsten Bausteine des CIFS. Diese werden von smbd, dem SMB-Daemon, zur Verfügung gestellt. smbd verwaltet auch die sogenannte "Share mode" und "User mode"-Authentifizierung und Autorisation. Mit diesen können Sie Laufwerke und Druckdienste mit Paßwörtern schützen. Im einfachsten, im „Share“-Modus, kann ein Paßwort einem Laufwerk oder Drucker zugeordnet werden. Dieses Paßwort muß jedem Benutzer bekannt sein, der auf dieses Gerät zugreifen soll. Diese Methode ist natürlich durch ein Paßwort, welches vielen Benutzern bekannt ist, nicht sehr sicher. Empfehlenswerter ist es, jedem Benutzer einen eigenen Benutzernamen und ein Paßwort zu geben, der Systemadministrator entscheidet dann über die Konfiguration, welche Zugriffe für welchen Benutzer gestattet sind.

Das mit Windows NT eingeführte System, der „Domain Controller“, erlaubt eine weitere Stufe der Authentifizierung. Die grundlegende Idee dahinter ist, daß ein Benutzer sich nur einmal legitimieren muß, um auf alle Netzwerkdienste zugreifen zu können. Das NT-System koordiniert dies über einen Server, den sogenannten Domain Controller. Eine NT Domain (nicht zu verwechseln mit dem Domain Name System (DNS)) ist eine Gruppe von Rechnern, die auf einen gemeinsamen Domain Controller zugreifen.

Die anderen beiden Teile von CIFS, Namensauflösung und „browsing“, werden von nmbd zur Verfügung gestellt.

Die Auflösung von Namen kann auf zwei Arten, „broadcast“ oder „point-to-point“, erfolgen. Ein Rechner kann eine oder beide dieser Methoden nutzen. Die Broadcast-Methode erinnert noch am meisten an die originale NetBIOS-Funktionalität, ein Rechner, der einen Service sucht, „ruft“ ins Netz und wartet auf eine Antwort. Dies kann einigen Traffic verursachen, ist aber in einem kleinen Netz kein echtes Problem.

Die zweite Methode benutzt einen NBNS (NetBIOS Name Service)-Server. Unter Windows ist dies als WINS (Windows Internet Name Service) bekannt. Die Funktionsweise ist recht schnell erklärt: Jeder Client sendet seinen NetBIOS-Namen und die IP-Adresse an den NBNS-Server, der die Informationen in einer Datenbank speichert. Wenn ein Client mit einem anderen Client „sprechen“ möchte, sendet er den Namen des gewünschten Rechners an den NBNS-Server und dieser liefert die passende IP-Adresse zurück.

Clients in verschiedenen Subnetzen können einen gemeinsamen NBNS-Server benutzen. Somit ist die Broadcast-Methode nicht auf lokale Netze beschränkt. NBNS läßt sich in etwa mit den DNS vergleichen, die Namensliste von NBNS ist allerdings komplett dynamisch und es gibt kaum Überprüfungen, ob ein Client zur Namesregistrierung authorisiert ist. Dies kann sehr schnell zu Konflikten führen.

Bleibt noch das „browsing“. Dies hat nichts mit dem Surfen im WWW zu tun, sondern stellt vielmehr eine Liste der verfügbaren Laufwerke und Drucker dar.

In einem LAN gibt es zwischen den teilnehmenden Rechnern eine „Abstimmung“ und der dominierende Rechner wird zum LMB (Local Master Browser) erklärt. Dieser LMB bekommt einen zusätzlichen Namen, seine Aufgabe ist es, eine Liste der verfügbaren Dienste zu pflegen. Diese Liste erscheint beim Anklicken des Symbols „Netzwerk Umgebung“.

Als Ergänzung zu den LMBs gibt es noch DMBs (Domain Master Browsers). Diese koordinieren die Listen zwischen NT-Domänen und gerouteten Netzwerken. Über den NBNS kann ein LMB seinen DMB herausfinden und die Listen austauschen und ergänzen. Somit können die Listen an alle Teilnehmer in einer NT Domain verteilt werden. Leider dauert es bis zu einer Stunde, bis eine Änderung in einem Subnetz im Netz verbreitet ist.

Samba-Werkzeuge

Im Samba-Paket sind eine Reihe von Werkzeugen enthalten, andere sind unter Debian GNU/Linux als separate Pakete verfügbar.

SMB-Dateisysteme

Mit Samba können Sie von einem Windows-Rechner aus Dateisysteme Ihres Linux-Rechners völlig transparent nutzen, als wenn diese auf einer lokalen Festplatte liegen würden. Beispielsweise kann das Laufwerk „N:“ auf irgendeinem entfernten Rechner angelegt sein.

Aber auch der umgekehrte Weg funktioniert, über das smbfs-Dateisystem können Sie auf Laufwerke zugreifen, die von einem Windows-Rechner freigegeben wurden. So können Sie zum Beispiel ein Verzeichnis /mnt/win/ anlegen und das entsprechende Laufwerk Ihres Windows-Rechners dort mounten. Sie können in diesem Verzeichnis alle Aktionen (lesen, schreiben, löschen usw. von Dateien) ausführen, wie auf Ihren lokalen Platten.

Konfiguration und Verwaltung

Samba wird über die Datei /etc/smb.conf konfiguriert. Dies ist, wie unter Debian GNU/Linux üblich, eine normale ASCII-Datei, die Syntax ähnelt den von Windows bekannten*.ini-Dateien. Ziel ist es, Netzwerk-Administratoren, die mit Windows vetraut sind, einen leichten Umstieg zu bieten. Mit der wachsenden Funktionalität von Samba wuchsen auch die in der Konfigurationsdatei verfügbaren Parameter. Diese sind gut dokumentiert und erlauben sehr detaillierte Einstellungen.

Neben der unter /usr/doc/samba/ liegenden mitgelieferten Dokumentation ist unter http://www.oreilly.com/catalog/samba/ auch die englischsprachige Online-Version des bei O'Reilly erschienenen Buches „Using Samba“ zu finden. Wer sich über den neuesten Stand der Samba-Entwicklung informieren möchte, dem sei die URL http://kt.linuxcare.com/KC/samba/ empfohlen. Die Homepage von Samba finden Sie unter: http://samba.org/.

Als grafische Werkzeuge stehen Ihnen gnomba und tkchooser zur Verfügung, um exportierte Drucker und Laufwerke im Netz aufzuspüren und am System anzumelden.

SWAT

Das Samba Web Administration Tool (SWAT) stellt eine webbasierte Konfigurationsoberfläche für Samba zur Verfügung. Eine Demoversion finden Sie unter der URL: http://anu.samba.org/cgi-bin/swat/. SWAT ist Bestandteil der Samba Distribution, wurde aber für Debian GNU/Linux als eigenes Paket gepackt. Da SWAT webbasiert ist, benötigen Sie ebenfalls einen Webserver (apache, roxen ...) auf Ihrem System. Starten Sie dann Ihren Webbrowser mit der URL http://localhost:901/. Bitte beachten Sie: Wenn Sie auf SWAT von einem anderen Rechner zugreifen (in einem internen Netz oder über das Internet), so werden alle Paßwörter unverschlüsselt übertragen.

Informationen über die möglichen Einstellungen finden Sie in der Anleitung zu Samba.

gnosamba

gnosamba ist ein grafisches Werkzeug zur Konfiguration von Samba. Die Webseiten zu gnosamba finden Sie unter der URL: http://www.open-systems.com/gnosamba.html.

Sie können mit gnosamba eine bestehende Samba-Konfigurationsdatei einlesen und verändern. Sie können diese auch unter einem anderen Namen abspeichern, für Testzwecke beispielsweise.

gnosamba befindet sich noch in der Entwicklung, es ist daher empfehlenswert, immer eine Sicherheitskopie der Samba-Konfigurationsdateien zu erstellen. Auch eine Unterstützung für die „höheren“ Funktionen, wie zum Beispiel PDC ( Primary Domain Controller)-Support sind noch nicht implementiert.

gnomba

gnomba ist eine grafische Oberfläche für das zum Samba-Paket gehörende Programm smbclient. Sie können mit gnomba die freigegebenen Laufwerke und Drucker suchen lassen und gleich an Ihrem System anmelden.

Dies entspricht in etwa der von Windows bekannten „Netzwerkumgebung“. Weitere Screenshots finden Sie auf der Webseite zu gnomba : http://gnomba.darkcorner.net/.