En los servidores FTP existen dos modos para la transferencia de datos, el activo y el pasivo. En el modo activo el encargado de iniciar la transferencia de datos es el propio servidor, en cambio en el modo pasivo es el cliente quien solicita un puerto abierto en el servidor para establecer e iniciar la transferencia de datos. Conectar a un FTP en modo pasivo puede resolver problemas de conexión si hay un Firewall en el lado cliente, ya que al establecerse la conexión desde el cliente no debería haber problemas en el filtrado o bloqueo de conexiones entrantes.
Para configurar el FTP de Plesk en modo pasivo tenemos que conectarnos por SSH a nuestro servidor con el usuario "root".
Verificamos sí existe el siguiente fichero "55-passive-ports.conf":
# ls -l /etc/proftpd.d/
En caso de no existir creamos el fichero:
# vi /etc/proftpd.d/55-passive-ports.conf
Añadimos el siguiente contenido:
<Global>
PassivePorts 49152 65535
</Global>
En caso de existir verificamos que el contenido sea el anterior con el comando:
# cat /etc/proftpd.d/55-passive-ports.conf
Reiniciamos el servicio:
# systemctl restart xinetd
Agregar reglas en el Firewall de Plesk
Información
Si no tienes instalado el Firewall de Plesk puedes omitir este paso.
Si tenemos habilitado el Firewall de Plesk tendremos que asegurarnos que tenemos los puertos 49152 a 65535 abiertos para el tráfico de entrada. En caso de no tenerlos abiertos por defecto tenéis que seguir los siguientes pasos:
Nos dirigimos a "Tools & Settings > Firewall".
Hacemos clic en "Modify Plesk Firewall Rules".
Luego clic en "Add Custom Rule" .
En el siguiente formulario rellanamos el nombre de la regla("Name of the rule"), indicamos el tráfico de entrada("Incoming"), permitimos el tráfico con la opción "Allow" y añadimos el rango de puertos "49152-65535" en "Add port range". Por últimos hacemos clic en "Ok" para crear la regla.
Para que la regla empiece a funcionar tenemos que hacer clic en "Apply Changes".
Una vez realizados los pasos anteriores podemos ver la regla creada en el listado de reglas del Firewall.
Agregar reglas en el Firewall de Clouding
Para que nuestro servidor acepte el tráfico por los puertos pasivos del FTP de Plesk tenemos que abrir los puertos 49152 a 65535 en el Firewall del panel de cliente.
Para ello accedemos al Panel de cliente y en el apartado Red de nuestro servidor editamos el firewall que tengamos vinculado.
Hacemos clic en el icono de "+" para añadir una nueva regla.
Volvemos a hacer clic en el icono "+" para añadir una norma personalizada.
Configuramos la nueva regla con el protocolo "TCP" desde el puerto 49152 al puerto 65535 y con IP de origen 0.0.0.0/0 para permitir las conexiones desde cualquier dirección IP.
Con estos pasos en el panel de cliente nuestro servidor ya podrá aceptar las conexiones para el FTP pasivo configurado anteriormente en Plesk.
Conectar al FTP en modo pasivo con Filezilla
Abrimos el cliente FTP Filezilla y abrimos el "Gestor de sitios".
Hacemos clic en "Nuevo sitio".
A la izquierda establecemos el nombre identificativo para la conexión. En el formulario de la derecha tenemos que indicar la dirección IP o el dominio que tengamos configurado en Plesk. Si no hemos configurado un certificado SSL para permitir conexiones seguras tendremos que indicar "Usar sólo FTP plano(inseguro) en el método de cifrado.
Por último, nos desplazamos a la pestaña "Opciones de Transferencia" e indicamos el modo "Pasivo" y hacemos clic en "Conectar". Nos pedirá el usuario y contraseña de nuestra cuenta de FTP y ya estaremos conectados para realizar transferencias en modo pasivo.
Conectar al FTP en modo pasivo desde Ubuntu Server
Para conectarnos por FTP en modo pasivo desde la línea de comandos de un Ubuntu Server ejecutaremos el siguiente comando:
ftp -d localhost
Connected to localhost.localdomain.
220 ProFTPD Server (ProFTPD) [::1]
ftp: setsockopt: Bad file descriptor
Name (localhost:root): ftpadmin
---> USER ftpadmin
331 Password required for ftpadmin
Password:
---> PASS XXXX
230 User ftpadmin logged in
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
Ahora tenemos que indicar que queremos usar el modo pasivo:
ftp> passive
Passive mode on.
Realizamos un listado de los recursos del directorio raíz de nuestra conexión FTP:
ftp> ls
---> EPSV 2
229 Entering Extended Passive Mode (|||50042|)
---> LIST
150 Opening BINARY mode data connection for file list
drwxr-xr-x 2 ftpadmin psacln 4096 Jun 30 14:32 error_docs
drwxr-x--- 2 ftpadmin psaserv 4096 Jun 30 14:32 httpdocs
drwx------ 2 ftpadmin root 4096 Jul 1 06:26 logs
226 Transfer complete