Neue Betriebssystemversionen bringen neben vielen Veränderungen in aller Regel vor allem Verbesserungen gegenüber ihren Vorgängern mit. Einher damit gehen aber auch immer eine gewisse Anzahl an Inkompatibilitäten zu anderen Systemen, die bisher in der Lage waren, eine gemeinsame Sprache zu sprechen. Bei diesen Sprachen handelt es sich um die Protokolle, über die sich die Maschinen in einem Netzwerk unterhalten. Gerade Windows 7 wartet hier mit einigen Veränderungen auf.
Samba [1] erlaubt, unter Linux Daten über Freigaben mit dem SMB/CIFS-Protokoll an Windows-Maschinen zur Verfügung zu stellen. Als Server-Variante für die zentrale Verwaltung und Freigabe von Daten an Windows-, Linux- und auch Mac-OS-Maschinen hat sich Samba in der Welt der freien Software als Marke etabliert. Wie sich mit Samba und der neuesten Betriebssystemversion von Microsoft, mit Windows 7, Daten teilen lassen, welche Änderungen es gibt und was es zu beachten gilt, behandelt dieser Workshop.
Vorbetrachtungen
Zu einem eigenen Netzwerk wie in Abbildung 1 – sei es für das Büro, die Familie daheim oder die Wohngemeinschaft – gehören eine Reihe von Komponenten, darunter nicht zuletzt der Zugang ins Internet. Dafür gibt es bereits für wenig Geld fertige Lösungen. Aktuelle Router bringen in aller Regel bereits ein eingebautes DSL-Modem mit, lassen sich einfach handhaben und bieten alles, was man zur Grundkonfiguration eines Netzwerks braucht. Dazu zählen etwa die Möglichkeit zum Vernetzen mehrerer Rechner über Kabel und WLAN, NAT sowie ein DHCP-Server. Als zentraler Dienst sorgt <DHCP vor allem dafür, dass jeder Rechner im Netz eine IP-Adresse erhält. Allerdings lassen sich via DHCP-Server den Clients auch eine Vielzahl weiterer Informationen mitgeben, wie beispielsweise die Adressen von DNS- und NTP-Servern.
Ob Sie einen DHCP-Server auf dem Samba-Server mitlaufen lassen oder den DHCP-Server eines Routers mit benutzen, ist hauptsächlich eine Geschmacksfrage. Falls der Router den DHCP-Dienst übernimmt, müssen Sie Windows 7 in der Netzwerkkonfiguration zusätzliche Informationen mitgeben.
Zu den Rechnern, die im Netz via Samba Daten teilen sollen, kommt ein Drucker hinzu, auf den alle Maschinen im Netzwerk drucken können sollen. In unserem Beispiel ist er per USB direkt an den Samba-Server angeschlossen.
Die Konfiguration von Samba erfolgte im Test mit der Samba-Version 3.4.2 einer 64-Bit-Installation von OpenSuse 11.2.
Samba einrichten
YaST lässt sich über das Startmenü oder in der Konsole mit yast2 aufrufen. In der Rubrik Netzwerkdienste findet sich die Option Samba-Server. Mit einem Klick darauf beginnt die Konfiguration.
Als erstes fragt YaST nach dem Namen für die Arbeitsgruppe oder Domäne. Beide Begriffe unterscheiden sich zentral in einem Punkt: in der Authentifizierung – dazu später mehr. In vorliegendem Test heißt die Domäne TULPENSTRASSE. Im folgenden Schritt fragt YaST nach dem Betriebsmodus des Samba-Servers (näheres zu den Betriebsmodi von Samba in der Tabelle "Samba-Betriebsmodi"). Wir erstellen in unserem Fall einen Primary Domain Controller, der als erste Instanz die Domäne TULPENSTRASSE verwaltet (Abbildung 2).
Samba-Betriebsmodi
| Modus | Erklärung |
|---|---|
| User Level | Will ein Benutzer auf eine Freigabe zugreifen, sendet der anfragende SMB/CIFS-Client Benutzernamen und Passwort an den Samba-Server. Auf dieser Basis entscheidet der Samba-Server über die Genehmigung für den Zugriff auf die Freigabe. |
| Share Level | Basierend auf jeder Freigabe fragt der Samba-Server beim Zugriff auf dieses nach einem Passwort. Der anfragende Benutzer ist dabei völlig unerheblich: ein Passwort ist der Freigabe zugeordnet. |
| Domain Security | In diesem Modus wird der Samba-Server in diesem Workshop betrieben. Er erlaubt die zentrale Speicherung von Benutzer- und Anmeldedaten auf einem Server. Der als Primary Domain Controller (PDC) agierende Server stellt alle Daten zur Verfügung. Der Ausfallsicherheit dient ein Backup Domain Controller (BDC), der im Normalbetrieb nur die Netzwerkanmeldung übernimmt. |
| ADS Security | Läuft bereits ein Windows-2000 oder -2003-Server, lässt sich ein laufender Samba-Dienst in eine solche Domäne als Mitglied einbinden. Das erlaubt den Austausch von Anmeldedaten mit dem Active Directory des oder der Windows-Server. Im Zusammenspiel mit Sambas Winbind kann dieser Dienst die Benutzer aus dem Active Directory unter Linux verfügbar machen. |
Die Informationen zu Betriebsmodus und Domänenname bilden das Fundament für den Samba-Server gegossen, nun folgt die weitere Konfiguration. Lassen Sie den Samba-Dienst beim Booten gleich mit zu starten: Das erspart ein manuelles Hochfahren über YaST oder die Konsole. Außerdem müssen Sie die Ports für die von Samba unterstützten Microsoft-Protokolle in der Firewall öffnen: Setzen Sie also in YaST bei der Option Firewall-Port öffnen ein Häkchen. Funktioniert ein Dienst nicht, liegt das oft an einem geschlossenen Port. Mit dem Befehl iptables -L auf der Konsole können Sie die Einstellungen der Firewall nochmals genauer in Augenschein nehmen.
Bei der Konfiguration der Freigaben gibt YaST bereits die wichtigsten Einstellungen für den Domänenbetrieb vor, viel müssen Sie nicht mehr ändern. Die Freigabe mit dem Namen users (Abbildung 3) kann wegfallen. Die Freigabe groups löschen Sie ebenfalls und erzeugen dafür eine mit dem Namen shared (Abbildung 4). Eine Liste mit voreingestellten Samba-Freigaben zeigt die Tabelle "Samba-Freigabenamen".
Samba-Freigabenamen
| Freigabe | Erklärung |
|---|---|
homes
|
Das ist ein sogenannter Meta-Service, also mehr als nur eine Freigabe. Hier veranlasst der Samba-Server die Freigabe auf jedes von jedem Benutzer vorhandene Home-Verzeichnis unter /home. Somit kann jeder Benutzer die Freigabe sehr einfach über den UNC-Pfad \\home\Benutzer
erreichen.
|
netlogon
|
Hier liegen Startskripte, die Windows-Clients beim Anmelden ausführen. So lassen sich Aktionen zentral vom Samba-Server aus steuern, etwa das Einhängen einer Freigabe via net use.
|
printers
|
Ein Meta-Service, der alle Drucker als Freigabe zusammenfasst. |
profiles
|
Hier lagern die Benutzerprofile. Unter Windows 7 heißt das Verzeichnis .msprofile.V2 und umfasst neben allen User-Einstellungen auch die Windows-7-"Bibliotheken" wie Musik, Dokumente und Videos. Bei YaSTs Samba-Konfiguration veranlasst der Samba-Server den Windows-7-Client, das Profil im Home-Verzeichnis des Benutzers anzulegen.
|
print$
|
Das Dollarzeichen hinter dem Freigabenamen bedeutet, dass diese Freigabe in der Netzwerkumgebung nicht sichtbar sein soll. Hinter dieser Freigabe verstecken sich die Druckertreiber, die ein Windows-Client herunterlädt, falls im Netzwerk ein Drucker über SMB/CIFS verteilt wird. |
Mit dem Haken an der Option ACLs vererben teilen Sie Samba mit, dass Sie gerne das von Windows standardmäßig genutzte System für erweiterte Datei- und Verzeichnisrechte nutzen möchten, die ACLs (Access Control Lists). OpenSuse aktiviert die entsprechende Unterstützung im jeweiligen Dateisystem standardmäßig, sodass Samba den Abgleich von ACLs unter Linux hin zu Windows vornehmen kann. Änderungen von Windows über das SMB/CIFS-Protokoll an den Berechtigungen an einer Datei oder einem Verzeichnis veranlassen Samba, diese Informationen auch in den ACLs des jeweiligen Dateisystems unter Linux zu speichern, auf dem die Datei oder das Verzeichnis liegt.
Den letzten Schritt der Samba-Konfiguration zeigt Abbildung 5. Neben der Kontrolle der Grundeinstellungen findet sich hier die Konfiguration des Windows Internet Naming Service WINS. In kleinen Netzen, wie hier für den Workshop angenommen, genügt die Option zur Unterstützung eines WINS-Servers. Dessen Funktion übernimmt der Samba-eigene NMBD-Dienst. In größeren Netzen gibt es oft mehrere WINS-Server, wofür YaST die Option Entfernter WINS-Server bereitstellt. Die beiden Reiter für vertrauenswürdige Domains sowie LDAP, die Sie in Abbildung 5 sehen, spielen nur in größeren Netzen eine Rolle.
Mit einem abschließenden OK und der Eingabe des Root-Passworts für Samba richtet YaST den Samba-Server ein und startet die notwendigen Dienste. In aller Regel sind das smbd sowie nmbd für die Namensauflösung. Nun testen Sie als Erstes, ob zumindest lokal ein Zugriff auf den Samba-Server möglich ist. Die Ausgabe des Befehls smbclient -L localhost -U% sollte der Ausgabe in Abbildung 6 gleichen.
Wie YaST die von Ihnen getroffenen Vorgaben für Samba umgesetzt hat, sehen Sie sich ganz einfach an, indem Sie die Konfigurationsdatei /etc/samba/smb.conf mit einem Editor öffnen. Alternativ rufen Sie auf der Kommandozeile den Befehl testparm -s auf. Dessen Ausgabe zeigt Listing 1.
[global] workgroup = TULPENSTRASSE map to guest = Bad User printcap name = cups add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$ logon script = logon.bat logon path = \\%L\profiles\.msprofile logon drive = P: logon home = \\%L\%U\.9xprofile domain logons = Yes os level = 65 preferred master = Yes domain master = Yes wins support = Yes usershare allow guests = Yes cups options = raw [homes] comment = Home Directories valid users = %S, %D%w%S read only = No inherit acls = Yes browseable = No browsable = No [profiles] comment = Network Profiles Service path = %H read only = No create mask = 0600 directory mask = 0700 store dos attributes = Yes [printers] comment = All Printers path = /var/tmp create mask = 0600 printable = Yes browseable = No browsable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @ntadmin, root force group = ntadmin create mask = 0664 directory mask = 0775 [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon write list = root [shared] comment = Für alle path = /home/shared read only = No inherit acls = Yes



