Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
netzwerke:ftp [2009/09/25 16:42] – st | netzwerke:ftp [2013/03/25 11:32] (aktuell) – [grafische Clients] st |
---|
| ====== 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]] |