paint-brush
Configurando um servidor MinIO FTP/SFTP — agora com mais opções de dados do que nuncapor@minio
8,302 leituras
8,302 leituras

Configurando um servidor MinIO FTP/SFTP — agora com mais opções de dados do que nunca

por MinIO6m2023/07/25
Read on Terminal Reader

Muito longo; Para ler

Embora a API do S3 seja fundamentalmente superior, ela não possui a simplicidade básica do FTP/SFTP e a capacidade de execução em ambientes altamente restritos. Como resultado, MinIO adicionou suporte para FTP e SFTP no servidor MinIO.
featured image - Configurando um servidor MinIO FTP/SFTP — agora com mais opções de dados do que nunca
MinIO HackerNoon profile picture
0-item
1-item
2-item

É estranho pensar há quanto tempo o File Transfer Protocol ( FTP ) existe. Desenvolvido pela primeira vez em 1971 por Abhay Bhushan, um estudante do MIT, foi inicialmente usado para transferir arquivos entre computadores na ARPANET. Desnecessário dizer que evoluiu - com recursos de autenticação, criptografia e compactação. Ele continua sendo um protocolo amplamente utilizado para transferência de arquivos pela Internet, principalmente nos casos em que arquivos grandes ou grandes quantidades de arquivos precisam ser transferidos de forma rápida e confiável.


Embora a API do S3 seja fundamentalmente superior, ela carece da simplicidade básica do FTP/SFTP e da capacidade de execução em ambientes altamente restritos. Como resultado, o MinIO adicionou suporte para FTP e SFTP no MinIO Server. Com esta nova funcionalidade, o usuário (ou aplicação) pensa que está falando com um servidor FTP quando na verdade está falando com o MinIO. As vantagens devem ser aparentes - torna-se fácil mover dados para o MinIO e, da perspectiva do aplicativo/usuário, tudo é essencialmente o mesmo - desde políticas, segurança, etc.


As operações FTP/SFTP suportadas atualmente são as seguintes:


comandos do cliente ftp

suportado

pegar

sim

colocar

sim

ls

sim

mkdir

sim

rmdir

sim

excluir

sim

acrescentar

não

renomear

não


O MinIO suporta os seguintes protocolos baseados em FTP/SFTP para acessar e gerenciar dados.


  • Secure File Transfer Protocol ( SFTP ) – Definido pela Internet Engineering Task Force (IETF) como uma versão estendida do SSH 2.0, permitindo a transferência de arquivos por SSH e para uso com aplicações de Transport Layer Security (TLS) e VPN.


  • Protocolo de transferência de arquivos sobre SSL/TLS ( FTPS ) – Comunicação FTP criptografada por meio de certificados TLS.


  • File Transfer Protocol ( FTP ) - Definido originalmente por RFC114 e substituído por RFC765 e RFC959 comunicação FTP não criptografada

    • Isso NÃO é recomendado


O que é abordado neste lançamento:


  • Todas as credenciais do IAM têm acesso permitido, excluindo as credenciais rotativas, as credenciais rotativas não têm permissão para fazer login por meio de portas FTP/SFTP . Você deve usar a porta da API S3 se estiver usando credenciais rotativas.


  • O acesso ao(s) bucket(s) e objeto(s) é controlado por meio de políticas IAM associadas às credenciais de login recebidas.


  • Permite autenticação e acesso para todos

    • Usuários IDP integrados e suas respectivas contas de serviço
    • Usuários LDAP/AD e suas respectivas contas de serviço
    • Contas de serviço OpenID/OIDC


  • Em buckets com versão, FTP/SFTP opera apenas nos objetos mais recentes. Se precisar recuperar uma versão mais antiga, você deve usar um S3 API client , como mc .


  • Todos os recursos atualmente usados por seus baldes funcionarão "como estão" sem nenhuma alteração
    -SSE (criptografia do lado do servidor)
    -Replicação (replicação do lado do servidor)


Essencialmente, isso deve ser uma adição de protocolo perfeita da perspectiva do desenvolvedor/administrador.

Pré-requisitos e Observações

Essa funcionalidade está disponível a partir de RELEASE.2023-04-20T17-56-55Z .


Presume-se que os usuários já tenham sido criados e configurados com políticas de acesso relevantes . MinIO recomenda começar com uma política enlatada básica de "leitura" para testar todas as operações antes de finalizar qual nível de restrições é necessário para um usuário.


Não há operações "admin:*" necessárias para acesso FTP/SFTP ao(s) bucket(s) e objeto(s). Eles podem ser ignorados por causa das restrições.


Observação importante: FTP/SFTP não está ativado por padrão. Ele precisa ser ativado na configuração. Além disso, não há funcionalidade de administração disponível via FTP , isso deve ser feito por meio da linha de comando.

Uso

Inicie o MinIO em uma configuração distribuída, com FTP/SFTP ativado.


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


O exemplo a seguir mostra a conexão via cliente ftp usando credenciais minioadmin e lista um bucket chamado 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/ ...


O exemplo a seguir mostra como listar um objeto e baixá-lo localmente via 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

Se houver certificados ativados no servidor, SFTP poderá ser usado. Desde que o cliente FTP seja capaz, o TLS pode ser usado para proteger a transmissão. Isso exigirá um sinalizador adicional para a chave privada.


O exemplo a seguir mostra a conexão via cliente sftp usando credenciais minioadmin e lista um bucket chamado runner :


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


O exemplo a seguir mostra como baixar um objeto localmente via cliente sftp :


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

Opções avançadas

Alterar porta FTP padrão

A porta padrão 8021 pode ser alterada via


 --ftp="address=:3021"

Alterar intervalo de portas passivas do FTP

Por padrão, FTP solicita que o sistema operacional forneça uma porta livre automaticamente, no entanto, você pode restringir isso a portas específicas em determinados ambientes restritos por meio de


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

Alterar a porta SFTP padrão

A porta padrão 8022 pode ser alterada via


 --sftp="address=:3022"

TLS (FTP)

Ao contrário do servidor SFTP , o servidor FTP é inseguro por padrão. Para operar no modo TLS, você precisa fornecer certificados via


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


NOTA : se a configuração distribuída do MinIO já estiver configurada para executar em TLS, FTP usará automaticamente os certificados relevantes da cadeia de certificados do servidor, principalmente para adicionar simplicidade de configuração. No entanto, se você deseja encerrar os certificados TLS por meio de um domínio diferente para seus servidores FTP , pode escolher as opções de linha de comando acima.

Limitações

Observamos anteriormente que Append e Rename não são funções de suporte.


Dada a simplicidade do FTP - o controle de versão também é problemático. O controle de versão não é suportado pelo FTP e os clientes FTP não sabem o que realmente é - mas os baldes geralmente têm várias versões de um objeto. Como resultado, o mesmo objeto com um novo nome será um novo objeto. O mesmo objeto com o mesmo nome será uma nova versão - mas FTP não tem noção disso, precisa ser gerenciado via S3. Ele pode mover os dados, mas não tem a sofisticação do S3 para entender certos conceitos.


Por fim, conforme observado, não há funções administrativas disponíveis no FTP .

Resumo

FTP/SFTP são protocolos de vida excepcionalmente longa e eles continuam a encontrar novos casos de uso e utilidade bem em seus 50 anos. Simplificamos o uso FTP para obter dados no MinIO e retirá-los.


Mais importante ainda, a funcionalidade FTP/SFTP funcionará perfeitamente com sua implantação MinIO existente - basta atualizar e alimentar seus baldes MinIO com todos os dados que você tinha que transformar anteriormente em MinIO.


Temos um ótimo vídeo sobre o assunto aqui . Temos nossa página GitHub aqui . Estamos disponíveis para apoiar a comunidade aqui e, obviamente, se você é um cliente comercial, pode nos encontrar 24/7/365 na SUBNET.


Publicado também aqui .