File Transfer Protocol
Modèle:Vorlage:IPStack Das File Transfer Protocol (engl. für "Dateiübertragungsverfahren", kurz FTP), ist ein in RFC 959 spezifiziertes Netzwerkprotokoll zur Dateiübertragung über TCP/IP-Netzwerke. FTP ist in der Anwendungsschicht des TCP/IP Protokollstapels angesiedelt. Es wird benutzt, um Dateien vom Server zum Client (Download), vom Client zum Server (Upload) oder clientgesteuert zwischen zwei Servern zu übertragen. Neben dem File Transfer Protocol (FTP) gibt es auch noch das IBM Transfer Protocol welches die Verbindung von PC zu Mainframe Umgebungen ermöglicht.
Anders als z.B. HTTP benutzt FTP zur Kommunikation mehr als eine Verbindung: Zunächst wird zum Port 21 des Servers, dem Control Port, eine Verbindung zur Authentifizierung und Befehlsübertragung aufgebaut. Hier reagiert der Server auf jeden Befehl des Clients mit einem Statuscode, oft mit einem angehängten, erklärenden Text. Zur eigentlichen Datenübertragung wird dann im Bedarfsfall eine separate Verbindung initiiert. FTP kennt dazu zwei Modi:
- Beim Active Mode baut der Server von seinem Port 20, dem Data Port, eine Datenverbindung zu einem vom Client gewählten Endpunkt auf. Dieser Endpunkt ist typischerweise ein Port des Clients der jenseits 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den Passive Mode geschaltet wurde, also auf eine Verbindung wartet (sogenanntes FXP).
Die Kommunikation mit Befehlen erfolgt auf dem Port 21. Man spricht auch von der Steuerung "Out of Band". Somit bleibt es möglich, dass während der Datenübertragung die Partner noch immer miteinander kommunizieren können.
- Beim Passive Mode baut der Client eine Datenverbindung zum vom Server gewünschten Port auf. Hier wird typischerweise von beiden Seiten ein Port jenseits 1023 benutzt.
Diese Technik wird eingesetzt, wenn der Client z.B. hinter einem Router sitzt, da ihm nicht eindeutig eine IP-Adresse zugeordnet werden kann.
Viele FTP-Server, vor allem Server von Universitäten und Fachhochschulen, bieten so genanntes Anonymous FTP an. Hier ist zum Einloggen neben den realen Benutzerkonten ein spezielles Benutzerkonto, typischerweise "anonymous", vorgesehen, für das kein (oder ein beliebiges) Passwort angegeben werden muss.
| Inhaltsverzeichnis |
Sicherheit
FTP benutzt sowohl zur Authentifizierung als auch zur Datenübertragung standardmäßig jeweils unverschlüsselte Kanäle. Dadurch lassen sich z. B. übertragene Passwörter sehr leicht abhören; im Fall eines Man-In-The-Middle-Angriffs ist sogar die unbemerkte Veränderung von Dateien während der Übertragung möglich. RFC 2228 stellt allerdings einen Mechanismus bereit, auf den aufbauend ein Standard TLS-gesicherte Authentifizierung und Datenübertragung ermöglichen soll ("FTP-TLS", auch "FTPS").
Die gebräuchlichsten ftp-Kommandos
Die gebräuchlichsten Kommandos des Kommandozeilenprogramms "ftp", welche FTP auf der Client-Seite versteht:
| Befehl | Beschreibung |
|---|---|
| open | Öffnet eine Verbindung zum Server |
| user | Definiert das Benutzerkonto des Benutzers, der sich einloggen will |
| close | Beendet eine Verbindung zum Server. |
| quit | Beendet das FTP-Programm. |
| bye | Beendet eine Verbindung zum Server und beendet das FTP-Programm. |
| cd | Wechselt in ein anderes Verzeichnis auf dem ftp-Server. Statt "\" wie unter DOS und Windows wird als Trennzeichen der normale Schrägstrich "/" (Unix-Konvention) verwendet. |
| lcd | Wechselt in ein anderes Verzeichnis auf dem lokalen System. Wird nur "lcd" eingegeben, gibt das FTP-Programm das aktuelle lokale Verzeichnis aus. |
| list | Fordert das Ergebnis eines Verzeichnisdurchsuchung auf. Es können auch das zu durchsuchende Verzeichnis und ein Suchmuster angegeben werden. |
| asc | Schaltet in den ASCII Übertragungsmodus. Wichtig, wenn auf Server und Client verschiedene Betriebssysteme laufen, die unterschiedliche Organisation von Textzeilen (Windows, Un*x vs. VMS) bzw. Zeilenende-Kennzeichnung (CR, LF, CR+LF) verwenden. |
| bin | Schaltet bei älteren Clients in den binären Übertragungsmodus. Im ASCII Modus werden z.B. ZIP-Archive oder Bilder nicht korrekt übertragen. |
| get | Kopiert eine Datei vom Server auf den lokalen Rechner. Das Kopieren funktioniert aber nur, wenn man Leserechte auf dem Server hat. |
| put | Kopiert eine Datei vom lokalen Rechner auf den Server. Funktioniert aber nur, wenn man Schreibrechte auf dem Server hat. Viele Server stellen für diesen Zweck ein incoming-Verzeichnis zur Verfügung, in das Dateien abgelegt werden dürfen. |
| mget | Kopiert eine oder mehrere Dateien vom Server auf den lokalen Rechner. Vor jedem Kopiervorgang wird die Datei angezeigt und der Anwender gefragt, ob diese übertragen werden soll. Dies kann man mit dem ftp-Kommando "prompt" ab- und anschalten. Das Kopieren funktioniert aber nur, wenn man Leserechte auf dem Server hat. |
| mput | Kopiert eine oder mehrere Dateien vom lokalen Rechner auf den Server. Vor jedem Kopiervorgang wird die Datei angezeigt und der Anwender gefragt, ob diese übertragen werden soll. Dies kann man mit dem ftp-Kommando "prompt" ab- und anschalten.
Das Kopieren funktioniert aber nur, wenn man Schreibrechte auf dem Server hat. Viele Server stellen für diesen Zweck ein incoming-Verzeichnis zur Verfügung, in das Dateien abgelegt werden dürfen. |
| pass | Schaltet zwischen Active Mode und Passive Mode um. |
| prompt | Damit kann man die Rückfragen bei dem Kommandos mget und mput an- oder abschalten. |
| pwd | Gibt das aktuelle Verzeichnis auf dem ftp-Server aus |
| mkdir | Erzeugt ein neues Verzeichnis auf dem Server |
| delete | Löscht eine Datei auf dem Server. |
| mdelete | Löscht mehrere Dateien über eine Maske |
| rename | Mit dieser Funktion können Dateien und Verzeichnisse auf dem Server umbenannt werden. Abkürzung: ren |
| ! cmd | Führt den Befehl cmd auf dem lokalen Rechner aus.
Beispiel: ! pwd gibt das aktuelle lokale Verzeichnis aus |
| retr | Eine Datei wird vom Server kopiert. |
| cwd | Wechselt zu einem Verzeichnis. |
| rest | Transfer neu starten. |
| stor | Datei zum Server kopieren. |
Beispiel
Eine Beispielsitzung, die Anonymous FTP und Passive Mode nutzt:
220 FTP.FU-Berlin.DE ready. USER anonymous 331 Anonymous login ok, send anything as password. PASS anonymous@foobar.com 230 FTP.FU-Berlin.DE login ok. CWD /doc/jargon 250 CWD command successful. PWD 257 "/doc/jargon" is current directory. PASV 227 Entering Passive Mode (130,133,1,100,202,162). LIST 150 Opening ASCII mode data connection for file list 226 Transfer complete. PASV 227 Entering Passive Mode (130,133,1,100,237,201). RETR jargon.html 150 Opening ASCII mode data connection for jargon.html (2360016 bytes) 226 Transfer complete. QUIT 221 Goodbye.
Siehe auch
- Secure FTP
- Secure Copy (SCP)
- SSH File Transfer Protocol (SFTP)
- Multi-purpose Business Security over IP (MBS/IP)
- Kategorie:FTP-Server und Kategorie:FTP-Client
Weblinks
- RFC 959 - File Transfer Protocol
- RFC 2228 - FTP Security Extensions
- RFC 2640 - Internationalization of the File Transfer Protocol
- Ausführliche Erklärung von Aktiv und Passiv FTP (englisch) bzw. dt. Zusammenfassung des Artikels
- Tutorial: Verbinden mit einem FTP-Server
Dieser Artikel ist Teil des WikiReader Internet. Dies bedeutet, dass der Artikel zusammen mit anderen Artikeln in ein PDF eingearbeitet ist und es dadurch einen gebündelten Überblick über das Thema Internet gibt.
