Para configurar el modo pasivo para vsftpd necesita establecer 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 las 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/iptables
archivo.
Para hacer esto es CentOS 7, debe usar el nuevo firewalld, no iptables:
Encuentra tu zona:
# firewall-cmd --get-active-zones
public
interfaces: eth0
Mi zona es 'pública', así que configuro mi zona en pública, agrego el rango de puertos y luego volvemos a cargar:
# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload
¿Qué sucede cuando haces una conexión?
Su cliente se conecta al servidor vsftpd en el puerto 21.
El servidor responde al cliente diciéndole a qué puerto conectarse desde el rango especificado anteriormente.
El cliente realiza una conexión de datos en el puerto especificado y la sesión continúa.
Aquí hay una gran explicación de los diferentes modos ftp .
user9517 es compatible con GoFundMonica
fuente
max
puerto después delmin
... pero lo más importante, si abres los puertos 10090 a 10100, son 11 puertos y no 10 como dices.pasv_address
.Para habilitar el modo pasivo, configure las siguientes opciones de configuración en su vsftp.conf:
Por supuesto, puede cambiar el puerto de inicio y finalización, y debe reemplazar los xxx con la IP pública de su servidor.
Además, debe abrir el rango de puertos en modo pasivo en su firewall. En centos, puede cargar el
ip_conntrack_ftp
módulo para manejar conexiones ftp en su firewall. Edite/etc/sysconfig/iptables-config
y agregue ip_conntrack_ftp a la opción IPTABLES_MODULES. Luego reinicie iptables:fuente
pasv_address
es lo que funciona cuando todo lo demás se ha configurado y todavía no funciona.pasv_address
, debe agregarpasv_addr_resolve=YES
(por defectoNO
)Además de
pasv_enable=YES
, especifique un rango de puertos en el que VSFTP ejecutará el modo PASV:No olvide configurar iptables que permite la transmisión de paquetes en estos puertos:
fuente
iptables -A INPUT ...
que se ignoren las reglas agregadaspasv_address
en el archivo vsftpd.conf.Por lo general, no es el servidor ftp, vsftpd, sino el firewall como iptable lo que evita que se use el modo pasivo (bloqueando la conexión tcp necesaria para la transferencia de datos).
fuente