File Transfer Protocol: Unterschied zwischen den Versionen
K Textersetzung - „Internetprotokollfamilie“ durch „Internetprotokolle“ |
K Textersetzung - „Kurzbeschreibung“ durch „Beschreibung“ |
||
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''' | '''File Transfer Protocol''' (FTP) - Beschreibung | ||
== Beschreibung == | == Beschreibung == | ||
{| class="wikitable float | {| class="wikitable float" | ||
|+ style="background:#C0C0FF; font-size:larger;"| FTP (File Transfer Protocol) | |+ style="background:#C0C0FF; font-size:larger;"| FTP (File Transfer Protocol) | ||
|- | |- | ||
Zeile 21: | Zeile 21: | ||
[[Datei:1st-ftp-southpole-1994.jpg|mini|Foto des ersten FTP Transfers von der [[Amundsen-Scott-Südpolstation|Amundsen-Scott Research Base]] (Südpol 1994)]] | [[Datei:1st-ftp-southpole-1994.jpg|mini|Foto des ersten FTP Transfers von der [[Amundsen-Scott-Südpolstation|Amundsen-Scott Research Base]] (Südpol 1994)]] | ||
[[Datei:AktivesFTP.png|mini|Active Mode (Aktives FTP): Der Client sendet eine Anfrage auf Port 21; die Datenübertragung erfolgt über Port 20 | [[Datei:AktivesFTP.png|mini|Active Mode (Aktives FTP): Der Client sendet eine Anfrage auf Port 21; die Datenübertragung erfolgt über Port 20 | ||
* In dem Beispiel sendet der Server die [[Datenpaket]]e zum ursprünglichen Rückgabeport des Clients | * In dem Beispiel sendet der Server die [[Datenpaket]]e zum ursprünglichen Rückgabeport des Clients | ||
* Es ist aber auch möglich, dass der Client dem Server dafür einen anderen Port übermittelt, an den die Daten geschickt werden sollen.]] | * Es ist aber auch möglich, dass der Client dem Server dafür einen anderen Port übermittelt, an den die Daten geschickt werden sollen.]] | ||
[[Datei:Passive FTP Verbindung.svg|mini|Illustration eines passiven Verbindungsaufbaus über Port 21]] | [[Datei:Passive FTP Verbindung.svg|mini|Illustration eines passiven Verbindungsaufbaus über Port 21]] | ||
Das '''File Transfer Protocol''' [{{IPA|fʌɪl trɑːnsˌfəˌprəʊtəkɒl}}] ('''FTP''', {{enS}} für ''Dateiübertragungsprotokoll'') ist ein im RFC 959 von 1985 spezifiziertes zustandsbehaftetes [[Netzwerkprotokoll]] zur [[Datenaustausch|Übertragung]] von [[Datei]]en über [[Internet Protocol|IP]]-Netzwerke | Das '''File Transfer Protocol''' [{{IPA|fʌɪl trɑːnsˌfəˌprəʊtəkɒl}}] ('''FTP''', {{enS}} für ''Dateiübertragungsprotokoll'') ist ein im RFC 959 von 1985 spezifiziertes zustandsbehaftetes [[Netzwerkprotokoll]] zur [[Datenaustausch|Übertragung]] von [[Datei]]en über [[Internet Protocol|IP]]-Netzwerke | ||
* FTP ist in der [[OSI-Modell|Anwendungsschicht]] (Schicht 7) des [[OSI-Modell|OSI-Schichtenmodells]] angesiedelt | * FTP ist in der [[OSI-Modell|Anwendungsschicht]] (Schicht 7) des [[OSI-Modell|OSI-Schichtenmodells]] angesiedelt | ||
* Es wird benutzt, um Dateien vom Client zum Server ([[Hochladen]]), vom [[Server (Software)|Server]] zum [[Client]] ([[Herunterladen]]) oder clientgesteuert zwischen zwei FTP-Servern zu übertragen ([[File Exchange Protocol]]) | * Es wird benutzt, um Dateien vom Client zum Server ([[Hochladen]]), vom [[Server (Software)|Server]] zum [[Client]] ([[Herunterladen]]) oder clientgesteuert zwischen zwei FTP-Servern zu übertragen ([[File Exchange Protocol]]) | ||
* Außerdem können mit FTP [[Verzeichnis]]se angelegt und ausgelesen sowie Verzeichnisse und Dateien umbenannt oder gelöscht werden | * Außerdem können mit FTP [[Verzeichnis]]se angelegt und ausgelesen sowie Verzeichnisse und Dateien umbenannt oder gelöscht werden | ||
Das FTP verwendet für die Steuerung und Datenübertragung jeweils separate [[Nachrichtenverbindung|Verbindungen]]: Eine FTP-[[Sitzung (Informatik)|Sitzung]] beginnt, indem vom Client zum ''Control [[Port (Protokoll)|Port]]'' des Servers (der Standard-Port dafür ist Port 21) eine [[Transmission Control Protocol|TCP]]-Verbindung aufgebaut wird. Über diese Verbindung werden [[Anweisung (Programmierung)|Befehle]] zum Server gesendet | Das FTP verwendet für die Steuerung und Datenübertragung jeweils separate [[Nachrichtenverbindung|Verbindungen]]: Eine FTP-[[Sitzung (Informatik)|Sitzung]] beginnt, indem vom Client zum ''Control [[Port (Protokoll)|Port]]'' des Servers (der Standard-Port dafür ist Port 21) eine [[Transmission Control Protocol|TCP]]-Verbindung aufgebaut wird. Über diese Verbindung werden [[Anweisung (Programmierung)|Befehle]] zum Server gesendet | ||
* Der Server antwortet auf jeden Befehl mit einem Statuscode, oft mit einem angehängten, erklärenden Text | * Der Server antwortet auf jeden Befehl mit einem Statuscode, oft mit einem angehängten, erklärenden Text | ||
* Die meisten Befehle sind allerdings erst nach einer erfolgreichen [[Authentifizierung]] zulässig | * Die meisten Befehle sind allerdings erst nach einer erfolgreichen [[Authentifizierung]] zulässig | ||
== Verbindungsarten == | == Verbindungsarten == | ||
Zum Senden und Empfangen von Dateien sowie zur Übertragung von Verzeichnislisten wird pro Vorgang jeweils eine separate TCP-Verbindung verwendet | Zum Senden und Empfangen von Dateien sowie zur Übertragung von Verzeichnislisten wird pro Vorgang jeweils eine separate TCP-Verbindung verwendet | ||
FTP kennt für den Aufbau solcher Verbindungen zwei Modi | FTP kennt für den Aufbau solcher Verbindungen zwei Modi | ||
=== Aktives FTP === | === Aktives FTP === | ||
Beim ''aktiven FTP'' (auch „Active Mode“) öffnet der Client einen zufälligen Port und teilt dem Server diesen sowie die eigene [[IP-Adresse]] mittels des PORT- oder des EPRT-Kommandos mit | Beim ''aktiven FTP'' (auch „Active Mode“) öffnet der Client einen zufälligen Port und teilt dem Server diesen sowie die eigene [[IP-Adresse]] mittels des PORT- oder des EPRT-Kommandos mit | ||
* Dies ist typischerweise ein Port des Clients, der jenseits von 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den ''Passive Mode'' geschaltet wurde, also auf eine Verbindung wartet (sogenanntes [[File Exchange Protocol|FXP]]) | * Dies ist typischerweise ein Port des Clients, der jenseits von 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den ''Passive Mode'' geschaltet wurde, also auf eine Verbindung wartet (sogenanntes [[File Exchange Protocol|FXP]]) | ||
* Heutzutage ist FXP jedoch bei den meisten FTP-Servern aus Sicherheitsgründen standardmäßig deaktiviert | * Heutzutage ist FXP jedoch bei den meisten FTP-Servern aus Sicherheitsgründen standardmäßig deaktiviert | ||
* Die Datenübertragung auf der Server-Seite erfolgt dabei über Port 20 | * Die Datenübertragung auf der Server-Seite erfolgt dabei über Port 20 | ||
* Die Kommunikation mit Befehlen erfolgt ausschließlich auf dem Control Port | * Die Kommunikation mit Befehlen erfolgt ausschließlich auf dem Control Port | ||
* Man spricht auch von der Steuerung „Out of Band“ | * 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 | * Somit bleibt es möglich, dass während der [[Datenübertragung]] die Partner noch immer miteinander kommunizieren können | ||
=== Passives FTP === | === Passives FTP === | ||
Beim ''passiven FTP'' (auch „Passive Mode“) sendet der Client ein PASV- oder ein EPSV-Kommando, der Server öffnet einen Port und übermittelt diesen mitsamt IP-Adresse an den Client | Beim ''passiven FTP'' (auch „Passive Mode“) sendet der Client ein PASV- oder ein EPSV-Kommando, der Server öffnet einen Port und übermittelt diesen mitsamt IP-Adresse an den Client | ||
* Hier wird auf der Client-Seite ein Port jenseits 1023 verwendet und auf der Server-Seite der vorher an den Client übermittelte Port | * Hier wird auf der Client-Seite ein Port jenseits 1023 verwendet und auf der Server-Seite der vorher an den Client übermittelte Port | ||
* Diese Technik wird eingesetzt, wenn der Server keine Verbindung zum Client aufbauen kann | * Diese Technik wird eingesetzt, wenn der Server keine Verbindung zum Client aufbauen kann | ||
* Dies ist beispielsweise der Fall, wenn der Client sich hinter einem [[Router]] befindet, der die [[IP-Adresse|Adresse]] des Clients mittels [[Network Address Translation|NAT]] umschreibt, oder wenn eine [[Firewall]] das Netzwerk des Clients vor Zugriffen von außen abschirmt | * Dies ist beispielsweise der Fall, wenn der Client sich hinter einem [[Router]] befindet, der die [[IP-Adresse|Adresse]] des Clients mittels [[Network Address Translation|NAT]] umschreibt, oder wenn eine [[Firewall]] das Netzwerk des Clients vor Zugriffen von außen abschirmt | ||
Die [[Firewall]] erlaubt in diesem Fall die Datenverbindung, weil sie ihren Ursprung innerhalb der geschützten Zone hat | Die [[Firewall]] erlaubt in diesem Fall die Datenverbindung, weil sie ihren Ursprung innerhalb der geschützten Zone hat | ||
== Öffentliche FTP-Server == | == Öffentliche FTP-Server == | ||
Viele FTP-Server, vor allem Server von [[Universität]]en, [[Fachhochschule]]n und [[Spiegelserver|Mirrors]], bieten sogenanntes ''Anonymous FTP'' an | Viele FTP-Server, vor allem Server von [[Universität]]en, [[Fachhochschule]]n und [[Spiegelserver|Mirrors]], bieten sogenanntes ''Anonymous FTP'' an | ||
* Solche FTP-Server werden auch als ''Pub'' (v. engl. {{lang|en|''public''}} ‚öffentlich‘) bezeichnet | * Solche FTP-Server werden auch als ''Pub'' (v. engl. {{lang|en|''public''}} ‚öffentlich‘) bezeichnet | ||
* Hier ist zum Einloggen neben den realen Benutzerkonten ein spezielles Benutzerkonto, typischerweise „anonymous“ und/oder „ftp“, vorgesehen, für das kein (oder ein beliebiges) Passwort angegeben werden muss | * Hier ist zum Einloggen neben den realen Benutzerkonten ein spezielles Benutzerkonto, typischerweise „anonymous“ und/oder „ftp“, vorgesehen, für das kein (oder ein beliebiges) Passwort angegeben werden muss | ||
* Früher gehörte es zum „guten Ton“, bei anonymem FTP seine eigene, gültige [[E-Mail-Adresse]] als Passwort anzugeben | * Früher gehörte es zum „guten Ton“, bei anonymem FTP seine eigene, gültige [[E-Mail-Adresse]] als Passwort anzugeben | ||
* Die meisten [[Webbrowser]] tun dies heute nicht mehr, da es aus [[Spam]]schutz-Gründen nicht zu empfehlen ist | * Die meisten [[Webbrowser]] tun dies heute nicht mehr, da es aus [[Spam]]schutz-Gründen nicht zu empfehlen ist | ||
== FTP-Client == | == FTP-Client == | ||
[[File Transfer Protocol/Client]] | |||
== | == FTP-Server == | ||
[[File Transfer Protocol/Server]] | |||
== Sicherheit und Alternativen == | |||
FTP ist ein sehr altes Protokoll, das keinerlei [[Kryptographie|kryptografische]] Sicherheitsalgorithmen nutzt | |||
* Für bestimmte Einsatzzwecke kann das ausreichend oder sinnvoll sein, beispielsweise für maximale Kompatibilität | |||
== | |||
* | |||
Wenn Verschlüsselung und Authentifizierung nach dem Stand der Technik gesichert sein müssen, dann gibt es drei Weiterentwicklungen von FTP | |||
* [[AS3]] (FTP ertüchtigt mit S/MIME und MDN-Zustellquittung) | |||
* | * [[FTP über SSL|Securing FTP with TLS]] (oft abgekürzt als FTPS) | ||
* [[SSH File Transfer Protocol]] (SFTP) | |||
Die theoretische Kombination „FTP over SSH“ (FTP über SSH-Tunnel) wurde aufgrund von Praxisproblemen durch ''SSH File Transfer Protocol'' (SFTP) verdrängt | |||
<noinclude> | <noinclude> | ||
Zeile 120: | Zeile 85: | ||
=== Siehe auch === | === Siehe auch === | ||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | {{Special:PrefixIndex/{{BASEPAGENAME}}}} | ||
* | ---- | ||
* [[Trivial File Transfer Protocol]] | |||
==== Dokumentation ==== | ==== Dokumentation ==== | ||
===== RFC ===== | ===== RFC ===== | ||
{| class="wikitable options big" | |||
|- | |||
! RFC !! Titel | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc114 114] || File Transfer Protocol ''[1971, veraltet]'' | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc765 765] || File Transfer Protocol ''[1980, veraltet]'' | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc959 959] || File Transfer Protocol ''[1985]'' | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc1579 1579] || Firewall Friendly FTP | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc2228 2228] || FTP Security Extensions | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc2428 2428] ||FTP Extensions for [[IPv6]] and [[Network Address Translation|NATs]] | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc2640 2640] || Internationalization of the File Transfer Protocol | |||
|} | |||
==== Links ==== | ==== Links ==== | ||
===== Weblinks ===== | ===== Weblinks ===== | ||
# https://de.wikipedia.org/wiki/File_Transfer_Protocol | # https://de.wikipedia.org/wiki/File_Transfer_Protocol | ||
[[Kategorie:FTP]] | [[Kategorie:FTP]] | ||
</noinclude> | </noinclude> |
Aktuelle Version vom 19. Oktober 2024, 13:41 Uhr
File Transfer Protocol (FTP) - Beschreibung
Beschreibung
Familie: | Internetprotokolle |
Einsatzgebiet: | Datenübertragung, Dateiverwaltung |
Ports: | 20/TCP DATA Port, 21/TCP Control Port |
Standards: | RFC 354 (1972), RFC 959 / STD 9 (1985) |
Das File Transfer Protocol [[[:Vorlage:IPA]]] (FTP, für Dateiübertragungsprotokoll) ist ein im RFC 959 von 1985 spezifiziertes zustandsbehaftetes Netzwerkprotokoll zur Übertragung von Dateien über IP-Netzwerke
- FTP ist in der Anwendungsschicht (Schicht 7) des OSI-Schichtenmodells angesiedelt
- Es wird benutzt, um Dateien vom Client zum Server (Hochladen), vom Server zum Client (Herunterladen) oder clientgesteuert zwischen zwei FTP-Servern zu übertragen (File Exchange Protocol)
- Außerdem können mit FTP Verzeichnisse angelegt und ausgelesen sowie Verzeichnisse und Dateien umbenannt oder gelöscht werden
Das FTP verwendet für die Steuerung und Datenübertragung jeweils separate Verbindungen: Eine FTP-Sitzung beginnt, indem vom Client zum Control Port des Servers (der Standard-Port dafür ist Port 21) eine TCP-Verbindung aufgebaut wird. Über diese Verbindung werden Befehle zum Server gesendet
- Der Server antwortet auf jeden Befehl mit einem Statuscode, oft mit einem angehängten, erklärenden Text
- Die meisten Befehle sind allerdings erst nach einer erfolgreichen Authentifizierung zulässig
Verbindungsarten
Zum Senden und Empfangen von Dateien sowie zur Übertragung von Verzeichnislisten wird pro Vorgang jeweils eine separate TCP-Verbindung verwendet
FTP kennt für den Aufbau solcher Verbindungen zwei Modi
Aktives FTP
Beim aktiven FTP (auch „Active Mode“) öffnet der Client einen zufälligen Port und teilt dem Server diesen sowie die eigene IP-Adresse mittels des PORT- oder des EPRT-Kommandos mit
- Dies ist typischerweise ein Port des Clients, der jenseits von 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den Passive Mode geschaltet wurde, also auf eine Verbindung wartet (sogenanntes FXP)
- Heutzutage ist FXP jedoch bei den meisten FTP-Servern aus Sicherheitsgründen standardmäßig deaktiviert
- Die Datenübertragung auf der Server-Seite erfolgt dabei über Port 20
- Die Kommunikation mit Befehlen erfolgt ausschließlich auf dem Control Port
- 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
Passives FTP
Beim passiven FTP (auch „Passive Mode“) sendet der Client ein PASV- oder ein EPSV-Kommando, der Server öffnet einen Port und übermittelt diesen mitsamt IP-Adresse an den Client
- Hier wird auf der Client-Seite ein Port jenseits 1023 verwendet und auf der Server-Seite der vorher an den Client übermittelte Port
- Diese Technik wird eingesetzt, wenn der Server keine Verbindung zum Client aufbauen kann
- Dies ist beispielsweise der Fall, wenn der Client sich hinter einem Router befindet, der die Adresse des Clients mittels NAT umschreibt, oder wenn eine Firewall das Netzwerk des Clients vor Zugriffen von außen abschirmt
Die Firewall erlaubt in diesem Fall die Datenverbindung, weil sie ihren Ursprung innerhalb der geschützten Zone hat
Öffentliche FTP-Server
Viele FTP-Server, vor allem Server von Universitäten, Fachhochschulen und Mirrors, bieten sogenanntes Anonymous FTP an
- Solche FTP-Server werden auch als Pub (v. engl. Vorlage:Lang ‚öffentlich‘) bezeichnet
- Hier ist zum Einloggen neben den realen Benutzerkonten ein spezielles Benutzerkonto, typischerweise „anonymous“ und/oder „ftp“, vorgesehen, für das kein (oder ein beliebiges) Passwort angegeben werden muss
- Früher gehörte es zum „guten Ton“, bei anonymem FTP seine eigene, gültige E-Mail-Adresse als Passwort anzugeben
- Die meisten Webbrowser tun dies heute nicht mehr, da es aus Spamschutz-Gründen nicht zu empfehlen ist
FTP-Client
FTP-Server
Sicherheit und Alternativen
FTP ist ein sehr altes Protokoll, das keinerlei kryptografische Sicherheitsalgorithmen nutzt
- Für bestimmte Einsatzzwecke kann das ausreichend oder sinnvoll sein, beispielsweise für maximale Kompatibilität
Wenn Verschlüsselung und Authentifizierung nach dem Stand der Technik gesichert sein müssen, dann gibt es drei Weiterentwicklungen von FTP
- AS3 (FTP ertüchtigt mit S/MIME und MDN-Zustellquittung)
- Securing FTP with TLS (oft abgekürzt als FTPS)
- SSH File Transfer Protocol (SFTP)
Die theoretische Kombination „FTP over SSH“ (FTP über SSH-Tunnel) wurde aufgrund von Praxisproblemen durch SSH File Transfer Protocol (SFTP) verdrängt
Anhang
Siehe auch
Dokumentation
RFC
RFC | Titel |
---|---|
114 | File Transfer Protocol [1971, veraltet] |
765 | File Transfer Protocol [1980, veraltet] |
959 | File Transfer Protocol [1985] |
1579 | Firewall Friendly FTP |
2228 | FTP Security Extensions |
2428 | FTP Extensions for IPv6 and NATs |
2640 | Internationalization of the File Transfer Protocol |