netzwerke:ftp

FTP (File Transfer Protocol)-Server

Das Ftp-Protokoll ist eine effiziente Möglichkeit um Dateien

  • vom Server zum Client (Download),
  • vom Client zum Server (Upload)
  • oder clientgesteuert zwischen zwei Servern (FXP) zu übertragen.

Das Protokoll ist unverschlüsselt, es sollte nur für anonymes Herunterladen benutzt werden, da die Zugangsdaten mitgehört werden könnten. Es ist aber eine verschlüsselte Variante (FTPs) möglich (mit SSL oder TLS), die viele gute FTP-Clients beherrschen.

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. Die Datenübertragung findet pro Vorgang auf einer separaten TCP-Verbindung statt.

Es gibt zwei Modi

  • 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-Kommandos mit. Dies ist typischerweise ein Port des Clients, der jenseits 1023 liegt, kann aber auch ein anderer Server sein. Die Kommunikation mit Befehlen erfolgt ausschließlich auf dem Control Port.
  • Beim passiven FTP (auch „Passive Mode“) sendet der Client ein PASV-Kommando, der Server öffnet einen Port und übermittelt diesen mitsamt IP-Adresse an den Client. Hier wird auf Client Seite ein Port jenseits 1023 verwendet und auf Server Seite FTP-Port -1, d.h. im Normalfall 20.
  • explizites SSL, d. h. das FTP-Programm aktiviert nachdem die TCP-Verbindung steht aber vor einer Aktion (z. B. Login) erstmal SSL, die Kommunikation läuft ganz normal über Port 21 (Steuerung) bzw. 20 (Daten). Somit werden sensible Daten bei der Übertragung geschützt und FTP-Programme die das nicht können können werden weiterhin unterstützt und können parallel auf den gleichen Ports arbeiten.

Dieser Modus wird von wenigen FTP-Programmen unterstützt, z. B. Filezilla.

  • implizites SSL bedeuted, das gleich während des Verbindungsaufbaus eine SSL/TLS-geschützte Verbindung aufgebaut wird. Dieser Modus wird von vielen FTP-Programmen unterstützt, z. B. Filezilla. Normalerweise lauscht man bei dieser Variante auf Port 990 TCP.

Siehe auch:

FTP-Clients gibt für jedes Betriebssystem in rauen Mengen.

  • Filezilla ist für Windows, Linux, Mac OS erhältlich und sehr zu empfehlen.

FTP-Client die auf einem Webserver laufen.

  • vsftp Ein kleiner und effizienter FTP Server, bei dem von Grund auf hoher Wert auf die Sicherheit gelegt wurde.
  • pure-ftpd: ebenfalls ein guter ftp-daemon, bietet z.B. das einsperren („chrooten“) von Benutzern an.
  • proftpd
aptitude install curlftpfs
  • fallweise verbinden:
    curlftpfs USERNAME:PASSWORT@SERVER.tld /media/mein_ftp
  • permanent hinterlegen:
    • Ohne Zugangsdaten:
      curlftpfs#ftp.host.com /media/mein_ftp fuse rw,uid=1000,user,noauto 0 0
    • Mit Zugangsdaten:
      # Passwort systemweit lesbar!!!
      curlftpfs#USER:PASSWORD@SERVER.tld /media/mein_ftp fuse rw,uid=1000,user,noauto 0 0
    • Besser eine Datei .netrc mit den Zugangsdaten anlegen (im Home-Ordner des Benutzers der mounted):
      machine SERVER.tld
      login USER  
      password PASSWORD