paint-brush
Configuration d'un serveur FTP/SFTP MinIO - maintenant avec plus d'options de données que jamaispar@minio
8,302 lectures
8,302 lectures

Configuration d'un serveur FTP/SFTP MinIO - maintenant avec plus d'options de données que jamais

par MinIO6m2023/07/25
Read on Terminal Reader

Trop long; Pour lire

Bien que l'API S3 soit fondamentalement supérieure, elle n'a pas la simplicité de base de FTP/SFTP et la capacité de s'exécuter dans des environnements très contraints. En conséquence, MinIO a ajouté la prise en charge de FTP et SFTP dans le serveur MinIO.
featured image - Configuration d'un serveur FTP/SFTP MinIO - maintenant avec plus d'options de données que jamais
MinIO HackerNoon profile picture
0-item
1-item
2-item

Il est étrange de penser depuis combien de temps le protocole de transfert de fichiers ( FTP ) existe. Développé pour la première fois en 1971 par Abhay Bhushan, étudiant au MIT, il était initialement utilisé pour transférer des fichiers entre ordinateurs sur l'ARPANET. Inutile de dire qu'il a évolué - avec des fonctionnalités d'authentification, de cryptage et de compression. Il reste un protocole largement utilisé pour transférer des fichiers sur Internet, en particulier dans les cas où des fichiers volumineux ou un grand nombre de fichiers doivent être transférés rapidement et de manière fiable.


Bien que l'API S3 soit fondamentalement supérieure, il lui manque la simplicité de base de FTP/SFTP et la capacité de s'exécuter dans des environnements très contraints. En conséquence, MinIO a ajouté la prise en charge de FTP et SFTP dans le serveur MinIO. Avec cette nouvelle fonctionnalité, l'utilisateur (ou l'application) pense parler à un serveur FTP alors qu'en fait il parle à MinIO. Les avantages devraient être évidents - il devient transparent de déplacer des données vers MinIO et du point de vue de l'application/de l'utilisateur, tout est essentiellement le même - des politiques, de la sécurité, etc.


Les opérations FTP/SFTP actuellement prises en charge sont les suivantes :


commandes du client ftp

prise en charge

obtenir

Oui

mettre

Oui

ls

Oui

mkdir

Oui

rmdir

Oui

supprimer

Oui

ajouter

Non

Renommer

Non


MinIO prend en charge les protocoles basés sur FTP/SFTP pour accéder et gérer les données.


  • Protocole de transfert de fichiers sécurisé ( SFTP ) – Défini par l'Internet Engineering Task Force (IETF) comme une version étendue de SSH 2.0, permettant le transfert de fichiers via SSH et à utiliser avec les applications Transport Layer Security (TLS) et VPN.


  • File Transfer Protocol over SSL/TLS ( FTPS ) – Communication FTP cryptée via des certificats TLS.


  • File Transfer Protocol ( FTP ) - Défini par RFC114 à l'origine, et remplacé par RFC765 et RFC959 communication FTP non cryptée

    • Ceci n'est PAS recommandé


Contenu de cette version :


  • Toutes les informations d'identification IAM sont autorisées à accéder, à l'exception des informations d'identification tournantes, les informations d'identification tournantes ne sont pas autorisées à se connecter via les ports FTP/SFTP . Vous devez utiliser le port API S3 si vous utilisez des informations d'identification tournantes.


  • L'accès au(x) bucket(s) et au(x) objet(s) est régi par des politiques IAM associées aux identifiants de connexion entrants.


  • Permet l'authentification et l'accès pour tous

    • Utilisateurs IDP intégrés et leurs comptes de service respectifs
    • Utilisateurs LDAP/AD et leurs comptes de service respectifs
    • Comptes de service OpenID/OIDC


  • Sur les buckets versionnés, FTP/SFTP ne fonctionne que sur les derniers objets. Si vous avez besoin de récupérer une ancienne version, vous devez utiliser un S3 API client tel que mc .


  • Toutes les fonctionnalités actuellement utilisées par vos buckets fonctionneront "telles quelles" sans aucune modification
    -SSE (chiffrement côté serveur)
    -Réplication (réplication côté serveur)


Essentiellement, cela devrait être un ajout de protocole transparent du point de vue du développeur/administrateur.

Prérequis et remarques

Cette fonctionnalité est disponible à partir de RELEASE.2023-04-20T17-56-55Z .


Il est supposé que les utilisateurs ont déjà été créés et configurés avec les politiques d'accès appropriées . MinIO recommande de commencer par une politique prédéfinie "readwrite" de base pour tester toutes les opérations avant de finaliser le niveau de restrictions nécessaires pour un utilisateur.


Aucune opération "admin:*" n'est nécessaire pour l'accès FTP/SFTP au(x) compartiment(s) et objet(s). Ils peuvent être ignorés pour des restrictions.


Remarque importante : FTP/SFTP n'est pas activé par défaut. Il doit être activé lors de la configuration. De plus, il n'y a pas de fonctionnalité d'administration disponible via FTP , cela doit être fait via la ligne de commande.

Usage

Démarrez MinIO dans une configuration distribuée, avec FTP/SFTP activé.


 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" ... ...


L'exemple suivant montre la connexion via un client ftp à l'aide des informations d'identification minioadmin et répertorie un compartiment nommé 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/ ...


L'exemple suivant montre comment lister un objet et le télécharger localement via le client 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) ...

Remarques sur SFTP

Si des certificats sont activés sur le serveur, SFTP peut être utilisé. Si le client FTP en est capable, TLS peut être utilisé pour sécuriser la transmission. Cela nécessitera un indicateur supplémentaire pour la clé privée.


L'exemple suivant montre la connexion via le client sftp à l'aide des informations d'identification minioadmin et répertorie un compartiment nommé runner :


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


L'exemple suivant montre comment télécharger un objet localement via le client sftp :


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

Options avancées

Changer le port FTP par défaut

Le port par défaut 8021 peut être modifié via


 --ftp="address=:3021"

Modifier la plage de ports passifs FTP

Par défaut, FTP demande que le système d'exploitation fournisse automatiquement un port libre, mais vous pouvez limiter cela à des ports spécifiques dans certains environnements restreints via


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

Modifier le port SFTP par défaut

Le port par défaut 8022 peut être modifié via


 --sftp="address=:3022"

TLS (FTP)

Contrairement au serveur SFTP , le serveur FTP n'est pas sécurisé par défaut. Pour fonctionner en mode TLS, vous devez fournir des certificats via


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


REMARQUE : si l'installation distribuée de MinIO est déjà configurée pour fonctionner sous TLS, FTP utilisera automatiquement les certificats pertinents de la chaîne de certificats du serveur, ceci principalement pour simplifier l'installation. Toutefois, si vous souhaitez résilier les certificats TLS via un domaine différent pour vos serveurs FTP , vous pouvez choisir les options de ligne de commande ci-dessus.

Limites

Nous avons noté précédemment que Append et Rename ne sont pas des fonctions de support.


Compte tenu de la simplicité de FTP , la gestion des versions est également problématique. La gestion des versions n'est pas prise en charge par FTP et les clients FTP ne savent pas de quoi il s'agit réellement, mais les compartiments auront généralement plusieurs versions d'un objet. Par conséquent, le même objet avec un nouveau nom sera un nouvel objet. Le même objet portant le même nom sera une nouvelle version - mais FTP n'en a aucune idée, il doit être géré via S3. Il peut déplacer les données, mais il n'a pas la sophistication de S3 pour comprendre certains concepts.


Enfin, comme indiqué, aucune fonction d'administration n'est disponible sur FTP .

Résumé

FTP/SFTP sont des protocoles d'une durée de vie exceptionnelle et ils continuent de trouver de nouveaux cas d'utilisation et de nouvelles utilités jusque dans la cinquantaine. Nous avons simplifié l'utilisation FTP pour obtenir des données dans MinIO et les sortir.


Plus important encore, la fonctionnalité FTP/SFTP fonctionnera de manière transparente avec votre déploiement MinIO existant - il vous suffit de mettre à niveau et d'alimenter vos seaux MinIO avec toutes les données que vous deviez auparavant transformer en MinIO.


Nous avons une superbe vidéo sur le sujet ici . Nous avons notre page GitHub ici . Nous sommes disponibles pour soutenir la communauté ici et évidemment, si vous êtes un client commercial, vous pouvez nous trouver 24/7/365 sur SUBNET.


Également publié ici .