Filetransfer

Aus UUGRN

Unter einem Filetransfer (Datei-Übertragung) versteht man einen Mechanismus, um eine oder mehrere Dateien über eine Netzwerkverbindung zu übertragen. Je nach Anwendungsfall und vorhandenen Tools sind verschiedene Methoden sinnvoll oder machbar. Dieser Artikel soll gebräuchliche Methoden kurz vorstellen und typische Einsatzgebiete zeigen.

public

Anon-FTP
Das wohl bekannteste und verbreitetste TCP-Protokoll speziell zum Übertragen von Dateien.
Anonym-FTP bedeutet, dass ein FTP-Server Dateien und Verzeichnisse für den öffentlichen
Download anbietet, vereinzelt gibt es auch public-Upload ("incoming").
Wird heute verwendet, um z.B. Softwarearchive nach Verzeichnissen sortiert anzubieten und
wird von nahezu jedem TCP/IP-fähigen System unterstützt.
Login erfolgt idR mit User:ftp und Passwort:ftp (oder einer Mailadresse).
FTP wird leider auch noch ziemlich oft für Benutzer-authentifizierte Verbindungen verwendet.
FTP bietet von sich aus keinen Schutz gegen das Ausspähen und/oder Manipulieren von Passwörtern und Daten.
HTTP
HTTP ist speziell auf die Bedürfnisse von Web-Servern zugeschnitten.
Anders als bei FTP haben Dateien einen content-type, der dem Client sagt,
um welche Art von Datei es sind handelt. Upload (PUT) ist zwar möglich,
spielt aber in der Praxis keine Rolle.
public-rsync
Wird ähnlich wie Anon-FTP für Software-Archive verwendet. rsync bietet die Möglichkeit,
effizient einen sog. Mirror abzugleichen, indem nur die geänderten Dateien übertragen werden müssen.
SAFT / sendfile
Das Simple Asyncronous File Transfer Protokoll dient zum Verschicken von Dateien
ähnlich wie E-Mail an einen bestimmten Empfänger. Als Client kommt hierbei z.B. sendfile
zum Einsatz. Auf beiden Systemen muss hierbei ein entsprechender daemon laufen, der den
Dateitransfer im Hintergrund druchführt bzw. eingehende Dateitransfers annimmt und verarbeitet.
Dieses Protokoll ist leider recht wenig verbreitet.
tftp
Trivial File Transfer Protocol , ein altes und einfaches Filetransfer Protokoll.
im Gegensatz zu FTP / SFTP fehlen hier Authentifizierung ( Username, Passwort ),
Verschlüsselung, Wechsel in andere Verzeichnisse usw. TFTP läuft über UDP.
Übertragen werden Pakete mit 512 Byte Daten, das Ende des Transfers wird einfach durch
ein kürzeres Paket gekennzeichnet.
Wegen seiner Einfachheit wird TFTP oft genommen für Download von Firmware ( Netzwerksboot )
und Up- / Download von Konfigurationsdateien.


OpenSource per P2P
Ideensammlung und Brainstorming für Peer-to-Peer Filetransfer speziell für OpenSource Projekte.

gesichert/privat

scp
Secure Copy ist eine Funktion im SSH-Protokoll und dient zum Kopieren von Dateien von/zu Hosts via SSH.
scp löst das historische rcp ab.
sftp
Secure File Transfer Protocol ist ein Subsystem von SSH und stellt einen FTP-ähnlichen Client dar.
SSH-rsync
rsync ist von sich aus in der Lage, über rsh oder SSH eine Verbindung zu einem
anderen System aufzubauen und Dateien mit dem Remote-System abzugleichen.
Hierzu ist es erforderlich, dass rsync auf dem Zielsystem installiert ist und ausgeführt werden kann.
SSH mit tar/dump+restore/cpio
SSH kann als "Netzwerk-pipe" verwendet werden. Benötigt wird ein Tool, welches Dateien einpackt
und in einen Datenstrom verwandelt und auf stdout ausgeben kann und auf der Gegenstelle das
entsprechende Gegenstück, welches ein Archiv als Datenstrom per stdin empfängt und die Dateien daraus
in das Dateisystem extrahiert. Schematisch sieht das so aus: archiver | ssh user@host "de-archiver"
Vorteil des Methode ist, dass man gleich mehrere Dateien auf einmal übertragen kann.
Siehe dazu:
SSH-dump
dump kann von sich aus Backup-Archive via SSH oder RSH auf ein entferntes System ablegen.
SSSFS
Ermöglicht es dem User ein per SSH zugängliches Filesystem zu mounten. (Siehe Dateisysteme)

Netzwerk-Dateisysteme

Ein Netzwerk-Dateisystem ermöglicht eine dauerhafte Verbindung zwischen 2 Systemen. Zum Übertragen von Dateien können dann normale Kopierprogramme verwendet werden, man kann allerdings auch direkt mit Anwendungsprogrammen auf Dateien zugreifen.

NFS
Network File System, ist in der Unix-Welt relativ gebräuchlich
SMB
SMB (Server Message Block) / CIFS (Common Internet File System) ist in der Windows-Welt
verbreitet und wird in der Unix-Welt durch Samba implementiert (als Server).
Viele Unix-Systeme unterstützen zugleich auch das mounten von
SMB-Dateisystemen als Client. (mount_smbfs, smbmount, ... )
smbmount gibt es nicht für NetBSD. ( FeeeBSD, OpenBSD ? )
Hier heißt das Tool sharity-light , beschrieben als "SMB to NFS protocol converter"
Die Syntax zum mounten einer SMB-share ist ähnlich dem smbmount
sharity-light Version 1.2 ist frei verfügbar für NetBSD, aktuellere Versione ( 3.0 und höher ) gibt es für FreeBSD, OpenBSD und Linux als eingeschränkte Trialversion oder gegen eine Lizenzgebühr bei Objective Development Software GmbH
Appletalk
Aus der Mac-Welt ...
AFS
Das Andrew File System wurde entworfen von der Carnegie Mellon University, dann entwickelt und supported von der Transarc Corporation, die jetzt zu IBM gehört. Von dort wurde ein Zweig an die Open Source Community freigegeben.
AFS kann sowohl lokal im Intranet als auch weltweit über das Internet genutzt werden.
AFS ist ein verteiltes Filesystem, d.h. der User mounted kein Filesystem auf einem Server sondern in einer AFS-Zelle. Solch eine Zelle kann aus vielen Servern bestehen. Auf welchem der Server eine Datei oder ein Verzeichnis abgelegt wurde ist für den User nicht ersichtlich.
der Verzeichnispfad ist /afs/$AFSCELL/<und hier sind die userdaten> , als $AFSCELL wird dabei meistens der DNS-Domainname genommen.
Die User-Authentifizierung erfolgt über Kerberos
AFS ist für verschiedene Betriebssysteme verfügbar
weitere Infos, Downloads, Mailinglisten usw. gibt es bei
OpenAFS.org
ARLA Project , eine weitere AFS Implementierung
GRAND.CENTRAL.ORG
DECnet
ein proprietäres Netzwerksprotokoll der Firma DEC / Digital, über das ( unter anderem ) sämtliche Datei-Transaktionen liefen. Beim Betriebssystem VMS wurde konsequent alles als Netzwerksschnittstelle implmentiert und so lautet die Ansprache einer Datei auf einem anderen System ganz einfach rechnername::[verzeichnisname]dateiname . ( die eckigen Klammern können auch alternativ durch spitze Klammern < > ersetzt werden ). Die 2 Doppelpunkte :: trennen dabei den Rechnernamen vom Rest.
Damit konnten sämtliche Dateioperationen wie z.B. Copy, Edit oder Delete durchgeführt werden. Es mußten lediglich die entsprechenden Zugriffsrechte der User auf dem Remote-Rechner bestehen.
Mount-Operationen wurden dazu nicht gebraucht.
SSHFS
Das SSH-Filesystem bietet die Möglichkeit per SSH zugängliche Filesysteme zu mounten. Auf dem Rechner auf dem der Mountpoint liegt muss FUSE-SSHFS installiert sein, sowie ein Kernelmodul muss geladen werden. Der Mountbefehl lautet dann einfach: sshfs user@host:/path/ Mountpoint/

Pseudo Netzwerk-Dateisysteme

Manche Desktopumgebungen und Oberflächen bieten einen integrierten Support für verschiedene Netzwerk-Methoden an.

Midnight Commander

Netzwerkverbindungen in Midnight Commander

Der Midnight Commander ist ein Terminal-Dateimanager und ist ein Ur-Enkel des DOS-Dateimanagers N*rton C*mm*nder. Der mc kennt folgende Pseudo-Netzwerk-Dateisysteme:

KDE

Screenshot des Assistenten zur Erstellung von Netzwerkverbindungen in KDE

Das K Desktop Environment bietet integrierten Support für

GNOME

FIXME