Entendendo SFTP vs. FTPS vs. FTP

FTP ou File Transfer Protocol é um dos métodos de transferência de dados mais populares disponíveis para vários casos de uso.

O FTP tem diferentes variações seguras disponíveis, conhecidas como FTPS e SFTP, que incorporam algumas diferenças sutis e outras não tão sutis em como eles funcionam. Essas diferenças estão relacionadas a como os dados são trocados, o nível e o tipo de segurança na comunicação e as considerações de firewall.

Saber como esses protocolos funcionam e as diferenças entre esses mecanismos de transferência populares podem ajudá-lo a escolher qual deles funciona melhor para suas necessidades.

FTP

FTP é o protocolo de transferência de arquivos de décadas originalmente proposto sob a RFC 114. Posteriormente, evoluiu como RFC 959, que é o padrão em uso hoje.

O FTP funciona em dois canais para troca de informações: um para comandos e outro para dados. Isso requer duas portas para o FTP funcionar – o canal de comando e o canal de dados.

O canal de comando funciona na porta 21, que aceita conexões de clientes e trata da passagem de comandos. O canal de comando permanece aberto durante toda a sessão FTP até que o cliente envie o comando QUIT ou o servidor se desconecte forçosamente devido à inatividade ou qualquer outro motivo possível.

O canal de dados usa uma porta temporária sob demanda que escuta no servidor (modo passivo) ou no cliente (modo ativo). Este canal é responsável por compartilhar dados reais entre servidor e cliente na forma de listas de diretórios e transferências de arquivos.

Ao contrário do canal de comando, o canal de dados permanece aberto apenas durante a transferência de arquivos e, assim que termina, o canal de dados é fechado. Para transferência simultânea de vários arquivos ou listagens de diretório, são necessárias várias portas de canal de dados.

O FTP é um protocolo inerentemente inseguro, pois os canais de comando e de dados transferem informações de forma não criptografada, o que é facilmente suscetível à interceptação por qualquer pessoa que use ataques man-in-the-middle.

  Como definir limites de aplicativos e jogos no Xbox One

Conforme discutido anteriormente, o FTP requer uma conexão de entrada na porta 21/tcp no lado do servidor para o canal de comando. Um intervalo de portas passivas é definido para transferências de arquivos e listagens de diretórios e permite conexões de entrada. Esse processo de definição pode variar de acordo com o servidor FTP em uso. Consulte sua documentação para obter mais detalhes. No lado do cliente, a conexão de saída na porta 21/tcp deve ser permitida junto com o intervalo de porta passivo definido no servidor.

Autenticação em FTP

As informações de autenticação FTP são transmitidas pelo canal de comando durante o estabelecimento da conexão inicial. O FTP pode usar um nome de usuário e senha para autenticação ou pode ser anônimo para permitir que qualquer pessoa faça login e acesse o servidor.

Modos FTP Ativo e Passivo

O FTP usa o modo Ativo ou Passivo para configurar conexões.

No modo ativo, um usuário se conecta de uma porta aleatória no cliente FTP à porta FTP 21/tcp no servidor e envia o comando PORT, especificando a porta cliente à qual o servidor deve se conectar. Esta porta será usada para o canal de dados.

O servidor então se conecta da porta 20/tcp à porta cliente especificada anteriormente com o comando PORT pelo cliente. Este canal de dados é então usado para transferências de arquivos entre servidor e cliente.

No modo passivo, o cliente se conecta de uma porta aleatória do cliente FTP à porta 21/tcp no servidor e envia o comando PASV. O servidor então responde com uma porta aleatória que deve ser usada para o canal de dados. O cliente então usa outra porta aleatória para se conectar à porta respondida por um servidor na etapa anterior. Essa conexão de canal de dados é então usada para transferência de arquivos entre o servidor e o cliente.

Assim, no modo ativo, a solicitação de conexão inicial é iniciada pelo cliente enquanto a solicitação de conexão do canal de dados é iniciada pelo servidor.

  Pós-Covid' Especial Online Gratuito

Por outro lado, no modo passivo, tanto as solicitações de conexão inicial quanto as solicitações de canal de dados subsequentes são iniciadas pelo cliente ao servidor. Essa diferença sutil às vezes afeta como um firewall permite/bloqueia solicitações de FTP tradicionais devido à direção do tipo de conexão de entrada/saída.

FTPS

Mesmo se você estiver disposto a correr riscos associados ao FTP com transmissão de dados não criptografada e ataques main-in-the-middle, os requisitos do setor o obrigam a usar uma alternativa mais segura, como FTPS e SFTP, que são comparativamente muito mais seguras.

Em 1990, com a mudança do cenário de segurança, a Netscape criou o protocolo SSL ou Secure Sockets Layer (SSL, agora conhecido como TLS) para proteger a comunicação em uma rede. SSL foi aplicado ao FTP que se tornou FTPS ou File Transfer Protocol Secure. FTPS ou FTP/S geralmente rodam na porta 990/tcp, mas também podem ser vistos na porta 21/tcp. Da mesma forma, para o canal de dados, a porta 989/tcp é a porta comum usada para FTPS. Se a porta de comando for 21/tcp, espera-se que sua porta de dados seja 20/tcp.

Assim como o FTP, o FTPS usa dois canais para comunicação: canal de comando e canal de dados. O canal de dados pode ser criptografado com FTPS ou os canais de comando e de dados podem ser criptografados para maior segurança.

O FTPS, como o FTP, também usa várias portas para canais de comando e dados. Assim, a porta 21/tcp é usada para a conexão inicial e transmissão de informações de autenticação. Posteriormente, serão necessárias portas diferentes para configurar canais de dados para cada solicitação de transferência de arquivo ou listagem de diretório do cliente. Assim, como o FTP, ele precisa de um intervalo de portas para ser permitido em seu firewall.

Autenticação em FTPS

A autenticação para FTPS funciona usando um nome de usuário e senha junto com um certificado de servidor para criptografia. Quando o cliente FTPS se conecta a um servidor, ele verifica se o certificado do servidor é confiável para prosseguir com a conexão. Este certificado pode ser solicitado ao cliente e ao servidor.

  Fixar postagens, canais, vídeos e arquivos

SFTP

Ao contrário de FTP e FTPS, SFTP (SSH File Transfer Protocol) é um protocolo completamente diferente construído em SSH (ou Secure Shell). O SFTP, por padrão, funciona na porta 22/tcp, da mesma forma que o SSH, embora possa ser configurado para usar uma porta gratuita personalizada no servidor.

SFTP é um protocolo FTP seguro que usa SSH para enviar e receber arquivos. Sendo o SSH completamente criptografado, o SFTP é um método robusto e seguro para transferir arquivos em uma rede.

O SFTP, ao contrário do FTP e do FTPS, usa um único canal de comunicação para transferir comandos e tráfego de dados, todos os quais são transmitidos de forma criptografada junto com a autenticação inicial.

Autenticação em SFTP

A autenticação no SFTP pode ser feita por meio de um simples nome de usuário e senha, mas, diferentemente do FTP, todas as informações, incluindo detalhes de autenticação, são passadas criptografadas pela rede.

O SFTP também suporta autenticação usando par de chaves SSH, combinação de chaves privada e pública, onde o cliente fornece a chave privada para o usuário especificado e o servidor deve ter a chave pública correspondente para que a autenticação seja bem-sucedida. É mais seguro do que usar uma combinação de nome de usuário/senha. É possível autenticar o mesmo usuário usando senha e chaves SSH se ambos os métodos estiverem configurados no servidor SFTP.

Resumo

Este artigo resume os recursos básicos de diferentes protocolos de transferência de arquivos populares, como FTP, FTPS e SFTP, e destaca as diferenças sutis e principais entre esses protocolos. Ele cobre as portas que é necessário permitir em um firewall para configurar um servidor FTP/FTPS/SFTP em funcionamento, ao mesmo tempo em que destaca a necessidade de alternar para protocolos mais seguros, como FTPS e SFTP.

Quando digo FTP aqui, estou me referindo a qualquer protocolo discutido neste artigo. A razão é que o FTP tem décadas de idade, e até mesmo as versões seguras mais recentes são às vezes chamadas de FTP em vez de seu nome designado para uso diário.

Você também pode estar interessado em conhecer o melhor software de servidor FTP e clientes FTP/SFTP.