20 Datei-Server – Ubuntu im Netzwerk
»Was wir brauchen, sind ein paar verrückte Leute;
seht euch an, wohin uns die Normalen gebracht haben.«
George Bernard Shaw (1856–1950),
irischer Dramatiker, Schriftsteller und Nobelpreisträger
Was Sie in diesem Kapitel erwartet
Der Betrieb von Servern ist eine Domäne von UNIX und Linux. Wir werden einen Blick über den Tellerrand werfen und zuerst das wohl am weitesten verbreitete Szenario betrachten, in dem ein Ubuntu-Rechner mit dem Rest des Netzwerks, bei dem es sich zumeist um Windows-Rechner handelt, verbunden werden soll. Das Zauberwort heißt in diesem Fall Samba. Jeder, der schon einmal versucht hat, einen Datei-Server unter Linux »von Hand« aufzusetzen, wird überrascht sein, wie problemlos dies mit Ubuntu möglich ist.
Im zweiten Abschnitt betrachten wir homogene Netzwerke, in denen Ubuntu-Rechner unter sich bleiben. Auch hierfür gibt es Lösungen, mit denen eine Zusammenarbeit spielend einfach wird.
Benötigtes Vorwissen
Sie sollten den grundlegenden Umgang mit der Shell beherrschen (siehe Abschnitt »Das Terminal – sinnvoll oder überflüssig?«).
Was ist ein Datei-Server?
Wenn in einem Netzwerk mehrere Clients auf gemeinsame Dateien zugreifen wollen, benötigen Sie einen zentralen Speicherort. Hierbei haben Sie es in vielen Firmen oder auch privaten Netzwerken mit zwei unterschiedlichen Arten von Infrastrukturen zu tun:
- homogen (gleichartig)
Der »einfachste« Fall besteht darin, dass sich in einem gemeinsamen Netzwerk nur Rechner befinden, auf denen das gleiche Betriebssystem installiert ist, also beispielsweise ausschließlich Windows-Clients. Wie Sie ein solches Netzwerk aufbauen, zeige ich Ihnen in Abschnitt 20.2, »Homogenes Netzwerk«. - heterogen (unterschiedlich)
Der weitaus häufigere Fall besteht allerdings darin, dass sich im Laufe der Zeit eine bunte Mischung an unterschiedlichen Betriebssystemen in einem Netzwerk angesammelt hat. Aber auch dies ist kein Problem für Ubuntu (siehe nächster Abschnitt 20.1, »Heterogenes Netzwerk«).
Egal, welche Infrastruktur Sie vorfinden, ein Ubuntu-Server gewährt Linux- und WindowsClients gleichermaßen Zugriff auf gemeinsam genutzte Dateien oder auch den Abteilungsdrucker.
20.1 Heterogenes Netzwerk
Ein Netzwerk aus Windows- und Ubuntu-Rechnern aufzubauen ist kein Hexenwerk. Die Lösung hört auf den Namen Samba.
Samba: Samba bezeichnet nicht den bekannten lateinamerikanischen Tanz, sondern vielmehr ein geniales Stück Software von dem australischen Programmierer Andrew Tridgell. Durch sogenanntes Reverse Engineering konnte mit dieser Software ein Windows-Netzwerkprotokoll entschlüsselt und somit in der Folge von Samba-Clients und -Servern in UNIX-Umgebungen genutzt werden. Sie installieren die vollständige Samba-Funktionalität durch das Paket samba-common.
Einsatzszenarien
Es gibt prinzipiell zwei Szenarien, bei den Ihnen Samba wertvolle Dienste leistet:
- Auf Windows-Rechner zugreifen
Sie können mit dieser Technik als Ubuntu-Client einer Windows-Domäne beitreten, also beispielsweise auch auf Freigaben von Windows-Rechnern zugreifen. - Ubuntu als Windows-Server
Sie können Ubuntu in einen Datei-Server verwandeln, auf den alle Rechner im Netz zugreifen können. Zugleich kümmert dieser sich auch um die Zugriffsrechte, das heißt, Samba erlaubt das Setzen von Zugriffsrechten, so dass einzelne Verzeichnisse gezielt für bestimmte Nutzer freigegeben oder gesperrt werden können. Sie erfahren mehr zur Einrichtung eines solchen Servers in Abschnitt 20.1.2, »Ubuntu als Windows-Server«.
20.1.1 Auf Windows-Rechner zugreifen
Mit einfachen Bordmitteln gelingt es jedem Laien im Handumdrehen, auf eine Windows-Freigabe (das wäre zum Beispiel der Ordner Gemeinsame Dateien) zuzugreifen. Unter GNOME verwenden Sie hierzu Nautilus.
Nautilus als Netzwerk-Browser
Im Nautilus-Browser finden Sie über die Seitenleiste immer das Icon Netzwerk durchsuchen • Windows-Netzwerk. Sollte sich nun im lokalen Netzwerk ein Windows-Rechner befinden, lassen sich per Doppelklick auf das Icon die Arbeitsgruppe (hier WORKGROUP) und danach die Rechner anzeigen, die zur entsprechenden Windows-Arbeitsgruppe gehören. Besitzen diese Rechner freigegebene Verzeichnisse (siehe Abbildung 20.1), so können Sie in diese navigieren und Dateien zwischen diesen Verzeichnissen und einer anderen Nautilus-Instanz hin und her kopieren.
Abbildung 20.1 Melden Sie sich mit Ihrem Windows-Account an.
Direkte Verbindung zu Windows-Rechnern
Falls das grafische Browsen nicht auf Anhieb funktioniert, starten Sie Nautilus und wählen im Menü Datei • Mit Server verbinden.... Hier geben Sie die IP-Adresse des gewünschten Windows-Servers sowie als Dienstetyp Windowsfreigabe an. Nun sollten die Verzeichnisse des entsprechenden Rechners in Nautilus erscheinen.
Geschützte Verzeichnisse
Beachten Sie bitte: Für viele Verzeichnisse benötigen Sie eine Login-Kennung sowie ein Passwort, um auf nichtöffentliche Ordner zugreifen zu können. In diesem Fall müssen Sie auf der Windows-Maschine über einen entsprechenden Account verfügen, mit dem Sie sich nun auch in Nautilus anmelden (siehe Abbildung 20.1). In der Regel sollten Sie aber Zugriff auf das Verzeichnis Öffentlich (unter Linux sichtbar als Public) erhalten.
Tipp 270: Browsen von Samba-Freigaben unter KDE |
Auch unter KDE lässt sich mit Hilfe des Konquerors leicht ein Netz nach Windows-Freigaben durchforsten. Starten Sie den Konqueror, und geben Sie in der Adresszeile smb:/ ein. Dadurch wird das angeschlossene Netz nach Windows-Rechnern durchsucht. Nun können Sie per Mausklick auf die Rechner beispielsweise auf die freigegebenen Ressourcen zugreifen. Das Hin- und Herkopieren erfolgt einfach durch Drag & Drop zwischen zwei Konqueror-Fenstern. |
Manuelles Einbinden einer Windows-Freigabe
Wenn Sie nur den Rechnernamen oder seine IP-Adresse kennen, können Sie sich die freigegebenen Ressourcen über den Befehl smbclient wie folgt anzeigen lassen:
smbclient –U <Benutzer> –L 192.168.0.103
Password:
Sharename Type Comment
IPC$ IPC Remote-IPC
Shared Docs Disk
tausch Disk
In diesem Fall finden Sie den allgemein zugänglichen Ordner Shared Docs sowie ein manuell freigegebenes Verzeichnis namens tausch auf dem Windows-Rechner.
Zugriff für alle Nutzer
Soll ein freigegebenes Verzeichnis von jedem beliebigen Benutzer eingebunden werden können, so ist ein entsprechender Eintrag in der Systemdatei /etc/fstab erforderlich. Installieren Sie hierzu zunächst das notwendige Paket (sudo apt-get install smbfs). Ein Beispiel eines Eintrags in die Datei fstab sieht folgendermaßen aus:
#Auszug aus /etc/fstab
//<Rechnername>/<Freigabename> /media/<Freigabename>
smbfs auto,username=user,password=pass 0 0
Nun kann jeder Benutzer die entsprechende Freigabe auf ein (zuvor noch zu erstellendes) Verzeichnis
sudo mkdir /media/<Freigabename>
einbinden. Im Beispiel sind natürlich user und pass durch den entsprechenden Benutzernamen und dessen Passwort zu ersetzen.
20.1.2 Ubuntu als Windows-Server
Ihren großen Siegeszug hat die Samba-Software als Server für Windows-Clients erfahren. Um einen eigenen Datei- oder Druckerserver aufzusetzen, benötigen Sie die folgenden Pakete: samba und smbfs. Zunächst sollten Sie ein Verzeichnis zum Tauschen explizit erstellen und freigeben. Hier ist dies der Ordner /media/server:
sudo mkdir /media/server
sudo chmod ugo+rw /media/server
Verzeichnisse les- und schreibbar machen
Durch den letzten Befehl wurde das Verzeichnis /media/server als les- und schreibbar für alle definiert. Für komplexere Rechtevergaben konsultieren Sie die Befehlsreferenz.
Nun gilt es, das neu erstellte Verzeichnis via Samba in das Windows-Netz zu exportieren. Dazu muss die Datei /etc/samba/smb.conf wie folgt geändert bzw. ergänzt werden:
sudo gedit /etc/samba/smb.conf
# Auszug aus /etc/samba/smb.conf #
[server]
comment = Ubuntu Server Verzeichnis
public = yes
browseable = yes
path = /media/server
writeable = yes
guest ok = no
Die Datei /etc/samba/smb.conf ist die zentrale Datei für alle Einstellungen rund um Samba. Jeder Abschnitt beginnt mit einem in eckigen Klammern gesetzten Namen, dem darunter die Optionen folgen.
Verzeichnisse sicher freigeben
Standardmäßig bietet Samba die freigegebenen Verzeichnisse nur lesbar an. Dies können Sie aber durch Setzen der Optionen read-only = no oder writeable = yes ändern. Damit nun nicht jeder beliebige Nutzer vollen Zugriff auf diese Verzeichnisse hat, muss der Sicherheitsmodus angepasst werden. Suchen Sie in der Datei folgende Zeilen, und entfernen Sie gegebenenfalls die vorangestellten Kommentarzeichen:
security = share
...
guest account = nobody
Sollten Sie auf Ihrem Windows-Rechner nicht die Standardarbeitsgruppe workgroup definiert haben, so ist eine weitere Änderung in dieser Datei erforderlich:
# Change this to the workgroup/NT-domain name your
# Samba server will part of
workgroup = <Name Ihrer Arbeitsgruppe>
Benutzer
Nun muss noch ein Samba-Passwort gesetzt werden, das sinnvollerweise nicht Ihrem normalen Benutzerpasswort entspricht – ansonsten hat jeder, den Sie dazu einladen, sich auf Ihren Samba-Freigaben umzusehen, vollen Zugriff auf Ihren Rechner.
Übrigens muss <user> nicht Ihrem Benutzernamen entsprechen, Samba hat eine vom übrigen System getrennte Benutzerverwaltung. Aus diesem Grund müssen für die betreffenden Accounts Passwörter gesetzt werden. Dies erledigen Sie mit dem Kommando
sudo smbpasswd -a <user>
Welche Samba-Nutzer es gibt, erfahren Sie durch den Befehl pdbedit -L, und ausführliche Informationen zu einem bestimmten Benutzer erhalten Sie durch
pdbedit -Lv <user>
Nach der Änderung der Datei müssen Sie 90 Sekunden warten (die Konfigurationsdatei wird in diesem Intervall neu eingelesen) oder den Samba-Serverdienst neu starten:
sudo initctl restart smbd
smbd start/running, process 4312
Kommt es wie im obigen Beispiel zu keinerlei Fehlermeldungen, so sollte Ihr Samba-Server laufen. Dies lässt sich im Übrigen auch mit ps ax | grep smbd feststellen. Der Befehl testparm erlaubt außerdem das Testen Ihrer Samba-Konfiguration.
Zahlreiche Optionen
Samba kennt mehr als 100 Optionen. Eine Übersicht erhalten Sie in der manpage (man samba. Die dort aufgeführten Optionen unterscheiden sich nach globalen (G) und freigabenspezifischen (S) Optionen.
Wenn Sie einen Parameter mehrfach setzen, verwendet Samba immer den zuletzt gesetzten Wert. Globale Parameter sollten Sie daher tatsächlich nur im Abschnitt [global] setzen. Ansonsten kann es passieren, dass Sie globale Optionen erlauben, die in einem späteren Abschnitt durch eine entgegengesetzte Option widerrufen werden.
Zugriff auf den Ubuntu-Server
Nach der eben beschriebenen Einrichtung können Sie versuchen, den Samba-Server von einem Windows-Rechner aus zu erreichen (siehe Abbildung 20.2). Zu diesem Zweck durchsuchen Sie einfach das Netzwerk (Explorer • Netzwerk). Alternativ können Sie auch mit dem Windows Explorer nach dem Ubuntu-Server suchen. Dafür mussIhnen dessen IP-Adresse bekannt sein. Das Anklicken des entsprechenden Computer-Icons gibt nun den Blick auf den soeben erstellten Share frei, sofern Sie das ebenfalls soeben gesetzte Passwort eingeben. Testweise können Sie darin ein Verzeichnis anlegen.
Abbildung 20.2 »Samba«-Share unter Windows
Aufsetzen eines Printservers
Auch Drucker können mit Samba vom Ubuntu-Rechner exportiert werden. Dazu editieren Sie die Samba-Konfigurationsdatei folgendermaßen:
# Auszug aus /etc/samba/smb.conf #
printcap name = cups
load printers = yes
printing = cups
printer admin = @users
use client driver = yes
...
[printers]
comment = All Printers
path = /var/tmp
create mask = 0600
printable = Yes
guest ok = yes
browseable = No
print command = lpr-cups -P %p -o raw %s -r
Starten Sie Samba neu, und prüfen Sie im Windows Explorer, ob der Drucker als Freigabe angezeigt wird. Nun müssen Sie noch den Netzwerkdrucker unter Windows integrieren. Rufen Sie dazu Systemsteuerung • Drucker auf und dort den Unterpunkt Druckerhinzufügen. In dem Assistenten wählen Sie dann die Option Netzwerkdrucker aus. Hier wählen Sie den Drucker aus, den Sie freigeben wollen (Abbildung 20.3).
Bei der oben vorgenommenen Konfiguration müssen Sie schließlich auf dem WindowsRechner noch die Druckertreiber des exportierten Druckers installieren. Danach können Sie vom Client aus drucken.
Abbildung 20.3 Einen »Samba«-Drucker unter Windows nutzen
Tipp 271: Mit Windows Samba tanzen |
Sie benötigen folgende Kommandos, um mit der Shell auf Windows-Dateien zuzugreifen: |
mount -t smbfs -o <username=myname,uid=my_uid,gid=my_gid> <//server/share /mnt/smb> |
Die Samba-Netzwerk-Nachbarschaft kann folgendermaßen angezeigt werden: |
smbclient -N -L <eigene_IP_Adresse> | less |
Administration über SWAT
Wenn Sie es leid sind, Samba mühsam im Editor zu konfigurieren, installieren Sie am besten das Browser-Frontend SWAT, das Samba Web Administration Tool. Um SWAT nutzen zu können, werden die Pakete swat und openbsd-inetd benötigt.
Normalerweise ist keine weitere Nacharbeit nötig, die Dateien /etc/services und /etc/inetd.conf werden bei der Installation der Pakete konfiguriert. Sollten dennoch Probleme auftauchen, prüfen Sie, ob folgende Einträge vorhanden sind:
sudo gedit /etc/services
# Auszug aus /etc/services #
swat 901/tcp # swat
sudo gedit /etc/inetd.conf
# Auszug aus /etc/inetd.conf #
swat stream tcp nowait.400 root /usr/sbin/swat swat
Im obigen Beispiel wurde der Zugriff auf SWAT auf den lokalen PC beschränkt. Wünschen Sie einen Remote-Zugriff, so müssen Sie den Punkt only_from entsprechend modifizieren.
Abbildung 20.4 »Samba«-Administration mit »SWAT«
Danach können Sie mit Hilfe des Portscanners nmap zunächst testen, ob der Dienst SWAT gestartet wurde und damit ein Port offen ist. nmap müssen Sie zunächst via sudo apt-get install nmap installieren.
Ein Aufruf von nmap localhost führt dann zu einer Ausgabe ähnlich wie dieser:
Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-19 16:10 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00063s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
53/tcp open domain
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
901/tcp open samba-swat
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
Wie Sie im unteren Abschnitt sehen, ist SWAT unter dem offenen Port 901 erreichbar.
Root-Rechte erlangen
War der Test erfolgreich, so können Sie in einem beliebigen Browser die Zeile localhost:901 eingeben. Nach dem Einloggen mit der Kombination Standardbenutzer-Account und -Passwort landen Sie dann im SWAT-Konfigurationsmenü.
Für Standardbenutzer ist es jedoch nur möglich, sich den Samba-Status sowie die Freigaben anzuschauen, denn Samba erwartet den Benutzer Root. Da der Root-Account unter Ubuntu standardmäßig deaktiviert ist und dies aus verschiedenen Gründen auch besser so bleiben sollte, müssen wir uns anders behelfen.
sudo chown root:admin /etc/samba/smb.conf
sudo chmod 664 /etc/samba/smb.conf
Auf diese Weise erlauben wir lokalen Benutzern die Administrationsrechte haben, die Datei /etc/samba/smb.conf zu editieren. Sie können sich nun erneut einloggen und im SWAT-Konfigurationsmenü auch Shares entsprechend verwalten (siehe Abbildung 20.4).
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.