paint-brush
Configuración de un servidor MinIO FTP/SFTP: ahora con más opciones de datos que nuncapor@minio
8,302 lecturas
8,302 lecturas

Configuración de un servidor MinIO FTP/SFTP: ahora con más opciones de datos que nunca

por MinIO6m2023/07/25
Read on Terminal Reader

Demasiado Largo; Para Leer

Si bien la API de S3 es fundamentalmente superior, carece de la simplicidad básica de FTP/SFTP y la capacidad de ejecutarse en entornos altamente restringidos. Como resultado, MinIO agregó soporte para FTP y SFTP en el servidor MinIO.
featured image - Configuración de un servidor MinIO FTP/SFTP: ahora con más opciones de datos que nunca
MinIO HackerNoon profile picture
0-item
1-item
2-item

Es extraño pensar en cuánto tiempo ha existido el Protocolo de transferencia de archivos ( FTP ). Desarrollado por primera vez en 1971 por Abhay Bhushan, un estudiante del MIT, se utilizó inicialmente para transferir archivos entre computadoras en ARPANET. No hace falta decir que evolucionó, con funciones de autenticación, cifrado y compresión. Sigue siendo un protocolo ampliamente utilizado para transferir archivos a través de Internet, especialmente en los casos en que es necesario transferir archivos grandes o una gran cantidad de archivos de forma rápida y confiable.


Si bien la API de S3 es fundamentalmente superior, carece de la simplicidad básica de FTP/SFTP y la capacidad de ejecutarse en entornos altamente restringidos. Como resultado, MinIO agregó soporte para FTP y SFTP en el servidor MinIO. Con esta nueva funcionalidad, el usuario (o la aplicación) cree que está hablando con un servidor FTP cuando en realidad está hablando con MinIO. Las ventajas deberían ser evidentes: mover datos a MinIO se vuelve fluido y, desde la perspectiva de la aplicación/usuario, todo es esencialmente igual: desde políticas, seguridad, etc.


Las operaciones FTP/SFTP admitidas actualmente son las siguientes:


comandos ftp-cliente

soportado

conseguir

poner

ls

mkdir

rmdir

borrar

adjuntar

No

rebautizar

No


MinIO admite los siguientes protocolos basados en FTP/SFTP para acceder y administrar datos.


  • Protocolo seguro de transferencia de archivos ( SFTP ): definido por el Grupo de trabajo de ingeniería de Internet (IETF) como una versión extendida de SSH 2.0, que permite la transferencia de archivos a través de SSH y para su uso con seguridad de la capa de transporte (TLS) y aplicaciones VPN.


  • Protocolo de transferencia de archivos sobre SSL/TLS ( FTPS ): comunicación FTP encriptada a través de certificados TLS.


  • Protocolo de transferencia de archivos ( FTP ): definido originalmente por RFC114 y reemplazado por RFC765 y RFC959 comunicación FTP sin cifrar

    • Esto NO es recomendable


Lo que se cubre en esta versión:


  • Se permite el acceso a todas las credenciales de IAM, excepto las credenciales rotativas, las credenciales rotativas no pueden iniciar sesión a través de puertos FTP/SFTP . Debe usar el puerto API de S3 si está usando credenciales rotativas.


  • El acceso a los depósitos y objetos se rige a través de políticas de IAM asociadas con las credenciales de inicio de sesión entrantes.


  • Permite la autenticación y el acceso para todos

    • Usuarios IDP incorporados y sus respectivas cuentas de servicio
    • Usuarios de LDAP/AD y sus respectivas cuentas de servicio
    • Cuentas de servicio OpenID/OIDC


  • En depósitos versionados, FTP/SFTP solo funciona en los objetos más recientes. Si necesita recuperar una versión anterior, debe usar un S3 API client como mc .


  • Todas las funciones utilizadas actualmente por sus cubos funcionarán "tal cual" sin ningún cambio
    -SSE (cifrado del lado del servidor)
    -Replicación (Replicación del lado del servidor)


Esencialmente, esto debería ser una adición de protocolo perfecta desde la perspectiva del desarrollador/administrador.

Requisitos previos y notas

Esta funcionalidad está disponible a partir de RELEASE.2023-04-20T17-56-55Z .


Se supone que los usuarios ya han sido creados y configurados con políticas de acceso relevantes . MinIO recomienda comenzar con una política enlatada básica de "lectura y escritura" para probar todas las operaciones antes de finalizar qué nivel de restricciones se necesitan para un usuario.


No se necesitan operaciones "admin:*" para el acceso FTP/SFTP a los depósitos y objetos. Se pueden omitir por restricciones.


Nota importante: FTP/SFTP no está habilitado de forma predeterminada. Debe habilitarse en la configuración. Además, no hay funcionalidad de administración disponible a través de FTP , esto debe hacerse a través de la línea de comandos.

Uso

Inicie MinIO en una configuración distribuida, con FTP/SFTP habilitado.


 minio server http://server{1...4}/disk{1...4} --ftp="address=:8021" --ftp="passive-port-range=30000-40000" \ --sftp="address=:8022" --sftp="ssh-private-key=/home/miniouser/.ssh/id_rsa" ... ...


El siguiente ejemplo muestra la conexión a través de un cliente ftp usando las credenciales minioadmin y enumera un depósito llamado runner :


 ftp localhost -P 8021 Connected to localhost. 220 Welcome to MinIO FTP Server Name (localhost:user): minioadmin 331 User name ok, password required Password: 230 Password ok, continue Remote system type is UNIX. Using binary mode to transfer files. ftp> ls runner/ 229 Entering Extended Passive Mode (|||39155|) 150 Opening ASCII mode data connection for file list drwxrwxrwx 1 nobody nobody 0 Jan 1 00:00 chunkdocs/ drwxrwxrwx 1 nobody nobody 0 Jan 1 00:00 testdir/ ...


El siguiente ejemplo muestra cómo enumerar un objeto y descargarlo localmente a través del cliente ftp :


 ftp> ls runner/chunkdocs/metadata 229 Entering Extended Passive Mode (|||44269|) 150 Opening ASCII mode data connection for file list -rwxrwxrwx 1 nobody nobody 45 Apr 1 06:13 chunkdocs/metadata 226 Closing data connection, sent 75 bytes ftp> get (remote-file) runner/chunkdocs/metadata (local-file) test local: test remote: runner/chunkdocs/metadata 229 Entering Extended Passive Mode (|||37785|) 150 Data transfer starting 45 bytes 45 3.58 KiB/s 226 Closing data connection, sent 45 bytes 45 bytes received in 00:00 (3.55 KiB/s) ...

Notas sobre SFTP

Si hay certificados habilitados en el servidor, se puede usar SFTP . Siempre que el cliente FTP sea compatible, se puede usar TLS para asegurar la transmisión. Esto requerirá una bandera adicional para la clave privada.


El siguiente ejemplo muestra la conexión a través de un cliente sftp usando las credenciales minioadmin y enumera un depósito llamado runner :


 sftp -P 8022 minioadmin@localhost minioadmin@localhost's password: Connected to localhost. sftp> ls runner/ chunkdocs testdir


El siguiente ejemplo muestra cómo descargar un objeto localmente a través del cliente sftp :


 sftp> get runner/chunkdocs/metadata metadata Fetching /runner/chunkdocs/metadata to metadata metadata 100% 226 16.6KB/s 00:00 sftp>

Opciones avanzadas

Cambiar el puerto FTP predeterminado

El puerto predeterminado 8021 se puede cambiar a través de


 --ftp="address=:3021"

Cambiar el rango de puertos pasivos de FTP

Por defecto, FTP solicita que el sistema operativo proporcione un puerto libre automáticamente, sin embargo, es posible que desee restringir esto a puertos específicos en ciertos entornos restringidos a través de


 --ftp="passive-port-range=30000-40000"

Cambiar el puerto SFTP predeterminado

El puerto predeterminado 8022 se puede cambiar a través de


 --sftp="address=:3022"

TLS (FTP)

A diferencia del servidor SFTP , el servidor FTP es inseguro por defecto. Para operar en modo TLS, debe proporcionar certificados a través de


 --ftp="tls-private-key=path/to/private.key" --ftp="tls-public-cert=path/to/public.crt"


NOTA : si la configuración distribuida de MinIO ya está configurada para ejecutarse bajo TLS, FTP utilizará automáticamente los certificados relevantes de la cadena de certificados del servidor, esto es principalmente para simplificar la configuración. Sin embargo, si desea cancelar los certificados TLS a través de un dominio diferente para sus servidores FTP , puede elegir las opciones de línea de comando anteriores.

Limitaciones

Señalamos anteriormente que Agregar y Renombrar no son funciones de soporte.


Dada la simplicidad de FTP , el control de versiones también es problemático. FTP no admite el control de versiones y los clientes FTP no saben qué es realmente, pero los depósitos generalmente tendrán varias versiones de un objeto. Como resultado, el mismo objeto con un nuevo nombre será un nuevo objeto. El mismo objeto con el mismo nombre será una nueva versión, pero FTP no tiene concepto de eso, debe administrarse a través de S3. Puede mover los datos, pero no tiene la sofisticación de S3 para comprender ciertos conceptos.


Finalmente, como se señaló, no hay funciones de administración disponibles a través de FTP .

Resumen

FTP/SFTP son protocolos excepcionalmente duraderos y continúan encontrando nuevos casos de uso y utilidad hasta bien entrados los 50 años. Hemos simplificado el uso FTP para obtener datos en MinIO y sacarlos.


Más importante aún, la funcionalidad FTP/SFTP funcionará a la perfección con su implementación de MinIO existente: simplemente actualice y vaya alimentando sus cubos de MinIO con todos los datos que tuvo que transformar previamente en MinIO.


Tenemos un gran video sobre el tema aquí . Tenemos nuestra página de GitHub aquí . Estamos disponibles para apoyar a la comunidad aquí y, obviamente, si es un cliente comercial, puede encontrarnos 24/7/365 en SUBNET.


También publicado aquí .