Cómo configurar vsftpd para que funcione con modo pasivo

Cómo configurar vsftpd para que funcione con modo pasivo

vsftpdCada vez que instalo centos, solo configuro el entorno de cárcel para los usuarios y el resto es la configuración predeterminada vsftpd. Creo un usuario e intento conectarme con filezilael cliente ftp, pero no pude conectarme en modo pasivo. Siempre cambio al transfer settingsmodo activo para conectarme exitosamente, ftp serverde lo contrario obtengo

 Error: Failed to retrieve directory listing

Entonces, ¿hay alguna manera de cambiar alguna directiva en vsftp.confel archivo y podemos conectarnos con el modo pasivo al servidor?

Respuesta1

Para configurar el modo pasivo para vsftpd, necesita configurar algunos parámetros en vsftpd.conf.

pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090

Esto habilita el modo pasivo y lo restringe al uso de los once puertos para conexiones de datos. Esto es útil ya que necesita abrir estos puertos en su firewall.

iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT

Si después de probar todo esto funciona, guarde el estado de su firewall con

service iptables save

que actualizará el /etc/sysconfig/iptablesarchivo.

Para hacer esto en CentOS 7, debes usar el nuevo firewalld, no iptables:

Encuentra tu zona:

# firewall-cmd --get-active-zones
public
  interfaces: eth0

Mi zona es 'pública', así que la configuro como pública, agrego el rango de puertos y luego recargamos:

# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload

¿Qué sucede cuando haces una conexión?

  • Su cliente establece una conexión con el servidor vsftpd en el puerto 21.

  • El servidor responde al cliente diciéndole a qué puerto conectarse dentro del rango especificado anteriormente.

  • El cliente realiza una conexión de datos en el puerto especificado y la sesión continúa.

Hay una gran explicación de los diferentes ftp.modosaquí.

Respuesta2

Para habilitar el modo pasivo, establezca las siguientes opciones de configuración en su vsftp.conf:

pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx

Por supuesto, puede cambiar el puerto de inicio y fin, y debe reemplazar los xxx con la IP pública de su servidor.

Además, debes abrir el rango de puertos del modo pasivo en tu firewall. En centos, puede cargar el ip_conntrack_ftpmódulo para manejar conexiones ftp en su firewall. Edite /etc/sysconfig/iptables-configy agregue ip_conntrack_ftp a la opción IPTABLES_MODULES. Luego reinicie iptables:

/sbin/service iptables restart

Respuesta3

Al lado de pasv_enable=YES, especifique un rango de puertos en el que VSFTP ejecutará el modo PASV:

pasv_min_port=50000
pasv_max_port=50999
pasv_enable=YES

No olvide configurar iptables para permitir la transmisión de paquetes en estos puertos:

iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT

Respuesta4

Por lo general, no es el servidor ftp, vsftpd, sino el firewall como iptable el que impide que se utilice el modo pasivo (bloqueando la conexión tcp necesaria para la transferencia de datos).

información relacionada