Cómo asegurar conexiones FTP en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial ofrece una guía integral para configurar y utilizar Secure FTP (FTPS) en un sistema Linux. FTPS es un protocolo de transferencia de archivos seguro que mejora el protocolo FTP tradicional al proporcionar cifrado y autenticación, garantizando la confidencialidad e integridad de los datos que se transmiten. Cubriremos los conceptos básicos de FTPS, sus ventajas sobre el FTP tradicional y los pasos para configurar un servidor FTPS y utilizar un cliente FTPS para transferir archivos de manera segura.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/RemoteAccessandNetworkingGroup -.-> linux/ssh("Secure Connecting") linux/RemoteAccessandNetworkingGroup -.-> linux/scp("Secure Copying") linux/RemoteAccessandNetworkingGroup -.-> linux/sftp("Secure File Transferring") linux/PackagesandSoftwaresGroup -.-> linux/openssl("OpenSSL") subgraph Lab Skills linux/service -.-> lab-409909{{"Cómo asegurar conexiones FTP en Linux"}} linux/ssh -.-> lab-409909{{"Cómo asegurar conexiones FTP en Linux"}} linux/scp -.-> lab-409909{{"Cómo asegurar conexiones FTP en Linux"}} linux/sftp -.-> lab-409909{{"Cómo asegurar conexiones FTP en Linux"}} linux/openssl -.-> lab-409909{{"Cómo asegurar conexiones FTP en Linux"}} end

Introducción a Secure FTP (FTPS)

Secure FTP (FTPS), también conocido como FTP sobre SSL/TLS, es un protocolo de transferencia de archivos seguro que mejora el protocolo FTP tradicional al proporcionar cifrado y autenticación. FTPS se utiliza ampliamente para transferir archivos de manera segura a través de Internet, garantizando la confidencialidad e integridad de los datos que se transmiten.

En esta sección, exploraremos los conceptos básicos de FTPS, sus ventajas sobre el FTP tradicional y cómo configurar y utilizar FTPS en un sistema Linux.

¿Qué es FTPS?

FTPS es una extensión del protocolo FTP estándar que agrega soporte para el cifrado SSL/TLS. Esto significa que todos los datos transmitidos entre el cliente y el servidor, incluyendo las credenciales de inicio de sesión, el contenido de los archivos y los metadatos, están cifrados, lo que proporciona un mayor nivel de seguridad en comparación con el FTP tradicional.

FTPS admite dos modos de operación principales:

  1. FTPS explícito: En este modo, el cliente inicia la conexión SSL/TLS enviando un comando específico (generalmente FTPS o AUTH TLS) al servidor. El servidor luego responde estableciendo la conexión segura.

  2. FTPS implícito: En este modo, el cliente inicia automáticamente la conexión SSL/TLS en un puerto predefinido (generalmente 990) sin necesidad de un comando específico.

Ventajas de FTPS

Las principales ventajas de utilizar FTPS en lugar del FTP tradicional incluyen:

  1. Cifrado: FTPS proporciona cifrado de extremo a extremo de los datos que se transfieren, protegiéndolos de la interceptación y el acceso no autorizado.

  2. Autenticación: FTPS admite la autenticación del cliente y del servidor, lo que garantiza que el cliente se esté conectando al servidor correcto y que el servidor esté aceptando conexiones de clientes autorizados.

  3. Cumplimiento: A menudo se requiere FTPS para cumplir con diversas normas y regulaciones industriales, como PCI-DSS, HIPAA y GLBA, que exigen el uso de protocolos de transferencia de archivos seguros.

  4. Mayor seguridad: En general, se considera que FTPS es más seguro que el FTP tradicional, ya que mitiga los riesgos de captura de contraseñas, ataques de intermediarios y otras vulnerabilidades de seguridad.

Casos de uso de FTPS

FTPS se utiliza comúnmente en una variedad de escenarios, incluyendo:

  • Aplicaciones financieras y bancarias: Transferir de manera segura datos financieros confidenciales, como información de cuentas, registros de transacciones e informes regulatorios.

  • Industrias de salud y medicina: Intercambiar información de salud protegida (PHI) y otros datos médicos confidenciales de conformidad con las regulaciones HIPAA.

  • Comercio electrónico y venta minorista en línea: Transferir datos de productos, información de inventario y datos de clientes de manera segura entre socios comerciales y proveedores.

  • Sector público y gubernamental: Compartir de manera segura información clasificada o confidencial entre agencias gubernamentales y partes autorizadas.

  • Compartición general de archivos e intercambio de datos: Proporcionar una alternativa segura al FTP tradicional para diversas necesidades de transferencia de archivos, como actualizaciones de software, distribución de contenido y copias de seguridad de datos.

En la siguiente sección, discutiremos cómo configurar un servidor FTPS en un sistema Linux y demostraremos el proceso de transferir archivos de manera segura utilizando un cliente FTPS.

Configuración de un servidor FTPS en Linux

En esta sección, lo guiaremos a través del proceso de configuración de un servidor FTPS en un sistema Linux, utilizando específicamente Ubuntu 22.04 como distribución de ejemplo.

Instalación del software del servidor FTPS

Para configurar un servidor FTPS en Ubuntu 22.04, utilizaremos el popular software de servidor FTP de código abierto, vsftpd (Very Secure FTP Daemon). vsftpd admite tanto el protocolo FTP tradicional como el protocolo FTPS, lo que lo convierte en una opción adecuada para la configuración de nuestro servidor FTPS.

Instale vsftpd ejecutando el siguiente comando en su terminal:

sudo apt-get update
sudo apt-get install vsftpd

Generación de certificados SSL/TLS

FTPS requiere certificados SSL/TLS para establecer la conexión segura entre el cliente y el servidor. Puede utilizar un certificado autofirmado o obtener un certificado de una Autoridad de Certificación (CA) de confianza.

Para generar un certificado autofirmado, utilice los siguientes comandos:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Este comando creará un certificado autofirmado y un archivo de clave en el directorio /etc/ssl/private/.

Configuración del servidor FTPS

A continuación, necesitamos configurar el servidor vsftpd para habilitar el soporte de FTPS. Edite el archivo de configuración de vsftpd:

sudo nano /etc/vsftpd.conf

Y agregue o modifique las siguientes líneas:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Esta configuración habilita FTPS, requiere cifrado SSL/TLS tanto para la transferencia de datos como para el inicio de sesión, y especifica la ubicación de los archivos de certificado y clave SSL/TLS.

Reinicio del servidor FTPS

Después de realizar los cambios de configuración necesarios, reinicie el servicio vsftpd para aplicar los cambios:

sudo systemctl restart vsftpd

Su servidor FTPS ahora está configurado y listo para aceptar conexiones seguras de clientes FTPS.

En la siguiente sección, demostraremos cómo transferir archivos de manera segura utilizando un cliente FTPS.

Transferencia segura de archivos con un cliente FTPS

Ahora que tenemos un servidor FTPS configurado, exploremos cómo utilizar un cliente FTPS para transferir archivos de manera segura.

Opciones de clientes FTPS

Hay varias aplicaciones de clientes FTPS disponibles, tanto basadas en línea de comandos como con interfaz gráfica de usuario (GUI). Para este tutorial, utilizaremos el cliente FTPS de línea de comandos lftp, que está disponible en Ubuntu 22.04.

Para instalar lftp, ejecute el siguiente comando:

sudo apt-get install lftp

Conexión al servidor FTPS

Para conectarse al servidor FTPS, utilice el siguiente comando de lftp:

lftp ftps://username:password@ftps-server-address

Reemplace username y password con las credenciales adecuadas de su servidor FTPS, y ftps-server-address con la dirección IP o el nombre de dominio de su servidor FTPS.

Una vez conectado, se le presentará el indicador de comandos de lftp, donde puede ejecutar varios comandos FTPS.

Comandos de transferencia de archivos FTPS

A continuación, se muestran algunos comandos FTPS comunes que puede utilizar con el cliente lftp:

  • ls: Lista los archivos y directorios en el servidor FTPS remoto.
  • cd directory: Cambia el directorio actual en el servidor FTPS remoto.
  • put local_file.txt: Sube un archivo local al servidor FTPS remoto.
  • get remote_file.txt: Descarga un archivo del servidor FTPS remoto a la máquina local.
  • mirror local_directory remote_directory: Sube o descarga recursivamente un directorio y su contenido.
  • quit: Desconecta del servidor FTPS y sale del cliente lftp.

Por ejemplo, para subir un archivo local llamado document.pdf al servidor FTPS, utilice el siguiente comando:

put document.pdf

Y para descargar un archivo llamado report.xlsx del servidor FTPS, utilice:

get report.xlsx

Recuerde navegar a los directorios adecuados tanto en el sistema local como en el remoto antes de emitir los comandos de transferencia de archivos.

Al utilizar el cliente FTPS lftp, puede transferir archivos de manera segura hacia y desde el servidor FTPS, garantizando la confidencialidad e integridad de sus datos.

Resumen

En este tutorial, ha aprendido sobre las ventajas de utilizar FTPS en lugar del FTP tradicional, incluyendo una mejor cifrado de datos, autenticación y cumplimiento con las normas industriales. También ha aprendido cómo configurar un servidor FTPS en un sistema Linux y cómo utilizar un cliente FTPS para transferir archivos de manera segura. Al implementar FTPS, puede mejorar la seguridad de sus procesos de transferencia de archivos y garantizar la confidencialidad e integridad de sus datos.