[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

  1. Status: Auflösen der IP-Adresse für example.com
  2. Status: Verbinde mit 192.168.0.123:21...
  3. Status: Verbindung hergestellt, warte auf Willkommensnachricht...
  4. Antwort: 220 ProFTPD 1.3.3g Server (My ProFTPD) [192.168.0.123]
  5. Befehl: AUTH TLS
  6. Antwort: 234 AUTH TLS successful
  7. Status: Initialisiere TLS...
  8. Status: Überprüfe Zertifikat...
  9. Befehl: USER foobar
  10. Status: TLS/SSL-Verbindung hergestellt.
  11. [...]
  12. Status: Verbunden
  13. Status: Empfange Verzeichnisinhalt...
  14. Befehl: PWD
  15. Antwort: 257 "/" is the current directory
  16. Befehl: TYPE I
  17. Antwort: 200 Type set to I
  18. Befehl: PASV
  19. Antwort: 227 Entering Passive Mode (192,168,0,123,217,232).
  20. Befehl: MLSD
  21. Antwort: 150 Opening ASCII mode data connection for MLSD
  22. Antwort: 425 Unable to build data connection: Operation not permitted
  23. 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

  1. 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

  1. 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

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.ä.

Super, hat mir auf jeden Fall geholfen!!
Danke für den Hinweis!

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.