FTP, que significa File Transfer Protocol (Protocolo de Transferencia de Archivos), es un protocolo de red estándar utilizado para la transferencia de archivos de computadora entre un cliente y un servidor en una red basada en TCP/IP como Internet.
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
FTP es una forma de permitir la transferencia segura de archivos de un lugar a otro y también puede permitir la administración de archivos en el servidor.
En FTP, hay dos modos de conexión: FTP Activo y FTP Pasivo.
FTP Activo
En el FTP activo, la conexión se inicia desde el cliente a un puerto de comando en el servidor. Cuando el cliente solicita la transferencia de un archivo, el servidor inicia la conexión de datos de vuelta al cliente.
El flujo de información en el FTP Activo se produce de la siguiente manera:
- El cliente se conecta desde un puerto aleatorio (N) al puerto 21 en el servidor (el puerto para FTP) y envía el comando PORT al servidor. Este comando le dice al servidor a qué puerto debe conectarse (el puerto N+1).
- Una vez que el servidor recibe este comando, se conecta desde su puerto de datos (normalmente el puerto 20) al puerto especificado por el cliente (N+1) y comienza la transferencia de datos.
Ventajas del FTP Activo
- Facilita la configuración del servidor: El FTP Activo es más fácil de configurar desde el lado del servidor porque solo se necesita abrir y escuchar un solo puerto (el puerto 21).
Desventajas del FTP Activo
- Problemas con los firewalls: Los clientes que están detrás de un firewall a menudo encuentran problemas con el FTP Activo. Esto se debe a que el firewall ve la conexión de datos iniciada por el servidor como no solicitada y la bloquea.
- Requerimientos de seguridad: Puede ser un riesgo de seguridad ya que el servidor inicia la conexión de datos al cliente, lo que podría ser explotado por un atacante.
En resumen, el FTP Activo es útil y fácil de configurar desde el lado del servidor. Sin embargo, puede tener problemas con los firewalls del cliente y presentar ciertos riesgos de seguridad.
Por estos motivos, muchas organizaciones optan por utilizar el FTP Pasivo, que, aunque puede ser más difícil de configurar en el servidor, tiene menos problemas con los firewalls y proporciona un mejor control de las conexiones de datos.
El FTP Activo se utiliza generalmente en los siguientes escenarios
Servidores con restricciones de firewall estrictas: Si el servidor FTP está detrás de un firewall con políticas de seguridad estrictas que limitan los puertos que pueden usarse para las conexiones entrantes, el FTP Activo podría ser una opción viable ya que solo necesita abrir y escuchar el puerto 21.
Limitaciones de recursos del servidor: En el FTP Activo, el servidor solo necesita abrir y escuchar un solo puerto para todas las conexiones de datos. Esto puede ser beneficioso si el servidor tiene recursos limitados y no puede manejar la apertura de múltiples puertos como se requiere en el FTP Pasivo.
Control de la red: Algunos administradores de red pueden preferir el FTP Activo porque permite un mayor control sobre las conexiones de datos. En el FTP Activo, el servidor inicia la conexión de datos, lo que significa que los administradores pueden tener un mayor control sobre las transferencias de datos.
FTP Pasivo
El FTP Pasivo se diseñó para superar los problemas de los firewalls y routers en la conexión de datos del FTP Activo. A diferencia del FTP Activo, en el FTP Pasivo es el cliente quien inicia ambas conexiones (la conexión de comando y la conexión de datos) con el servidor.
El flujo de información en el FTP Pasivo es como sigue:
- El cliente se conecta desde un puerto aleatorio (N) al puerto 21 en el servidor (el puerto para FTP) y envía el comando PASV al servidor. Este comando le dice al servidor que está en modo pasivo y está esperando una respuesta del servidor con un puerto para la conexión de datos.
- El servidor responde desde el puerto 21 al puerto N del cliente, proporcionando un puerto no privilegiado (mayor a 1023) para recibir la conexión de datos.
- Luego, el cliente inicia la segunda conexión desde otro puerto aleatorio (N+1) a ese puerto no privilegiado especificado por el servidor. Una vez establecida esta conexión, comienza la transferencia de datos.
Ventajas del FTP Pasivo
- Superación de problemas con firewalls y routers: Los firewalls y routers suelen permitir conexiones iniciadas por el cliente, por lo que el FTP Pasivo generalmente no tiene los problemas de firewall que ocurren con el FTP Activo.
- Seguridad mejorada: Como el cliente inicia todas las conexiones, hay menos riesgo de ataques desde el servidor.
Desventajas del FTP Pasivo
- Configuración del servidor más compleja: En el FTP Pasivo, el servidor debe ser capaz de proporcionar y abrir múltiples puertos no privilegiados para las conexiones de datos, lo que puede ser más difícil de configurar y administrar que en el FTP Activo.
- Mayor carga en el servidor: Como el servidor tiene que manejar múltiples conexiones iniciadas por el cliente, puede requerir más recursos del servidor.
En conslusión, el FTP Pasivo proporciona una solución para los problemas de firewall que suelen ocurrir con el FTP Activo, y también puede proporcionar una seguridad mejorada. Sin embargo, puede ser más difícil de configurar en el servidor y puede requerir más recursos del servidor.
El FTP Pasivo se utiliza generalmente en los siguientes escenarios
Clientes detrás de un firewall: El FTP Pasivo es útil cuando el cliente está detrás de un firewall que no permite conexiones entrantes. En el FTP Pasivo, es el cliente quien inicia todas las conexiones, por lo que los firewalls suelen permitir estas conexiones.
NAT (Network Address Translation): Si el cliente está detrás de un NAT, puede tener problemas con el FTP Activo porque el NAT puede no saber cómo manejar la conexión de datos iniciada por el servidor. El FTP Pasivo puede evitar este problema porque todas las conexiones son iniciadas por el cliente.
Seguridad: Algunas organizaciones pueden preferir el FTP Pasivo debido a consideraciones de seguridad. Como todas las conexiones son iniciadas por el cliente, hay menos riesgo de ataques desde el servidor.
Transmisión de datos a gran escala: El FTP Pasivo puede manejar un gran número de transferencias de datos simultáneas, ya que cada transferencia tiene su propia conexión de datos. Esto puede ser beneficioso en escenarios donde se necesitan muchas transferencias de datos simultáneas.
Ejemplos de configuración en un dispositivo Cisco
Configuración para FTP Activo
En este caso, se ha definido la interfaz desde la que el router inicia conexiones FTP y se ha especificado el nombre de usuario y la contraseña que se usarán para las conexiones FTP.
Router(config)# ip ftp source-interface FastEthernet 0/0
Router(config)# ip ftp username myusername
Router(config)# ip ftp password 0 mypassword
Configuración para FTP Pasivo
El comando ‘ip ftp passive’ configura el router para usar FTP Pasivo en lugar de FTP Activo. El nombre de usuario y la contraseña para las conexiones FTP se pueden configurar de la misma manera que en el FTP Activo.
Router(config)# ip ftp passive
Ejemplos de configuración en un dispositivo MikroTik
Configuración para FTP Activo
Este comando ‘fetch’ inicia una transferencia de archivos desde el router MikroTik (cliente) al servidor FTP. El modo predeterminado es FTP Activo.
[admin@MikroTik] /tool fetch> print
mode: ftp
address: 192.168.88.1
src-path: myfile.txt
user: myusername
password: mypassword
port: 21
Configuración para FTP Pasivo
Al agregar la opción ‘passive: yes’, el comando ‘fetch’ usará FTP Pasivo en lugar de FTP Activo.
[admin@MikroTik] /tool fetch> print
mode: ftp
address: 192.168.88.1
src-path: myfile.txt
user: myusername
password: mypassword
port: 21
passive: yes
Tabla comparativa de los modos de conexión FTP Activo y FTP Pasivo
FTP Activo | FTP Pasivo | |
---|---|---|
Ventajas | 1. Configuración más sencilla en el servidor: solo se necesita abrir y escuchar un solo puerto. | 1. Menos problemas con firewalls y NAT porque el cliente inicia todas las conexiones. |
2. Menor demanda de recursos del servidor: el servidor solo necesita abrir y escuchar un solo puerto. | 2. Mejora la seguridad ya que todas las conexiones son iniciadas por el cliente. | |
3. Mayor control de la red: el servidor inicia las conexiones de datos. | 3. Puede manejar un gran número de transferencias de datos simultáneas ya que cada transferencia tiene su propia conexión de datos. | |
Desventajas | 1. Problemas con firewalls y NAT del lado del cliente: pueden bloquear la conexión de datos iniciada por el servidor. | 1. Configuración más compleja en el servidor: se deben proporcionar y abrir múltiples puertos. |
2. Posibles riesgos de seguridad: el servidor inicia la conexión de datos al cliente. | 2. Mayor demanda de recursos del servidor: el servidor tiene que manejar múltiples conexiones iniciadas por el cliente. |