Logo de la Wiki FTP

Servidor FTP

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.