
Funcionamiento
Arquitectura cliente-servidor
Es un modelo de comunicación en redes donde un cliente solicita servicios o recursos a un servidor, el cual procesa la solicitud y responde con la información requerida. Este modelo es ampliamente utilizado en aplicaciones web, bases de datos y protocolos como FTP, HTTP y SMTP.
Tipos de conexiones (Activa vs. Pasiva)
El protocolo FTP utiliza dos canales para la comunicación entre el cliente y el servidor :1.- Canal de control (puerto 21) → Para enviar comandos y recibir respuestas.
2.- Canal de datos (puerto 20 o dinámico) → Para transferir archivos. Dependiendo de cómo se establece el canal de datos, FTP puede operar en modo activo o pasivo
Modo Activo
▪ El cliente inicia la conexión con el servidor a través del puerto 21 (canal de control). ▪ El servidor inicia la conexión de datos desde el puerto 20 hacia un puerto aleatorio del cliente. ▪ En este caso se pueden presentar algunos problemas, ya que hay muchos cortafuegos y enrutadores modernos bloquean conexiones entrantes no solicitadas, lo que puede causar fallos en la transferencia.
Modo Pasivo
▪ El cliente se conecta al servidor en el puerto 21 (canal de control). ▪ En lugar de que el servidor inicie la conexión de datos, el cliente la establece en un puerto dinámico que el servidor indica. ▪ Este modo tiene la ventaja de que funciona mejor con firewalls y NAT, ya que todas las conexiones son iniciadas por el cliente. • Seguridad en FTP (FTPS y SFTP).
Seguridad en FTP (FTPS y SFTP)
El protocolo FTP estándar no cifra la información, lo que lo hace vulnerable a ataques como la intercepción de datos (sniffing) y ataques “man-in-the-middle”. Para mejorar la seguridad en la transferencia de archivos, se desarrollaron los siguientes protocolos:
FTPS (FTP Seguro)
- Es una extorsión de FTP que agrega cifrado SSL/TLS para proteger la conexión.
- Basado en el protocolo FTP tradicional, pero con autenticación segura.
- Es compatible con clientes y servidores FTP tradicionales con soporte para SSL/TLS.
- Modos de cifrado:
- Explícito: Requiere TLS.
- Implícito: TLS automático.
Desventajas:
- Requiere la configuración de certificados SSL/TLS en el servidor.
- Puede tener problemas con firewalls debido al uso de múltiples puertos.

SFTP (Protocolo de transferencia de archivos SSH)
- Es un protocolo totalmente diferente a FTP, basado en SSH (Secure Shell).
- No usa FTP tradicional, sino que implementa su propia capa segura sobre SSH.
- Utiliza un solo puerto (generalmente el puerto 22), lo que facilita la configuración en firewalls.
- Usa autenticación con claves SSH en lugar de contraseñas.
Desventajas:
- No es compatible con servidores FTP tradicionales (requiere un servidor SSH).
- Puede ser más complejo de implementar en algunos entornos.
