AWS - FTPS

 

INTRODUCCIÓN

En esta práctica, aprenderemos a configurar un servidor FTP seguro utilizando FTPS (File Transfer Protocol Secure). Este protocolo extiende las funcionalidades de FTP tradicional al incorporar cifrado mediante TLS (Transport Layer Security) o SSL (Secure Sockets Layer), lo que garantiza la protección de las credenciales y los datos transferidos entre el cliente y el servidor.

El uso de FTPS es fundamental en entornos donde la seguridad es prioritaria, ya que asegura la confidencialidad de las comunicaciones y protege la información contra posibles interceptaciones. Además, configuraremos un usuario común en el servidor para que pueda conectarse y gestionar archivos de forma segura a través del cliente gráfico FileZilla, una herramienta ampliamente utilizada por su facilidad de uso y compatibilidad con FTPS.

Objetivos de la práctica

  1. Configurar un servidor FTPS:

    • Implementaremos vsftpd (Very Secure FTP Daemon) como servidor FTP en un entorno Linux y habilitaremos el cifrado mediante TLS.
  2. Crear y configurar un usuario común:

    • Crearemos un usuario local con acceso restringido a su directorio personal para garantizar la seguridad y evitar el acceso a archivos del sistema.
  3. Conectarse al servidor FTPS con FileZilla:

    • Configuraremos el cliente FileZilla para establecer una conexión segura con el servidor utilizando las credenciales del usuario creado.

Habilidades adquiridas

Al completar esta práctica, serás capaz de:

  • Instalar y configurar un servidor FTPS de manera segura.
  • Generar y utilizar un certificado TLS/SSL para proteger las conexiones.
  • Administrar usuarios y restringir sus accesos en un servidor FTP.
  • Utilizar herramientas gráficas como FileZilla para transferir archivos de forma segura a través de FTPS.

Relevancia de esta práctica

En el ámbito profesional, la transferencia segura de archivos es una tarea esencial, especialmente en organizaciones que manejan datos sensibles o trabajan en entornos en red. FTPS ofrece una solución compatible con sistemas existentes y cumple con estándares modernos de seguridad.

Esta práctica no solo te permitirá comprender el funcionamiento de FTPS, sino también adquirir habilidades prácticas para configurar y administrar un servidor FTP seguro, un conocimiento clave en la administración de sistemas y redes.

FTPS

FTPS (File Transfer Protocol Secure) es una extensión del protocolo FTP (File Transfer Protocol) que agrega soporte para conexiones seguras mediante TLS (Transport Layer Security) o SSL (Secure Sockets Layer). Su objetivo principal es garantizar la seguridad de las transferencias de archivos, protegiendo la confidencialidad, integridad y autenticación de las comunicaciones.

Características principales de FTPS

  1. Cifrado mediante TLS/SSL:

    • FTPS utiliza el protocolo de seguridad TLS/SSL para cifrar tanto los datos de autenticación (como contraseñas) como los datos transferidos entre el cliente y el servidor, evitando que sean interceptados por terceros.
  2. Autenticación segura:

    • Soporta autenticación mediante:
      • Usuario y contraseña cifrados.
      • Certificados digitales (para validar la identidad del servidor y/o del cliente).
  3. Compatibilidad con FTP tradicional:

    • FTPS conserva muchas de las funcionalidades de FTP, como comandos, estructura de directorios y modos de transferencia.
  4. Modos de operación:

    • FTPS puede funcionar en dos modos principales:
      • Explícito (Explicit FTPS): El cliente solicita explícitamente al servidor que inicie una conexión segura mediante un comando (AUTH TLS). Este es el modo más común y flexible.
      • Implícito (Implicit FTPS): La conexión comienza de forma segura desde el inicio, utilizando un puerto predeterminado (990) para FTPS. Este modo es menos utilizado actualmente.
  5. Puertos múltiples:

    • Como en FTP, FTPS utiliza puertos separados para las conexiones de control y de datos:
      • El puerto de control generalmente es el 21 (en modo explícito).
      • Los puertos para la transferencia de datos son dinámicos y dependen del modo pasivo o activo.

¿Cómo funciona FTPS?

  1. Establecimiento de la conexión:

    • El cliente se conecta al servidor a través del puerto de control (generalmente el 21).
    • En el caso del modo explícito, el cliente solicita una conexión segura con el comando AUTH TLS.
  2. Negociación del cifrado:

    • Una vez establecido el uso de TLS/SSL, el cliente y el servidor negocian los parámetros de cifrado. Esto incluye el intercambio de certificados digitales para autenticar al servidor (y opcionalmente al cliente).
  3. Transferencia de archivos:

    • Después de la autenticación y la configuración del canal cifrado, los archivos se transfieren de manera segura a través del puerto de datos.

Ventajas de FTPS

  1. Seguridad:

    • Las credenciales y los datos transferidos están cifrados, lo que protege contra interceptaciones y ataques de tipo "man-in-the-middle".
  2. Autenticación confiable:

    • El uso de certificados permite verificar la identidad del servidor y garantizar que no se está conectando a un servidor malicioso.
  3. Ampliamente soportado:

    • Muchas aplicaciones y clientes de FTP admiten FTPS debido a su compatibilidad con el protocolo FTP estándar.
  4. Cumplimiento normativo:

    • FTPS es útil para organizaciones que necesitan cumplir con regulaciones estrictas de seguridad, como PCI-DSS, que exige el cifrado de datos en tránsito.

Desventajas de FTPS

  1. Complejidad en la configuración:

    • Requiere configurar y gestionar certificados TLS/SSL en el servidor, lo que puede ser un desafío para administradores no experimentados.
  2. Problemas con firewalls y NAT:

    • Como utiliza puertos dinámicos para la transferencia de datos, puede ser complicado configurarlo correctamente en redes con firewalls o detrás de NAT.
  3. Velocidad:

    • El cifrado y descifrado de datos puede reducir ligeramente la velocidad de transferencia en comparación con FTP no cifrado.
  4. Menor compatibilidad con clientes modernos:

    • Aunque FTPS es ampliamente soportado, algunas herramientas modernas prefieren SFTP, que ofrece mayor simplicidad y seguridad al operar sobre SSH.

Diferencias entre FTPS y otros protocolos de transferencia de archivos


Casos de uso comunes de FTPS
  1. Transferencia de datos sensibles:

    • Útil para industrias como banca, comercio electrónico y salud, donde se requiere protección estricta de datos.
  2. Integración con sistemas heredados:

    • Empresas que utilizan servidores FTP antiguos pueden optar por FTPS para agregar seguridad sin cambiar completamente su infraestructura.
  3. Conformidad normativa:

    • FTPS es elegido a menudo para cumplir con estándares como GDPR, PCI-DSS o HIPAA.
FTPS es una excelente opción para quienes necesitan una solución de transferencia segura basada en FTP, especialmente en entornos que ya utilizan este protocolo y buscan cumplir con estándares modernos de seguridad.

PUERTO ACTIVO VS PASIVO

En los protocolos FTP y FTPS, los puertos pasivos y activos determinan cómo se establece la conexión de datos entre el cliente y el servidor. Para comprenderlos, es importante recordar que FTP utiliza dos canales principales:

  1. Canal de control: Para enviar comandos y recibir respuestas (generalmente en el puerto 21 o 990 en FTPS implícito).
  2. Canal de datos: Para transferir archivos o listar directorios, que utiliza puertos adicionales.

La diferencia entre los modos activo y pasivo está en quién inicia la conexión del canal de datos: el cliente o el servidor.

Modo Activo

En el modo activo, el cliente abre un puerto en su máquina y se lo comunica al servidor a través del canal de control. Luego, el servidor inicia una conexión de datos desde su propio puerto hacia el puerto que el cliente especificó.

Flujo del modo activo:

  1. El cliente se conecta al servidor en el puerto de control (puerto 21 o 990 en FTPS implícito).
  2. El cliente envía un comando PORT indicando el puerto que ha abierto en su máquina para recibir la conexión de datos.
  3. El servidor inicia una conexión desde su puerto de datos predeterminado (generalmente 20) hacia el puerto especificado por el cliente.
  4. La transferencia de datos ocurre a través de este canal.

Ventajas:

  • Simplicidad en la configuración del servidor, ya que utiliza un puerto fijo (generalmente el 20) para las conexiones de datos.

Desventajas:

  • Si el cliente está detrás de un firewall o una traducción de direcciones de red (NAT), el servidor no podrá conectarse al cliente porque el firewall bloquea las conexiones entrantes no solicitadas.

Modo Pasivo

En el modo pasivo, el servidor abre un puerto en su máquina para la conexión de datos y se lo comunica al cliente. Luego, el cliente inicia la conexión hacia el servidor en ese puerto.

Flujo del modo pasivo:

  1. El cliente se conecta al servidor en el puerto de control (puerto 21 o 990 en FTPS implícito).
  2. El cliente envía un comando PASV, solicitando que el servidor pase al modo pasivo.
  3. El servidor abre un puerto aleatorio dentro de un rango predefinido y responde con la información del puerto que el cliente debe usar.
  4. El cliente inicia una conexión hacia ese puerto en el servidor.
  5. La transferencia de datos ocurre a través de este canal.

Ventajas:

  • Funciona mejor cuando el cliente está detrás de un firewall o NAT, ya que el cliente siempre inicia la conexión de datos.

Desventajas:

  • Mayor complejidad en la configuración del servidor:
    • Es necesario configurar un rango fijo de puertos pasivos.
    • Los puertos deben estar abiertos en el firewall del servidor para permitir conexiones de datos.
Diferencias clave entre los modos Activo y Pasivo

Recomendaciones de uso

  1. Usar modo pasivo siempre que sea posible:

    • Es más compatible con clientes detrás de firewalls o NAT.
    • Simplifica las conexiones en entornos modernos donde los dispositivos están protegidos por firewalls.
  2. Configurar un rango de puertos fijo para modo pasivo:

    • Define un rango de puertos pequeños para conexiones pasivas y asegúrate de abrirlos en el firewall.
  3. Evitar el modo activo si el cliente está detrás de NAT o firewall:

    • El servidor no podrá iniciar conexiones de datos hacia un cliente detrás de un firewall a menos que este esté configurado para aceptar conexiones entrantes.

Básicamente, el modo activo depende de que el servidor pueda conectarse al cliente, mientras que el modo pasivo invierte este rol, permitiendo que el cliente siempre inicie las conexiones de datos hacia el servidor. El modo pasivo es la opción preferida en entornos modernos con firewalls y NAT.

FTPS IMPLICITO VS EXPLICITO

FTPS (File Transfer Protocol Secure) es una extensión de FTP que agrega seguridad mediante TLS/SSL. Sin embargo, puede operar en dos modos distintos: implícito y explícito. La diferencia principal entre ambos radica en cómo y cuándo se establece la conexión segura.

1. FTPS Implícito

En el modo implícito, la conexión es segura desde el inicio, sin posibilidad de negociarla. Tanto el cliente como el servidor asumen automáticamente que se usará cifrado mediante TLS/SSL.

Características principales:

  • Puerto predeterminado:
    • Utiliza el puerto 990 para el canal de control (en lugar del puerto 21 utilizado por FTP).
    • Los datos también se transfieren a través de puertos seguros.
  • Requiere cifrado obligatorio:
    • Si el cliente o el servidor no soporta TLS/SSL, la conexión es rechazada.
  • Sin comando de negociación:
    • No hay necesidad de enviar un comando como AUTH TLS. La conexión siempre comienza cifrada.
  • Compatibilidad:
    • Es menos común en entornos modernos porque muchas implementaciones prefieren el modo explícito por su flexibilidad.

Ventajas del modo implícito:

  1. Seguridad garantizada: La conexión siempre es cifrada; no hay posibilidad de configuraciones erróneas donde una conexión sin cifrar sea permitida por accidente.
  2. Fácil implementación en entornos con requisitos estrictos de seguridad.

Desventajas del modo implícito:

  1. Inflexible: Todos los clientes deben soportar FTPS implícito.
  2. Menor compatibilidad: Herramientas modernas como FileZilla suelen preferir el modo explícito.
  3. Requiere abrir un puerto diferente (990) en firewalls, lo que puede generar configuraciones adicionales.

2. FTPS Explícito

En el modo explícito, la conexión comienza como una conexión FTP estándar (sin cifrar) en el puerto 21. Sin embargo, el cliente solicita explícitamente al servidor que inicie una sesión segura utilizando el comando AUTH TLS.

Características principales:

  • Puerto predeterminado:
    • Utiliza el puerto estándar 21 para el canal de control.
    • Los datos pueden transferirse mediante puertos dinámicos configurados (en modo pasivo).
  • Cifrado opcional:
    • El cliente decide si solicita o no una conexión cifrada.
    • Esto hace que el servidor pueda aceptar conexiones tanto cifradas como no cifradas, dependiendo de la configuración.
  • Negociación de cifrado:
    • Se envía el comando AUTH TLS para iniciar el cifrado antes de la transferencia de datos.

Ventajas del modo explícito:

  1. Flexibilidad: Puede manejar tanto conexiones cifradas como no cifradas (útil en entornos con clientes mixtos).
  2. Compatibilidad: Soportado por la mayoría de los clientes modernos (FileZilla, WinSCP, etc.).
  3. Reutiliza el puerto 21: No es necesario abrir puertos adicionales para el canal de control, lo que simplifica la configuración de firewalls.

Desventajas del modo explícito:

  1. Seguridad dependiente de la configuración: Si el servidor no fuerza el uso de TLS, podrían permitirse conexiones no cifradas accidentalmente.
  2. Complejidad en la configuración inicial si se requiere forzar el uso de TLS.

Comparación entre FTPS Implícito y FTPS Explícito

¿Cuál elegir?

  1. Usa FTPS Implícito si:

    • Quieres garantizar que todas las conexiones sean seguras sin excepciones.
    • Estás trabajando en un entorno cerrado o con clientes que soporten FTPS implícito.
    • Prefieres usar un puerto distinto (990) para conexiones seguras.
  2. Usa FTPS Explícito si:

    • Quieres máxima compatibilidad con clientes modernos.
    • Deseas flexibilidad para aceptar tanto conexiones cifradas como no cifradas (útil en entornos de transición).
    • Prefieres simplificar la configuración utilizando el puerto 21.

En resumen, FTPS Explícito es más popular y recomendado en la mayoría de los casos debido a su compatibilidad y flexibilidad. Por otro lado, FTPS Implícito puede ser preferido en sistemas con estrictos requisitos de seguridad y donde solo se permiten conexiones cifradas.


Comentarios

Entradas populares