⚙️ FTP-Protokoll: Grundaufbau
FTP (File Transfer Protocol) ist ein Protokoll mit Client-Server-Architektur. Die Verbindung erfolgt über TCP/IP auf Port 21. Es gibt zwei Hauptkanäle:
-
Steuerkanal: Kanal, über den Befehle gesendet und Antworten empfangen werden.
-
Datenkanal: Kanal, über den die Dateiübertragung erfolgt.
🔁 Aktiver und passiver Modus
| Modus | Beschreibung |
|---|---|
| Aktiv | Der Server baut die Datenverbindung zum Client zurück auf (Port 20). |
| Passiv | Der Client baut die Datenverbindung über den vom Server angegebenen Port auf. |
Der passive Modus eignet sich besser für Clients hinter NAT und Firewalls.
🔐 Sicherheitsebenen
Das FTP-Protokoll verschlüsselt nicht. Deshalb werden sichere Alternativen bevorzugt:
-
FTPS (FTP Secure): verschlüsselt den FTP-Verkehr mit SSL/TLS.
-
SFTP (SSH File Transfer Protocol): Dateiübertragung über SSH; hat mit FTP nichts zu tun, erfüllt aber einen ähnlichen Zweck.
🧪 Befehle und Antwortcodes
FTP-Clients verwenden die in RFC 959 festgelegten Befehle. Beispiele:
📤 Gängige FTP-Befehle
| Befehl | Beschreibung |
|---|---|
USER |
Sendet den Benutzernamen |
PASS |
Sendet das Passwort |
LIST |
Ruft die Dateiliste ab |
RETR |
Lädt eine Datei herunter |
STOR |
Lädt eine Datei hoch |
DELE |
Löscht eine Datei |
QUIT |
Beendet die Sitzung |
📥 Antwortcodes
| Codebereich | Bedeutung |
|---|---|
| 1xx | Positive Vorab-Antwort |
| 2xx | Erfolgreicher Vorgang |
| 3xx | Weitere Angaben erforderlich |
| 4xx | Vorübergehender Fehler |
| 5xx | Dauerhafter Fehler |
Beispiel: 220 – Server bereit, 530 – Anmeldung fehlgeschlagen.
🖥️ Technische Merkmale von FTP-Programmen
FileZilla (Open Source)
-
Protokollunterstützung: FTP, FTPS, SFTP
-
Verbindungsverwaltung: Verbindungen in Tabs, Servermanager
-
Fehlersuche: ausführliche Protokollierung
-
Upload-Warteschlange: Dateiverwaltung über ein Warteschlangensystem
WinSCP
-
Unterstützung für SFTP/FTP/FTPS
-
Skripte und Automatisierung: PowerShell-Integration
-
GUI + CLI: grafische Oberfläche und Kommandozeile
🧰 FTP-Serversoftware
| Serversoftware | Platform | Funktionen |
|---|---|---|
| vsftpd | Linux | Sicher, schnell, geringer Ressourcenverbrauch |
| ProFTPD | Linux | Apache-ähnliche Konfiguration |
| FileZilla Server | Windows | Einfache Installation, grafische Oberfläche |
🔄 Automatisierung und Integration
FTP-Vorgänge werden häufig automatisiert:
-
Cron job / Task Scheduler: zeitgesteuerte Übertragungen
-
CI/CD-Integration: Dateien nach dem Build verteilen
-
FTP-Client per API: Python (ftplib), PHP (ftp_*-Funktionen)
