FTPS-Verbindung zum Fritzbox-NAS schlägt fehl – ​​aufgrund einer EPSV-/PAS-Portänderung?

FTPS-Verbindung zum Fritzbox-NAS schlägt fehl – ​​aufgrund einer EPSV-/PAS-Portänderung?

Ich verwende meine FRITZ!Box 3490 mit angeschlossener USB-Festplatte als NAS-Server. Für die FTP-Kommunikation habe ich einen bestimmten Port (32753) konfiguriert. Um einen statischen Servernamen (u***********u.myfritz.net) zu gewährleisten, habe ich myFritz aktiviert und konfiguriert.

Der Zugriff auf das NAS funktioniert einwandfrei, wenn ich von meinem (nicht lokal angeschlossenen) Laptop über WinSCP darauf zugreife.

Beim Versuch, über den Remote-Server meines Webspace auf das NAS zuzugreifen, schlägt die Verbindung jedoch nach dem EPSV- oder PAS-Befehl fehl.

Hier ist das Terminal:

$ curl -v --ftp-pasv --ssl -k -u speedITBackup 'ftp://u**********u.myfritz.net:32753/Backup/Superfein/'
Enter host password for user 'speedITBackup':
*   Trying 92.218.125.113...
* TCP_NODELAY set
* Connected to u**********u.myfritz.net (92.218.125.113) port 32753 (#0)
< 220 FRITZ!Box3490 FTP server ready.
> AUTH SSL
< 501 Use AUTH TLS for secure control connection.
> AUTH TLS
< 234 Authentication method accepted
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, [no content] (0):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* Server certificate:
*  subject: CN=u************u.myfritz.net
*  start date: Dec  9 12:27:41 2022 GMT
*  expire date: Jan 15 12:27:41 2038 GMT
*  issuer: CN=u**********u.myfritz.net
*  SSL certificate verify result: self signed certificate (18), continuing anyway.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> USER speedITBackup
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 331 Password required for speedITBackup.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PASS **************
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 230 User speedITBackup logged in.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PBSZ 0
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 200 ok
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PROT P
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 200 Data channel will be secured
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PWD
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 257 "/" is current directory.
* Entry path is '/'
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> CWD Backup
* ftp_perform ends with SECONDARY: 0
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 250 CWD command successful.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> CWD Superfein
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 250 CWD command successful.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> EPSV
* Connect data stream passively
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 229 Entering Extended Passive Mode (|||60770|)
*   Trying 92.218.125.113...
* TCP_NODELAY set
* Connecting to 92.218.125.113 (92.218.125.113) port 60770
* connect to 92.218.125.113 port 32753 failed: Connection refused
* Failed to connect to u***********u.myfritz.net port 32753: Connection refused
* Failed EPSV attempt. Disabling EPSV
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PASV
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 227 Entering Passive Mode (92,218,125,113,230,160)
* Skip 92.218.125.113 for data connection, re-use u************u.myfritz.net instead
*   Trying 92.218.125.113...
* TCP_NODELAY set
*** Connecting to 92.218.125.113 (92.218.125.113) port 59040**
* connect to 92.218.125.113 port 32753 failed: Connection refused
* Failed to connect to u**************u.myfritz.net port 32753: Connection refused
* Closing connection 0
* TLSv1.3 (OUT), TLS alert, [no content] (0):
* TLSv1.3 (OUT), TLS alert, close notify (256):
curl: (7) Failed to connect to upfamnsqwzodew4u.myfritz.net Port 32753: Connection refused

Ich bin mir nicht sicher, was hier passiert: Bei den EPSV- und PAS-Befehlen scheint die FRITZ!Box einen neuen Port (60770 / 59040) zu senden, verbindet sich dann aber mit einem alten?

Liegt das Problem auf der Server- oder Clientseite?

Gibt es eine Möglichkeit, diese Kommunikation zum Laufen zu bringen? Vielleicht über die Einstellungen meiner FRITZ!Box?

Ich habe versucht, mit Cygwin meine Fritzbox zu erreichen und das Ergebnis ist:

$ curl -vvv --ftp-pasv --ssl -k -u speedITBackup 'ftp://u********u.myfritz.net:32753/Backup/Superfein/'
Enter host password for user 'speedITBackup':
*   Trying 92.218.125.113:32753...
* connect to 92.218.125.113 port 32753 failed: Timed out
* Failed to connect to u*************u.myfritz.net port 32753 after 21110 ms: Timed out
* Closing connection 0
curl: (28) Failed to connect to u************u.myfritz.net port 32753 after 21110 ms: Timed out

Antwort1

Ich habe X-Plore auf meinem Android-Fernseher und der Fritzbox 3490 installiert. Und ich habe eine Festplatte auf dem USB-Stick der Fritzbox per SMB-FTP verwendet, um Filme auf meinem Fernseher anzusehen.

Plötzlich bekomme ich aus heiterem Himmel eine Zeitüberschreitung von x-plore zur FTP-Verbindung. Irgendwelche Ideen, warum das passiert? Ich habe nichts an den Einstellungen geändert ...

Antwort2

Ich habe eine FRITZ!Box 7520 und habe auch einen FTP-Server am Laufen. Ich greife aus dem lokalen LAN, aber auch von außerhalb darauf zu. Ich verwende Total Commander + FTP-Plugin auf Android. Ich verwende auch myFritz.

Es gibt drei FTP-Typen:

  1. unverschlüsseltes FTP (verwendet mehrere Ports)
  2. FTPS (sicheres FTP, verwendet mehrere Ports)
  3. SFTP (FTP über SSH, verwendet einen einzigen Port)

FRITZ!Box unterstützt nur 1 und 2. Das ist schade, denn SFTP benötigt nur einen Port, daher ist dies die einfachste Option, wenn es um Firewalls geht.

Ihr Curl-Befehl verwendet FTPS. Er kann eine Verbindung herstellen, aber der Versuch, Dateien aufzulisten, schlägt fehl, da er nicht in den passiven Modus wechseln kann.

Diese Protokollzeile ist verdächtig:

*** Connecting to 92.218.125.113 (92.218.125.113) port 59040**
* connect to 92.218.125.113 port 32753 failed: Connection refused

Es versucht, eine Verbindung über Port 59040 herzustellen, und dann wird angezeigt, dass die Verbindung über Port 32753 nicht hergestellt werden konnte. Für mich sieht das nach einem Fehler in curl aus.

Bitte renne:

curl --version

Meine ist 7.74.0. Alles in der Nähe dieser Version ist akzeptabel. Wenn Sie Glück haben, müssen Sie nur curl aktualisieren.

Sie können auch Folgendes versuchen:

  • Verwenden Sie denselben Curl-Befehl in Ihrem lokalen LAN und prüfen Sie, ob er erfolgreich ist. Sie können beispielsweise Cygwin verwenden, um ihn unter Windows zum Laufen zu bringen.
  • Wenn es klappt, versuchen Sie es von außen
  • Verwenden Sie wget anstelle von curl

Edit: Du hast in den Kommentaren gesagt, dass dein Hoster ausgehende Ports zwischen 49152 und 65534 blockiert. Diese Ports werden dynamisch, privat oder flüchtig genannt, wie du weiterlesen kannst.Wikipedia. Aber ich weiß nicht, ob es Sinn macht, nur diese Ports zu blockieren und alle anderen zuzulassen.

Der Screenshot unten zeigt die FTP-Einstellungen der FRITZ!Box. Es scheint nicht möglich zu sein, die Ports für den passiven Modus zu ändern. Nur der Hauptport kann geändert werden.

Um Ihr Problem zu beheben, können Sie:

  • zu einem anderen Hoster wechseln
  • einen Proxy verwenden (curl unterstützt Proxys)
  • Verwenden Sie einen Raspberry Pi, auf dem ein FTP-Server läuft
  • Aktiven Modus verwenden

Bildbeschreibung hier eingeben

verwandte Informationen