[Gelöst] Filezilla/ProFTPD - Verzeichnisinhalt konnte nicht empfangen werden
Lösung für die Meldung "der Verzeichnisinhalt konnte nicht empfangen werden" bei aktiviertem TLS mit Filezilla.
Problembeschreibung Filezilla
Mit Filezilla (Version 3.5.2) kann via "Explizit FTP über TLS anfordern" nicht auf dem FTP Server zugegriffen werden. Das Problem tritt nicht auf
- mit anderen Filezilla Versionen
- mit anderen FTP-Clients
- mit deaktiviertem TLS (unverschlüsseltes FTP)
Fehlermeldung aus dem Filezilla-Protokoll
Status: Auflösen der IP-Adresse für example.com Status: Verbinde mit 192.168.0.123:21... Status: Verbindung hergestellt, warte auf Willkommensnachricht... Antwort: 220 ProFTPD 1.3.3g Server (My ProFTPD) [192.168.0.123] Befehl: AUTH TLS Antwort: 234 AUTH TLS successful Status: Initialisiere TLS... Status: Überprüfe Zertifikat... Befehl: USER foobar Status: TLS/SSL-Verbindung hergestellt. [...] Status: Verbunden Status: Empfange Verzeichnisinhalt... Befehl: PWD Antwort: 257 "/" is the current directory Befehl: TYPE I Antwort: 200 Type set to I Befehl: PASV Antwort: 227 Entering Passive Mode (192,168,0,123,217,232). Befehl: MLSD Antwort: 150 Opening ASCII mode data connection for MLSD Antwort: 425 Unable to build data connection: Operation not permitted Fehler: Verzeichnisinhalt konnte nicht empfangen werden
Problemlösung
Es lag am FTP-Server ProFTPD Version 1.3.3. Aktiviert war die Option in der Datei proftpd.conf
TLSOptions NoCertRequest
Diese Option war für FTP Clients mit fehlerhafter Zertifikatbehandlung aktiviert.
Deaktiviert man die Option TLSOptions NoCertRequest, besteht kein Problem mehr.
Seit ProFTPD Version 1.3.3 gibt es die Option
TLSOptions NoSessionReuseRequired
Seit Version 1.3.3 akzeptiert ProFTPD aus sicherheitsgründen nur noch Clients, die das Zertifikat wiederverwenden. Das kann zu Problemen mit Clients führen. Für das oben beschriebene Problem ist diese Einstellung wohl nicht von Bedeutung.
Andere Probleme und Lösungen
Router
Die wohl häufigste Ursache ist, dass der Client hinter einem DSL-Router (NAT-Router) steht und nicht im Passiven Transfer-Modus (Servermanager -> Transfereinstellungen) betrieben wird. Dies ist hier auszuschließen, da der normale, unverschlüsselte FTP-Transfer problemlos funktionierte.
Natürlich sollte man auch Firewall-Einstellungen berücksichtigen.
Rechte
Der FTP-User sollte die nötigen Rechte mitbringen, damit er das Verzeichnis auch lesen darf. Dies wird durch Fehlermeldungen wie "Antwort: 550 Access is denied." angegeben. Da es sich um virtuelle FTP-User handeln kann, muss der FTP-Username nicht unbedingt gleichbedeutend mit dem Usernamen auf dem Server sein.
Kommentare
Johannes (nicht überprüft)
11. März 2014 - 15:47
Permanenter Link
Ich habe seit ein paar
Sehr schön.
Ich habe seit ein paar Stunden versucht diesen Fehler zu lösen, da er bei mir plötzlich auftrat ohne dass ich einen Anhaltspunkt hatte, aber diese Lösung hilft sofort.
TLSOptions NoCertRequest hatte ich übrigens nicht explizit in der config, jedoch seint proftpd's TLS davon automatisch auszugehen.
Exzellent =)
Treten bei dieser Variante eventuell Unannehmlichkeiten auf die erwähnenswert wären? Ich denke da an Client Authentizität, Session übernahme o.ä.
Wolfgang (nicht überprüft)
19. April 2015 - 13:17
Permanenter Link
Super, hat mir auf jeden Fall
Super, hat mir auf jeden Fall geholfen!!
Danke für den Hinweis!
Robert (nicht überprüft)
24. Februar 2020 - 10:24
Permanenter Link
danke für den Hinweis das
danke für den Hinweis das NoCertRequest wohl als standard gilt wenn nicht anders angegeben.
Für mein Problem half die option NoSessionReuseRequired nachdem auch bei mir ohne TLS die übertragung klappte aber mit TLS nicht mal der Verzeichnisinhalt aufgelistet werden konnte.