VSFTPD TLS y modo explícito

VSFTPD TLS y modo explícito

Actualmente estoy intentando configurar VSFTPD en un servidor Ubuntu 16.04 y quiero usar FTPS (lo ideal sería usar SFTP pero desafortunadamente estoy limitado por un sistema heredado)

Logré configurarlo usando la configuración predeterminada y sin TLS y puedo conectarme bien a través de filezilla. Aunque durante los últimos 2 días he estado intentando habilitar TLS y ninguna cantidad de preguntas sobre SE o en otros lugares parece conducir a un resultado positivo.

Los detalles de mi certificado en el archivo vsftpd.conf son los siguientes:

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

Sin embargo, ya no puedo conectarme con lo siguiente que se muestra en la consola de Filezilla:

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

Esta es la primera vez que configuro VSFTPD, así que he estado siguiendo algunos tutoriales en línea. También involucraron a UFW y abrí los puertos como se muestra.

También intenté agregar las siguientes líneas a mi archivo vsftpd.conf

  ssl_tlsv1=YES
  ssl_sslv2=NO
  ssl_sslv3=NO

  require_ssl_reuse=NO
  ssl_ciphers=HIGH

He visto otras publicaciones que mencionan la opción pasv_address

así que intenté agregar esto a mi configuración con la IP externa de mi servidor; tenga en cuenta que está alojado en Google Compute Engine y también actualicé mis reglas de firewall en Compute para permitir los mismos puertos, etc., que se especificaron en el tutorial. . Aunque esto tampoco funciona.

Sólo puedo asumir que tiene algo que ver con puertos/firewalls u otras opciones de TLS, pero estoy completamente perplejo. Supongo que no ayuda que tenga el firewall de red en la nube de Google y luego ufw (aunque deshabilitar ufw no tiene ningún efecto)

Mis reglas de ufw son las siguientes:

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

y si alguien quiere saber más el tutorial que seguí fue aquí:configurando-el-acceso-ftp

No parece haber ningún registro en vsftpd.log que indique un problema, pero al activar el registro detallado en filezilla se revela lo siguiente:

Vinculación de la IP de la fuente de conexión de datos para controlar la IP de la fuente de conexión 192.168.1.100

Lo cual supongo que podría ser un problema ya que parece una IP local. Aunque no sé cómo solucionar este problema, especialmente porque también tengo lo siguiente en mi archivo vsftpd.conf:

pasv_address=(IP DE COMPUTACIÓN EXTERNA DE GOOGLE)

Mis reglas de firewall de Google Cloud son:

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

(Estos se bloquearán con el tiempo en cuanto a IP, pero incluso probando con todo no puedo hacer que esto funcione)

Y también en mi archivo vsftpd.conf creo que agregué esos puertos como los que se pueden usar a través de:

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

Actualizar

Ahora puedo conectarme a esto desde el propio cuadro usando lftp y los siguientes argumentos

establecer ftp:ssl-force verdadero

Me conecto a través del nombre de dominio en lugar de IP, ya que el certificado está asignado al dominio, por lo que no funcionará con la IP.

Luego puedo crear nuevos directorios, etc. a través de la línea de comando. Sin embargo, si intento hacerlo, lslo consigo ls at 0 [Making data connection...]y simplemente se queda ahí. También recibo un error a través de un cliente FTP externo como filezilla. Esto solo se agota con el LISTcomando.

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

La única otra información que creo que podría ser relevante es que NGINX reenvía el puerto del dominio a una aplicación de nodo. Pero supongo que esto sólo debería hacer esto para los puertos 80 y 443, por lo que no debería afectar al puerto 21.

¿Alguien tiene alguna idea?

información relacionada