Configuración y Funcionamiento de Servidores FTP: Modos Activo y Pasivo, Conexiones y Seguridad

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,19 KB

Tipos de Acceso en Servidores FTP

Los servidores FTP ofrecen dos modalidades principales de acceso para los clientes:

Acceso Anónimo

  • Permite la conexión utilizando los nombres de usuario anonymous o ftp.
  • Generalmente, el acceso anónimo está restringido a la descarga de archivos y limitado a un directorio específico.

Acceso Autorizado

  • Requiere un usuario previamente creado en el servidor.
  • Los clientes FTP pueden ser:
    • Clientes locales: Integrados en el sistema operativo del servidor FTP.
    • Clientes virtuales: Gestionados a través de bases de datos, servicios de directorio, archivos de texto, etc.
  • Cada usuario dispone de privilegios específicos (descarga, subida, borrado, acceso a directorios, límites de velocidad, etc.).

Conexiones de Control y Datos en FTP

Los servidores y clientes FTP utilizan conexiones TCP separadas para el control y la transferencia de datos. Cuando un cliente establece una conexión TCP inicial, se establece otra conexión en un puerto diferente para la transmisión de los datos del archivo. Por defecto, los servidores emplean el puerto 21/TCP para las conexiones de control y el 20/TCP para las de datos.

Conexión de Control

  • El cliente inicia la conexión para comunicarse con el servidor FTP.
  • Se envían comandos como get (descarga), put (subida), ls (listado), etc.
  • El servidor responde a estas solicitudes.
  • La conexión se mantiene activa hasta que el cliente cierra la sesión o el servidor la finaliza por timeout.
  • Los servidores pueden gestionar múltiples conexiones de control simultáneamente (según su configuración) para evitar la sobrecarga.

Conexión de Datos

  • Se crea una nueva conexión (de datos) cuando el cliente solicita una transferencia de información.
  • Esta conexión se cierra al finalizar la transferencia.
  • Puede haber múltiples conexiones de datos asociadas a una única conexión de control.
  • Los datos y los comandos nunca se mezclan entre las conexiones de datos y control.

Modo Activo (Nativo) de FTP: Funcionamiento

  1. El cliente abre dos puertos aleatorios no privilegiados (N > 1024 y N+1). El puerto de control N se conecta al puerto 21 del servidor y envía el comando PORT indicando el puerto N+1.
  2. El servidor recibe el comando PORT.
  3. El cliente inicia la conexión de datos desde el puerto N+1.
  4. El servidor se conecta desde su puerto 20 al puerto N+1 del cliente.
  5. El servidor finaliza la conexión con un mensaje ACK.

Modo Pasivo (PASV) de FTP: Funcionamiento

  1. El cliente abre dos puertos aleatorios no privilegiados (N > 1024 y N+1). El puerto de control N se conecta al puerto 21 del servidor y envía el comando PASV.
  2. El servidor abre un puerto aleatorio no privilegiado (P > 1023) y envía el comando PORT P al cliente.
  3. El cliente inicia una conexión desde el puerto N+1 al puerto P en el servidor para transferir datos.
  4. El servidor finaliza la conexión con un mensaje ACK.

Ventajas y Desventajas del Modo Pasivo

  • Ventaja: Soluciona el problema de que el cliente tenga que aceptar conexiones entrantes en puertos superiores a 1024.
  • Desventajas:
    • Traslada la complejidad al servidor.
    • La seguridad del servidor FTP puede verse comprometida al tener que aceptar conexiones en múltiples puertos.
    • Requiere el uso de cortafuegos en el servidor.
    • Si el servidor está detrás de un NAT, es necesario abrir y redirigir un rango de puertos al equipo donde reside el servidor FTP.

Cortafuegos y Encaminadores NAT con FTP

Para utilizar servidores y clientes FTP en modo activo y pasivo, es fundamental configurar adecuadamente los cortafuegos y los encaminadores NAT (si existen).

Clientes FTP

Conexión en Modo Activo

  • El cortafuegos debe permitir conexiones TCP salientes hacia el puerto 21 y conexiones entrantes a puertos mayores que 1024.
  • Si el cliente está detrás de un NAT:
    • Sin FTP ALG (Application Layer Gateway): Habrá problemas porque se filtrarán las conexiones TCP iniciadas al servidor FTP.
    • Con FTP ALG: Los clientes podrán usar el modo activo sin inconvenientes.

Conexión en Modo Pasivo

  • Los cortafuegos deben permitir conexiones TCP salientes hacia el puerto 21 y puertos mayores que 1023.
  • Si el cliente está detrás de un NAT, el ALG deberá encargarse de abrir los puertos dinámicos.

Servidores FTP

Conexión en Modo Activo

  • El cortafuegos debe permitir conexiones entrantes al puerto 21 y conexiones salientes desde el puerto 20.

Conexión en Modo Pasivo

  • El cortafuegos debe permitir conexiones entrantes al puerto 21 y a un rango de puertos superiores a 1023. Este rango se configura en el servidor.

Entradas relacionadas: