.: linux - linux im netzwerk :.
 
abyter.de \\ workshops

Einführung
Im Workshop in dem ich Linux vorgestellt habe, habe ich bereits erwähnt, dass Linux ein sehr gutes Netzwerkbetriebssystem ist. Da es vom professionellen Netzwerkbetriebssystem UNIX abstammt, hat es viele von den guten Eigenschaften von UNIX geerbt.
Auf diese guten Eigenschaften möchte ich nun im Einzelnen detailliert eingehen.

NFS - die Linuxfreigabe
Auch unter Linux gibt es Freigaben. Es wird - im Gegensatz zu Windows - NFS (Network File System) eingesetzt um anderen Linuxrechnern Daten anzubieten. Unter Linux gibt es jedoch einen Unterschied ob Sie nur auf die Daten zugreifen wollen, oder auch selbst Daten anbieten wollen. Im zweiten Fall benötigen Sie den NFS-Server-Dienst, diesen werde ich später genau behandeln. In diesem Abschnitt werde ich jedoch zuerst einmal nur auf den Zugriff auf NFS-Ressourcen eingehen.
Bietet der andere Linuxrechner die NFS-Server-Freigabe an und ist erreichbar, so können Sie die Freigabe einfach mit folgendem Kommando mounten:
mount -t nfs computer:/freigabe /linux-verzeichnis

computer und freigabe sind selbstverständlich durch die gewünschten Werte auszutauschen und linux-verzeichnis müssten Sie vorher anlegen. Statt des Rechnernamens können Sie auch dessen IP-Adresse eingeben, also z.B. 192.168.0.33:/freigabe.

Linux und die Windows-Freigaben
Viele Benutzer haben inzwischen mehrere Computer zu Hause. Auf den meisten läuft Windows, manche haben sich auch ein Netzwerk aufgebaut. Diese Benutzer werden sich freuen, wenn sie jetzt hören, dass es möglich ist von Linux aus auf Windows-Freigaben zuzugreifen. Hier wird das SMB-Protokoll (Server Message Block)
Doch im Auslieferungszustand ist Linux noch nicht in der Lage auf Windows-Freigaben zuzugreifen. Den Zugriff ermöglicht erst der Samba-Client. Um den Samba-Client zu aktivieren und zu konfigurieren, gehen Sie in YaST, wechseln Sie dort zu der Rubrik Netzwerkdienste und klicken Sie Eintrag Samba-Client an. Es öffnet sich der Assistent zum Einrichten des Samba-Clients. Dort müssen Sie nur noch Ihre Arbeitsgruppe oder Domain eingeben. Ist der Zugriff zusätzlich per Passwort (bei Domänen meistens der Fall), so müssen Sie das kleine Häkchen bei Zusatzinformationen eingeben setzen und die erforderlichen Informationen ausfüllen.
Nun kann mit dem gewöhnlichen KDE-Dateibrowser Konqueror auf Windowsfreigaben zugegriffen werden. Geben Sie einfach smb:/ ein um alle Freigaben, die sich im Netzwerk befinden anzeigen zu lassen. Wenn Sie auf eine bestimmte Freigabe zugreifen möchten, so geben Sie den Pfad smb://computer/freigabe (computer und freigabe sind selbstverständlich durch die gewünschten Werte auszutauschen).
Handelt es sich um ein Verzeichnis, auf das Sie des öfteren zugreifen wollen, so können Sie es auch in den Verzeichnisbaum einmounten. Geben Sie dazu den Befehl:
mount -t smbfs //computer/freigabe /linux-verzeichnis

ein. Nun wird das Verzeichnis im Verzeichnisbaum im Verzeichnis linux-verzeichnis (das müssten Sie vorher anlegen) eingehängt und ist von dort verfügbar. Ist für den Zugriff auf die Freigabe ein Benutzername notwendig, so werden diese mit folgendem abgewandelten Befehl berücksichtigt:
mount -t smbfs -o username=name //computer/freigabe /linux-verzeichnis

name ist dann der Benutzername. Das benötigte Passwort wird in beiden Fällen automatisch angefordert. Wollen Sie das Passwort speichern, so ändern Sie den Befehl folgendermaßen ab:
mount -t smbfs -o username=name, password=pw //computer/freigabe /linux-verzeichnis

SSH - der sichere Zugriff auf Linux-Rechner
Gehen Ihre Bedürfnisse über den Zugriff auf Ressourcen hinaus, möchten Sie also auf einen entfernten Linuxrechner zugreifen als säßen Sie davor, dann müssen Sie sich SSH (Secure Shell)ansehen. Damit können Sie verschlüsselt auf einen fernen PC zugreifen, von dort Daten kopieren, die Daten herunterladen und Programme auf dem Linuxrechner starten. Auf dem anderen Linuxrechner muss dafür natürlich ein SSH-Server laufen.
Der Zugriff über SSH läuft über die Shell von Linux, wenn man keine zusätzlichen Programme einsetzen will. Das Kommando um über SSH auf einen anderen Linux-Rechner zuzugreifen lautet: ssh rechnername
Bei dem ersten Zugriff wird gefragt, ob Sie die Verbindung zum dem anderen Rechner wirklich aufbauen wollen, da erst noch unbekannt ist. Handelt es sich um den gewünschten Linuxrechner, so können Sie beruhigt mit yes dem Rechner vertrauen. Wurde die Nachfrage mit yes beantwortet, so wird der Rechner bei den known_hosts gespeichert und beim nächsten Verbindungsaufbau kommt keine Nachfrage mehr.
Falls Sie auf dem anderen Rechner eine Benutzernamen benötigen, müssen Sie das Kommando folgendermaßen abändern:
ssh -l benutzername rechnername

Wenn Sie mit der Arbeit fertig sind, sollten Sie mit exit die SSH-Verbindung wieder schließen.

SSH und grafische Oberfläche X
Wenn Sie dann nun angemeldet sind, so können Sie beliebige Befehle wie ls, rm, mv, usw. nutzen.
Mit einer Option können Sie aber auch grafische Linux-Programme starten. Ist dies erwünscht, so lautet das Kommando folgendermaßen:
ssh -X rechnername

Das über SSH gestartete Programm läuft auf dem Host, wird aber auf Ihrem Rechner angezeigt und nimmt auch von dort Kommandos entgegen. Sie werden eigentlich nicht merken, dass Sie es auf einem fremden Computer ausführen. Das geht so gut, da die gesamte grafische Oberfläche X auf Ihren Computer übertragen wird. Aus diesem Grund macht das Ausführen von X-Programmen über SSH nur bei einer performanten Netzwerkleitung wirklich Sinn, ansonsten wird schon das Maus bewegen zur Qual. Eine solche Session ist folgendermaßen aufgebaut:
user@Client$ ssh -X rechnername
user@Host's password:*******
user@Host:kat&

Hier wurde ein Editor gestartet (mit & wird er im Hintergrund geladen). Schön zu sehen ist auch, dass sich der Prompt ändert. Beim ersten Kommando waren Sie noch auf dem eigenen Rechner, bei den folgenden Zeilen ist zu sehen, dass Sie auf dem anderen Rechner angemeldet sind und dort Kommandos ausführen.
Wenn Sie mit der Arbeit fertig sind, sollten Sie mit exit die SSH-Verbindung wieder schließen.
Wer einen grafischen SSH-Client für Windows und Linux sucht, der sollte mal hier vorbeischauen (ich biete den Download der privaten Windowsversion an).

SCP - sicheres Kopieren
Das Kommando cp für kopieren ist allen Nutzern der Shell bekannt. Mit scp kann eine Datei über eine sichere Leitung kopiert werden. scp setzt dabei auf SSH, eine vorherige SSH-Anmeldung ist jedoch nicht erforderlich.
Folgendes Kommando startet das sichere Kopieren:
scp username@host clientdateiname hostdateiname

username muss nicht angegeben werden, wenn der Benutzername des Clients und des Hosts übereinstimmen, der clientdateiname darf auch ein Verzeichnis sein (mit der Option -r werden auch die Unterverzeichnisse miteinbezogen) und der hostdateiname muss nicht angegeben werden, wenn die Datei später auf dem Host genauso heißen soll; man kann auch noch gleich das Verzeichnis bei hostdateiname mitangeben in das hostdateiname kopiert wird.

rsync
Bereits im Workshop Linux-Shell habe ich Ihnen dieses tolle Tool ans Herz gelegt. Damals hatte ich schon erwähnt, dass rsync auch Netzwerk-tauglich ist. rsync setzt für die Übertragung das sichere und mittlerweile Ihnen wohlbekannte ssh-Protokoll ein. Für den Einsatz von rsync im Netzwerk unter Nutzung des ssh-Übertragungsprotokolls muss der Hostrechner den SSH-Server aktiviert haben und diesen so konfiguriert haben, dass ein SSH-Login möglich ist.
Der gewöhnliche rsync Aufruf ist folgendermaßen für den Einsatz im Netzwerk unter Benutzung von SSH zu ergänzen:
rsync -e ssh -a verz1 rechnername:verz2

Natürlich funktionieren die Optionen die schon beim lokalen Rechner funktioniert haben auch im Netzwerk. So werden mit der Option --delete Dateien die in verz1 gelöscht wurden ebenfalls in verz2 gelöscht. Mit der Option -v erhalten Sie ein ausführliches Protokoll was geändert und gelöscht wurde. Bei langsamen Netzwerkverbindungen kann auch noch die Option -z eingesetzt werden, die bewirkt, dass die Daten die über die Verbindung gesendet werden komprimiert werden.

Drucken im Netzwerk (Server)
Eine sehr komfortable Funktion ist das Drucker-Browsing, bei der sich alle im lokalen Netzwerk verbundenen Rechner mitteilen welche Drucker angeschlossen sind. Leider ist diese Option bei den meisten Distributionen nicht standardmäßig aktiviert. Um diese Option zu aktivieren, müssen Sie folgende Zeile in /etc/cups/cupsd.conf einfügen/ändern:
Browsing On
BrowseAdress @LOCAL

Die BrowseAdress-Einstellung bewirkt, dass die Druckinformationen an alle lokalen Netzwerkschnittstellen gesendet werden und nicht etwa auch ins Internet.
Anschließend müssen Sie den CUPS-Server neustarten, dafür müssen Sie als root folgendes Kommando ausführen:
/etc/init.d/cups restart

Es lassen sich auch die Zugriffsrechte der einzelnen Rechner auf den Drucker definieren. Der Zugriff auf die verschiedenen CUPS-Komponenten wird durch <Location xxx>-Einträge in /etc/cups/cupsd.conf gesteuert. Folgende Einträge sind möglich:

<Location /> Defaulteinstellung für alle Komponenten
<Location /admin> Adminrechte
<Location /jobs> Kontrolle über Druckjobs
<Location /printers> Zugriff auf alle Drucker (Default)
<Location /printers/name> Zugriff auf einen bestimmten Drucker

Eine Beispielkonfiguration könnte so aussehen:

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 127.0.0.2
</Location>

</Location /printers>
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 127.0.0.2
Allow From 192.168.0.*
</Location>

<Location /jobs>
AuthType Basic
AuthClass User
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 127.0.0.2
Allow From 192.168.0.*
</Location>

<Location /admin>
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 127.0.0.2
Allow From 192.168.0.*
</Location>

In diesem Beispiel ist nur vom Rechner localhost ein Zugriff auf alle CUPS-Funktionen möglich. Aus dem lokalen Netzwerk ist außerdem der Zugriff auf alle Drucker, auf die Druckjobkontrolle und auf die Administrationsfunktionen erlaubt. Für die Jobkontrolle ist allerdings ein Login erforderlich (AuthType Basic und AuthClass User), für die Administriation ist sogar ein root-Login (AuthType System) nötig. Unter SuSe ist die IP-Adresse des localhosts neben der üblichen 127.0.0.1 auch 127.0.0.2

Drucken im Netzwerk (Client)
Jetzt könnte man - wenn man die Schritte im vorherigen Abschnitt durchgearbeitet hat - im Netzwerk drucken, schließlich läuft der Server schon. Nun muss man nur noch die Clients, denen man die Druckdienste anbieten will, so konfiguriert werden, dass das Drucken auch wirklich möglich ist.
Handelt es sich bei Server und Client um einen Linux-Rechner auf dem CUPS läuft, so ist der Konfigurationsaufwand gleich null. Der Client-Rechner muss überhaupt nichts einstellen und kann einfach den Drucker verwenden, als wäre er direkt angeschlossen. CUPS trägt automatisch alle im Netzwerk sichtbaren Drucker in die Druckerliste ein. Will man diese Liste einsehen, so muss man in der bash lpstat -v eingeben.
Handelt es sich nicht um einen CUPS-kompatiblen Drucker, so muss man den Weg über das KDE-Kontrollzentrum gehen, dort muss die IP-Adresse des Netzwerkdruckers (bzw. die IP-Adresse des Rechners an dem der Drucker angeschlossen ist) eingegeben werden, bei Windows-Druckern evtl. auch noch der Benutzername und das Passwort.
Bei Windows-Druckern müssen Sie jedoch zuvor noch die Samba-Client-Tools installieren bzw. aktivieren (YaST/Netwerkdienste).

Related Workshops: Linux - Einführung \\ Linux - Installation \\ Arbeiten mit Linux \\ Brennen mit Linux \\ Emacs \\ Linux-Shell \\ Linux-Befehle
Related Files:
SSH-Client für Win

<Zurück

© by www.abyter.de (Martin Monshausen)