[[start|zurück]] ====== FTP, FTPS & SFTP – Grundlagen ====== FTP (**F**ile **T**ransfer **P**rotocol) ist eines der ältesten Protokolle zur Dateiübertragung im Netzwerk. Heute wird es oft durch sicherere Alternativen ersetzt, ist aber weiterhin in vielen Umgebungen notwendig (Industrie, Embedded, Router, Firmware, Legacy-Anwendungen). Diese Seite erklärt: * FTP (klassisch, unsicher) * FTPS (FTP + TLS) * SFTP (SSH File Transfer Protocol) --- ===== 1. FTP – File Transfer Protocol ====== FTP ist ein unverschlüsseltes Übertragungsprotokoll aus den 1970ern. ==== Ports & Funktionsweise ==== FTP verwendet **zwei Verbindungen**: * **Port 21 (TCP)** – Kontrollkanal * **Port 20 (TCP)** – Datenkanal (aktiv) * oder dynamische Ports (passiv) Client <---> Port 21 (Kontrolle) Client <---> Port 20 oder Pasv-Port (Daten) ===== Aktiver vs. Passiver Modus ====== ==== Aktiver Modus (active FTP) ==== Server verbindet sich zum Client → Problem bei Firewalls. Client --> Server:21 (Kontrolle) Server --> Client:random_port (Daten) ==== Passiver Modus (passive FTP) ==== Heutiger Standard, da firewall-freundlicher. Client --> Server:21 (Kontrolle) Client --> Server:random_pasv_port (Daten) ===== Nachteile von FTP ====== * KEINE Verschlüsselung * Passwörter im Klartext * leicht durch MITM(([[https://de.wikipedia.org/wiki/Man-in-the-Middle-Angriff|Man in the Middle Angriff]])) angreifbar * sehr unflexibel in modernen Netzwerken In modernen Umgebungen sollte FTP nur in **isolierten VLANs** betrieben werden. --- ===== 2. FTPS – FTP über TLS ====== FTPS fügt TLS-Verschlüsselung hinzu – vergleichbar mit HTTPS. Zwei Varianten: * **Explicit FTPS** * Start auf Port 21 * Client fordert TLS via `AUTH TLS` an * **Implicit FTPS** * direkt verschlüsselt * Port **990** * heute eher legacy, aber noch unterstützt Vorteile: * Verschlüsselt * Nahezu identisch zu FTP * Besser für Compliance als „plain FTP“ Nachteile: * komplexer wegen vielen Ports * Firewalls müssen passive Portbereiche erlauben --- ===== 3. SFTP – SSH File Transfer Protocol ====== **WICHTIG:** SFTP hat **NICHTS** mit FTP zu tun, außer dass der Name ähnlich ist. Es basiert auf **SSH**, nutzt also: * **Port 22** * vollständige Verschlüsselung * starke Authentifizierung (Passwort, Schlüssel) * nur EIN Datenkanal (Firewall-freundlich) Client --> Server:22 (SSH) --> SFTP-Session SFTP ist moderner und sicherer und wird heute für nahezu alle professionellen Transfers genutzt (Backup, Automatisierung, CI/CD, Scripts). --- ===== 4. FTP, FTPS, SFTP – Vergleich ====== ^ Protokoll ^ Port ^ Verschlüsselt ^ Firewallfreundlich ^ Sicherheit ^ | **FTP** | 21/20 | ❌ nein | ❌ nein | ❌ unsicher | | **FTPS** | 21/990 | ✔ ja | ❌ kompliziert | ✔ gut | | **SFTP** | 22 | ✔ ja | ✔ sehr gut | ✔✔ sehr sicher | --- ===== 5. Wann verwendet man was? ====== ==== FTP ==== * nur in alten Systemen oder isolierten VLANs * Firmware-Uploads alter Hardware * Industrieanlagen ==== FTPS ==== * wenn alte Software zwingend FTP benötigt * aber Sicherheit vorgeschrieben ist * Banking, Unternehmensübertragungen ==== SFTP ==== * Standard in modernen Architekturen * automatisierte Skripte * sichere Dateiübertragungen * Backup-Jobs * CI/CD Pipelines * DevOps --- ===== 6. Beispiel-Befehle ====== ==== FTP ==== ftp server.example.com get file.txt put upload.bin ==== FTPS (Explicit) ==== lftp -e "set ftp:ssl-force true" ftps://server.example.com ==== SFTP ==== sftp user@server.example.com sftp> get logs.zip sftp> put backup.tar.gz Für automatisierte Jobs: sftp -i ~/.ssh/key user@host --- ===== 7. Sicherheitsempfehlungen ====== * normaler FTP NICHT über das Internet * am besten ersetzen durch SFTP * passive Ports bei FTPS klar definieren * Server in eigene VLANs packen * nur sichere Ciphers verwenden * Logs überwachen (Auth-Logs, Brute Force) ===== Zusammenfassung ====== * FTP = alt und unsicher * FTPS = FTP mit TLS, sicherer aber komplex * SFTP = modernes, SSH-basiertes Protokoll, Standard heute * in echten Umgebungen ist SFTP die richtige Wahl * FTP/FTPS nur nutzen, wenn notwendig oder altlastbedingt