
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, ls
bleibt 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 LIST
Befehl 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?