netzwerke:ftp

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
netzwerke:ftp [2010/11/19 19:34] stnetzwerke:ftp [2013/03/25 11:32] (aktuell) – [grafische Clients] st
Zeile 1: Zeile 1:
 +====== FTP (File Transfer Protocol)-Server ======
 +Das [[wpde>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 [[netzwerke:ssl-und-tls|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.
 +
 +===== Modi =====
 +
 +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.
 +
 +===== Verschlüsselung =====
 +
 +  * **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. [[software:Filezilla]]. 
 +
 +
 +  * **implizites SSL** bedeuted, das gleich während des Verbindungsaufbaus eine [[netzwerke:ssl-und-tls|SSL/TLS]]-geschützte Verbindung aufgebaut wird. Dieser Modus wird von vielen FTP-Programmen unterstützt, z. B. [[software:Filezilla]]. Normalerweise lauscht man bei dieser Variante auf Port 990 TCP.
 +
 +
 +Siehe auch:
 +  * [[wpde>FTP über SSL]]
 +  * [[http://wiki.vpslink.com/Configuring_vsftpd_for_secure_connections_(TLS/SSL/SFTP)|Configuring vsftpd for secure connections (TLS/SSL/SFTP)]]
 +
 +
 +===== Links =====
 +[[http://www.informatik.hu-berlin.de/Infosys/ftp_anleitung.html]]
 +[[http://www.htl-steyr.ac.at/~morg/pcinfo/network/ftpcommands.html]]
 +[[http://www.uni-koeln.de/rrzk/ftp/transfer/unix.html]]
 +
 +
 +===== FTP-Clients =====
 +FTP-Clients gibt für jedes Betriebssystem in rauen Mengen.
 +
 +  * [[wpde>Filezilla]] ist für Windows, Linux, Mac OS erhältlich und sehr zu empfehlen.
 +
 +==== Kommandozeile ====
 +
 +  * ftp
 +  * lftp: [[http://www.linux.com/feature/122169|CLI Magic: Quick and easy backup with lftp]]
 +  * ncftp : komfortablerer Textclient als ''ftp''
 +  * [[http://yafc.sourceforge.net/|yafc]] - Bookmarks, Rekursiv hoch- und runterladen, Tab-Vervollständigung auch bei den Remote-Ordner
 +
 +
 +
 +==== grafische Clients ====
 +
 +  * gftp ([[linux:Gnome]])
 +  * [[software:Filezilla]]
 +
 +==== webclients ====
 +
 +FTP-Client die auf einem Webserver laufen.
 +
 +  * [[http://sourceforge.net/projects/phpwebftp/|phpWebFTP]]
 +  * [[http://www.agency4net.de/downloads/webftp-client/|AGENCY4NET WEBFTP]] 
 +
 +===== FTP-Server (daemons) =====
 +
 +  * [[server:vsftp]] Ein kleiner und effizienter FTP Server, bei dem von Grund auf hoher Wert auf die Sicherheit gelegt wurde.
 +  * [[server:pure-ftpd]]: ebenfalls ein guter ftp-daemon, bietet z.B. das einsperren ("chrooten") von Benutzern an.
 +  * proftpd
 +  * [[https://code.google.com/p/pyftpdlib/|Python FTP server library (pyftpdlib)]] - FTP-Implementierung in [[programmiersprachen:Python]].
 +
 +===== FTP-Mounten =====
 +
 +<code bash>aptitude install curlftpfs</code>
 +
 +  * **fallweise** verbinden: <code bash>curlftpfs USERNAME:PASSWORT@SERVER.tld /media/mein_ftp</code>
 +  * **permanent** hinterlegen:
 +    * Ohne Zugangsdaten:<code bash>curlftpfs#ftp.host.com /media/mein_ftp fuse rw,uid=1000,user,noauto 0 0</code>
 +    * Mit Zugangsdaten:<file>
 +# Passwort systemweit lesbar!!!
 +curlftpfs#USER:PASSWORD@SERVER.tld /media/mein_ftp fuse rw,uid=1000,user,noauto 0 0</file>
 +    * Besser eine Datei ''.netrc'' mit den Zugangsdaten anlegen (im Home-Ordner des Benutzers der mounted): <file>
 +machine SERVER.tld
 +login USER  
 +password PASSWORD</file>
 +
 +
 +
 +==== Links ====
 +
 +  * [[http://www.exanto.de/sftp-und-ftp-unter-linux-mounten.html|SFTP und FTP unter Linux mounten]]
 +  * [[http://curlftpfs.sourceforge.net/|curlftpfs Homepage]]