
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, ls
lo 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 LIST
comando.
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?