VSFTPD TLS und expliziter Modus

VSFTPD TLS und expliziter Modus

Ich versuche derzeit, VSFTPD auf einem Ubuntu 16.04-Server einzurichten und möchte FTPS verwenden (idealerweise würde ich SFTP verwenden, bin aber leider durch ein Altsystem eingeschränkt).

Ich habe es geschafft, es mit der Standardkonfiguration und ohne TLS einzurichten, und ich kann problemlos eine Verbindung über Filezilla herstellen. Allerdings habe ich in den letzten zwei Tagen versucht, TLS zu aktivieren, und keine noch so große Anzahl von Fragen bei SE oder anderswo scheint zu einem positiven Ergebnis zu führen.

Meine Zertifikatsdetails in der Datei vsftpd.conf lauten wie folgt:

rsa_cert_file=/path/to/fullchain.pem
rsa_private_key_file=/path/to/privkey.pem
allow_anon_ssl=NO
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES

Ich kann jedoch keine Verbindung mehr herstellen und in der Filezilla-Konsole wird Folgendes angezeigt:

Status:         Verifying certificate...
Status:         TLS connection established.
Status:         Server does not support non-ASCII characters.
Status:         Logged in
Status:         Retrieving directory listing...
Status:         Server sent passive reply with unroutable address. Using server address instead.
Command:    LIST
Error:      Connection timed out after 20 seconds of inactivity
Error:      Failed to retrieve directory listing

Ich konfiguriere VSFTPD zum ersten Mal und habe mir daher einige Online-Tutorials zu Gemüte geführt. Darin war auch UFW enthalten und ich habe die Ports wie gezeigt geöffnet.

Ich habe auch versucht, die folgenden Zeilen zu meiner vsftpd.conf-Datei hinzuzufügen

  ssl_tlsv1=YES
  ssl_sslv2=NO
  ssl_sslv3=NO

  require_ssl_reuse=NO
  ssl_ciphers=HIGH

Ich habe andere Beiträge gesehen, in denen die Option pasv_address erwähnt wurde

also habe ich versucht, dies mit der externen IP meines Servers zu meiner Konfiguration hinzuzufügen – bitte beachten Sie, dass es auf Google Compute Engine gehostet wird und ich habe auch meine Firewall-Regeln in Compute aktualisiert, um dieselben Ports usw. zuzulassen, die im Tutorial angegeben wurden. Auch das funktioniert jedoch nicht.

Ich kann nur vermuten, dass es etwas mit Ports/Firewalls oder anderen TLS-Optionen zu tun hat, aber ich bin völlig ratlos. Ich schätze, es hilft nicht, dass ich die Google Cloud Network Firewall und dann UFW habe (obwohl das Deaktivieren von UFW keine Wirkung hat).

Meine UFW-Regeln sehen wie folgt aus:

20/tcp                     ALLOW       Anywhere                  
21/tcp                     ALLOW       Anywhere                                   
990/tcp                    ALLOW       Anywhere                  
40000:50000/tcp            ALLOW       Anywhere 

und falls jemand mehr wissen möchte, das Tutorial, das ich befolgt habe, war hier:FTP-Zugriff konfigurieren

Es scheinen keine Protokolle in vsftpd.log vorhanden zu sein, die auf ein Problem hinweisen würden, aber das Aktivieren der ausführlichen Protokollierung in Filezilla offenbart Folgendes:

Binden der IP-Quelle der Datenverbindung an die IP-Quelle der Steuerverbindung 192.168.1.100

was vermutlich ein Problem sein könnte, da es wie eine lokale IP aussieht. Allerdings bin ich ratlos, wie ich das beheben kann, insbesondere, da ich auch Folgendes in meiner vsftpd.conf-Datei habe:

pasv_address=(EXTERNE GOOGLE COMPUTE-IP)

Meine Google Cloud-Firewallregeln sind:

IP ranges: 0.0.0.0/0
tcp:20-21   
Allow
1000
default

pass-ports
sftp    
IP ranges: 0.0.0.0/0
tcp:40000-50000

(diese werden irgendwann IP-mäßig gesperrt, aber selbst beim Testen mit allen bekomme ich es nicht zum Laufen)

Und ich glaube, ich habe diese Ports auch in meiner Datei vsftpd.conf als die zu verwendenden Ports hinzugefügt:

port_enable=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=41000

Aktualisieren

Ich kann nun von der Box selbst aus eine Verbindung dazu herstellen, indem ich lftp und die folgenden Argumente verwende

setze ftp:ssl-force true

Ich verbinde mich über den Domänennamen und nicht über die IP, da das Zertifikat der Domäne zugeordnet ist und daher mit der IP nicht funktioniert.

Ich kann dann über die Befehlszeile neue Verzeichnisse usw. erstellen. Wenn ich das jedoch versuche, lsbleibt ls at 0 [Making data connection...]es einfach hängen. Ich erhalte auch einen Fehler über einen externen FTP-Client wie Filezilla. Dies läuft bei dem LISTBefehl einfach ab.

Command:    LIST
Error:          The data connection could not be established: ETIMEDOUT - Connection attempt timed out
Response:   425 Failed to establish connection.
Error:          Failed to retrieve directory listing
Error:          GnuTLS error -15: An unexpected TLS packet was received.
Status:         Disconnected from server: ECONNABORTED - Connection aborted

Die einzige andere Information, die meiner Meinung nach relevant sein könnte, ist, dass die Domäne von NGINX an eine Node-App weitergeleitet wird. Aber ich gehe davon aus, dass dies nur für die Ports 80 und 443 gelten sollte, Port 21 also nicht betroffen sein sollte.

Hat jemand eine Idee?

verwandte Informationen