Netzwerke unter Linux


* Einführung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * Bücher * Netzwerk * OpenOffice * OpenSource * Samba

Netzwerk


© <a href="http://www.fotolia.de/p/29003">Ljupco Smokovski</a> - FOTOLIA
Home
SSH Grundlagen
SSH ohne Passwort nutzen
ARP
ifconfig
Netzmasken
Routing
Mit freundlicher Unterstützung von:

Linux-Kurse und Seminare Linux Kurse
Veranstalter des
Linux-Tag
am Bodensee
2007 und 2008

Kontakt
Haftung
Impressum
Problem Hilfe Startseite


SSH Grundlagen

SSH steht für Secure Shell. Es bezeichnet sowohl ein Programm als auch ein Netzwerkprotokoll. SSH oder OpenSSH ermöglicht eine sichere, verschlüsselte und authentifizierte  Netzwerkverbindung zweier Computer. Mit Hilfe von SSH kann man sich auf einem entfernten Rechner einloggen und dort Programme ausführen. SSH gilt auch im Internet als abhörsicher. Die mittlerweile veralteten Vorgänger rlogin, telnet und rsh, die durch ssh ersetzt wurden, gelten als unsicher, da sie die Benutzernamen und die Passwörter während der Authentifizierung unverschlüsselt übertragen.
SSH benutzt starke kryptographische Algorithmen, d.h. Public-Key Verschlüsselung, um die Sicherheit zu gewährleisten. Bei dem asymetrischen Verschlüsselungsverfahren (wie bei der Public-Kex Verschlüsselung) kommt anders als bei der symetrischen Verschlüsselung zunächst der Empfänger, der 2 verschiedene Schlüssel generiert. Den privaten Schlüssel (private key) behält er selbst, um später zu dekodieren. Den Schlüssel mit dem man kodieren kann, den Public Key, verschickt der Emfänger an den Sender.
In funktionaler Sicht sieht es so aus, dass man 4 Funktionen hat: pub_key1 (von Host 1), priv_key1 (von Host1) und entsprechend die Schlüssel von Host2. Eine Nachricht N wird auf Host1 mit pub_key2(N) verschlüsselt. Diese verschlüsselte Nachricht kann nur mit der Funktion private_key2 entschlüsselt werden, die aber nur der Host2 hat. Also private_key2(pub_key2(N)) = N.
Zurück, also eine Nachricht N' von Host2 nach Host2, geht es analog, also Host2 verschlüsselt N' mit pub_key1(N'). Entschlüsselt wird sie auf Host1 mit private_key1(pub_key1(N').

ssh

Verwendung von SSH

SSH ist nicht nur unter Linux sondern auch in anderen Betriebssystemen, wie z.B. Windows, implementiert.

Prinzipiell dient SSH heute drei Zielen:
  1. Sichere Systemverwaltung, z.B. Verwaltung eines entfernten Servers
  2. Sicherer Dateitransfer, z.B. durch scp
  3. Sicheres Tunneln
Das bedeutet zum Beispiel:
  • Anmelden auf entfernten Rechnern über ein Netzwerk (z.B. Internet)
  • SFTP als sichere Alternative zu FTP
  • scp als sichere Alternative zu rcp
  • mittels SSH kann auch  X11 übertragen werden, womit es möglich ist auch grafische Anwendungen auf einem entfernten Rechner zu starten
  • Tunnelung von beliebigen TCP/IP-Verbindungen. Damit kann auch eine ansonsten unverschlüsselte und damit unsichere VNC-Verbindung gesichert werden.
  • Mittels SSHFS kann das Dateisystem eines entfernten Rechners komplett oder teilweise gemountet werden.

SCP

Secure Copy oder SCP ist ein Möglichkeit Dateien von einem lokalen zu einem entfernten Computer zu übertragen. Während der Übertragung wird die Secure Shell (SSH) benutzt. SCP bezeichnet sowohl ein Programm als auch ein Protokoll. Das scp-Programm ist eine Implementierung des scp-Protokolls.
Die Syntax von scp ähnelt der von cp:

Übertragung vom lokalen (local host) auf den entfernten Rechner (remote host):
scp SourceFile user@host:DirectoryPath/TargetFile

oder
Übertragung vom entfernten Rechner auf den lokalen Rechner:
scp user@host:DirectoryPath/SourceFile TargetFile

Statt einer Datei können auch ganze Verzeichnisse mir der Option "-r" auf diese Art übertragen werden.

rsync

rsync steht ebenso wie scp für ein Protokoll und gleichzeitig für ein Programm, was dieses Protokoll implementiert.
rsync ist ein vorzügliches Tool, um Datenstände auf verschiedenen Rechnern auf demselben Stand zu halten. Das kann zum Beispiel die Situation sein, wenn nach erfolgter Änderung von einzelnen Dateien des lokalen Rechners ein Abgleich mit  dem Datenstand eines entfernten Servers  erfolgen soll. Ein andere Anwendung kann aber auch sein, wenn jemand mit einem Desktop und einem Laptop arbeitet. Dann kann man z.B. vor einer Reise die Daten von Desktop zum Laptop synchronisieren

rsync -ruv -e ssh /home/data/  user@laptop:/data

und anschließend wieder von Laptop zum  Desktop

rsync -ruv -e ssh  user@laptop:/data/ /home/data

Obige Kommandos werden auf dem Desktop abgesetzt. Auf dem Laptop sähe es so aus:
rsync -ruv -e ssh  user@desktop:/data /data  (vor der Abreise)
und
rsync -ruv -e ssh /data/  user@desktop:/home/data

Bitte beachten, dass das Quell-Verzeichnis immer mit abschließendem Schrägstrich "/" geschrieben wird und das Zielverzeichnis immer ohne abschließenden Schrägstrich  "/".

Im obigen Beispiel werden jeweils alle Dateien auf den Zielrechner kopiert, die nur auf dem Quellrechner existieren oder dort ein neueres Datum haben. Sollte eine Datei bereits auf dem Zielrechner mit neuerem Datum existieren, wird diese nicht kopiert. Dies wird durch die Option "-u" (update)  gewährleistet.
Die Option "-a" (archive) hat die gleiche Wirkung wie "-rlptgoD", d.h. rekursiv (-r), unter Beibehaltung von symbolischen Links (-l), den Zugriffsrechten (-p), den Zeiten (-t), den Gruppen-Rechten (-g), des Usersnamen (-o) und den Devices (-D). Allerdings bleiben Hardlinks (-H) nicht erhalten.

Will man nur feststellen, was sich mit einer Ausführung mit rsync ändern würde, dann kann man die Option "-n" benutzen. Man sieht dann die Ausgabe, wie bei der Ausführung, es werde aber keine Daten geändert.

SSHFS unter Linux

Um SSHFS unter Linux einsetzen zu können, benötigt man einen Kernel mit FUSE-Unterstützung (ab 2.6.14), der bei SuSE seit Version 10.1 eingesetzt wird.
Allerdings wird sshfs bei SuSE nicht standardmäßig installiert. Nachdem man sshfs installiert hat, kann man denkbar einfach ein entferntes Dateisystem mounten:

sshfs benutzer@remote_host:Verzeichnis Mount-Punkt

Hat man beispielsweise auf seinem lokalen Rechner ein Verzeichnisse sonne unter dem Rootverzeichnis "/" angelegt und will nun die Rootpartition auf dem Rechner "sonne" mounten, so sieht der Befehl wie folgt aus:

sshfs root@sonne:/ /sonne





© Copyright 2007 - 2010, Bernd Klein mit freundlicher Unterstützung von Bodenseo, Linux-Kurse und Schulungen,
Foto linke Seite (Mann mit Strick und Colt): Foto: © Ljupco Smokovski, fotolia 984022