FTP O PROTOCOLO FTP FTP significa File Transfer Protocol
Transcrição
FTP O PROTOCOLO FTP FTP significa File Transfer Protocol
Aula 18 – Redes de Computadores – 21/11/2007 Universidade do Contestado – UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber SERVIÇOS DE REDES: FTP O PROTOCOLO FTP FTP significa File Transfer Protocol (Protocolo de Transferência de Arquivos), e é uma forma bastante rápida e versátil de transferir arquivos sendo uma das mais usadas na internet. 1. Conexões FTP de modo ativo são algumas vezes chamadas de conexões "gerenciadas pelo cliente" porque o cliente envia um comando PORT ao servidor na conexão do controle. O comando solicita ao servidor que estabeleça uma conexão de dados da porta TCP 20 no servidor até o cliente com a porta TCP especificada pelo comando PORT. 2. Conexões FTP de modo passivo são às vezes chamadas de conexões "gerenciadas pelo servidor" porque, depois que o cliente emite o comando PASV, o servidor responde com uma de suas portas temporárias usadas como a porta do servidor na conexão de dados. Depois que um comando de conexão de dados é emitido pelo cliente, o servidor se conecta ao cliente usando a porta imediatamente acima da porta do cliente na conexão do controle. O FTP é um dos meios mais comum de se copiar arquivos de um lugar para outro na Internet. É bastante antigo, inclusive existe suporte até para os sistemas Mainframe. Por esse fato, é desnecessário dizer que é um protocolo bastante simples e não foi projetado pra atender os requisitos de segurança que se fazem necessários nos dias atuais. Por isso mesmo, precisamos entender o seu funcionamento (pelo menos o básico), pra ajustarmos nosso ambiente de rede (corporativo ou não), pra melhor configurar a disponibilidade e a segurança do processo. O Protocolo FTP faz parte da suíte de protocolos TCP/IP e trabalha na camada de Aplicação de sua Arquitetura. Diferentemente do http, por exemplo, e de outros protocolos usados na Internet, o FTP usa no mínimo duas conexões durante uma sessão: uma conexão half-duplex para controle e uma conexão full-duplex para transferência de dados. Para isso, utiliza as portas 20 e 21 para se comunicar e transmitir dados. A RFC 959 é atualmente o documento oficial que dita seus padrões. A porta 21 é utilizada para estabelecer e manter a comunicação entre o cliente e o servidor. Essa sessão também é conhecida como ‘Control Channel’. É ela quem verifica se a conexão com o servidor ainda existe. A porta 20 é utilizada para a transferência dos dados (arquivos), propriamente dita. É conhecida também como ‘Data Channel’. É nela que é feito o controle do fluxo e integridade dos dados. Para utilizar o FTP, a estação cliente realiza uma conexão com o servidor FTP na porta 21. Após a conexão estabelecida, para cada arquivo transferido estabelece-se uma nova conexão, chamada de conexão de dados. Por padrão, a porta TCP 21 é usada no servidor para controlar a conexão, mas a conexão de dados é determinada pelo método que o cliente usa para se conectar ao servidor. Assim, existem 2 tipos de conexões: Figura - 1 - FTP Ativo e Passivo Uma sessão FTP geralmente envolve os elementos ilustrados na figura abaixo. logs, você poderá verificar o bloqueio da porta consultando os logs de negação/rejeição do dispositivo de segurança. O firewall com filtro de pacotes com base no estado da conexão consegue analisar todo o tráfego da conexão FTP, identificando qual o tipo de transferência que será utilizada (ativa ou passiva) e quais as portas que serão utilizadas para estabelecer a conexão. Sendo assim, todas as vezes que o firewall identifica que uma transferência de arquivos se realizará, é acrescentado uma entrada na tabela de estados, permitindo que a conexão seja estabelecida. As informações ficam armazenadas na tabela somente enquanto a transferência do arquivo é realizada. Com FTP ativo, quando um usuário se conecta ao servidor FTP remoto e solicita informações ou um arquivo, o servidor FTP abre uma nova conexão com o cliente para transferir os dados. Esta é a chamada conexão de dados. Para iniciar, o cliente FTP escolhe uma porta aleatória para receber a conexão de dados. O cliente envia o número da porta escolhida para o servidor FTP e fica esperando uma conexão nessa porta. Figura - 2 - Modelo de Conexão FTP Então o servidor FTP inicia a conexão com o endereço do cliente na porta escolhida e transfere os dados. Isto se torna um problema para usuários atrás de um gateway NAT tentando se conectar a servidores FTP. 1. Interface com o usuário – Aplicativo responsável pela comunicação entre o usuário e o interpretador do protocolo; Por causa da forma como NAT funciona, o servidor FTP inicializa a conexão de dados se conectando ao endereço externo do gateway NAT na porta escolhida. A máquina fazendo NAT receberá o pedido, mas como não possui mapeamento para o pacote na tabela de estado, descartará o pacote sem entrega-lo ao cliente. 2. Interpretador de protocolo (Client/Server PI) – através da conexão de controle (Porta 21), conversa com o interpretador de protocolo do lado servidor (Server PI) e juntos controlam a transferência. Também controla o processo de transferência de dados do cliente (Client DTP). 3. Processo de transferência de dados (Client/Server DTP) – responsável pela comunicação com o Server DTP através da conexão de dados (Porta 20). É a parte do cliente que realmente realiza transferência de dados. Controla também o sistema de arquivos local (4). No modo FTP passivo, o cliente pede ao servidor que escolha uma porta aleatória para ouvir esperando a conexão de dados. O servidor informa ao cliente a porta escolhida e o cliente se conecta na porta para transferir os dados. Infelizmente, isto nem sempre é possível ou desejável, por causa da possibilidade do firewall em frente ao servidor FTP bloquear a conexão de dados em portas aleatórias. Em resumo, há dois pontos a considerar. O primeiro é o modo de conexão, que pode ser passivo ou ativo; o segundo é o modo de transferência de dados, que pode ser de fluxo, de bloco ou compactado. TRANSFERÊNCIA DE DADOS E FIREWALLS O problema que ocorre com mais freqüência no FTP pela Internet envolve a transferência de dados por servidor proxy, firewall ou dispositivo de conversão de endereços de rede (NAT). Em muitos casos, esses dispositivos de segurança de rede permitem que a conexão de controle seja estabelecida na porta TCP 21 (ou seja, o usuário faz o logon com êxito no servidor FTP); porém, quando o usuário tenta realizar uma transferência de dados do tipo DIR, LS, GET ou PUT, o cliente FTP aparentemente para de responder porque o dispositivo de segurança da rede bloqueia a porta de conexão de dados especificada pelo cliente. Se o dispositivo de segurança da rede der suporte a O serviço FTP do IIS dá suporte às conexões de modo ativo e passivo, dependendo do método especificado pelo cliente. O IIS FTP não permite desabilitar os modos de conexão ativo ou passivo. O modo de transferência de dados padrão do FTP do IIS é de fluxo. No momento, o IIS não dá suporte ao modo de transferência de dados de bloco ou compactado. A tabela a seguir contém clientes FTP fornecidos pela Microsoft e o modo de conexão a que cada cliente dá suporte. Tabela 1 - Clientes FTP Microsoft O FTP é um auxiliar indispensável para webdesigners, DBAs, e outros profissionais que necessitam constantemente publicar, criar ou sincronizar dados, planilhas, pagínas html, etc. Mais uma vez, vale a pena lembrar-se de que entender os processos básicos de conexão e transmissão de dados via FTP é importante para a correta configuração de seu ambiente de rede, tanto no que se diz respeito ao seu bom funcionamento como aos aspectos de segurança dos dados. SEGURANÇA Porque a preocupação com segurança? Bom, em princípio, vamos deixar a parte mais ‘fantasiosa’ de lado que são ataques como descritos em filmes clássicos como A Rede e Swordfish e olharmos o lado prático e real. Apesar da Internet ser a “fonte de todos os males”, algo mais próximo e real é a pior de todas; nossos próprios usuários. Usuários insatisfeitos com a empresa, desonestos e ignorantes, no sentido de desconhecedores, deve ser sua maior preocupação. Os primeiros porque têm a intenção em causar danos, e isso faz com que eles procurem agulha em palheiro pra atingirem seus objetivos e os últimos por total falta de conhecimento podem realizar acessos indevidos e cometerem os mais absurdos dos erros sem ao menos saberem que os fizeram. E não pense que isso é exclusivo de grandes corporações, se você tem um usuário você já tem um problema. Diante disso, se você é um administrador de redes como eu, deve ter uma preocupação quase que paranóica com a segurança de seus servidores porque, diante das leis atuais você é cúmplice de todo e qualquer dano causado aos negócios da empresa por uma falha de segurança explorada em seus servidores até que se prove o contrário. Essa segurança não se trata somente de questões técnicas mas também administrativas e de disponibilidade de serviços. Nos dias atuais, os administradores de rede devem ser além de especialistas na área, conhecedores das leis sobre recursos digitais, dos negócios da corporação em detalhes, atentos às normas de conduta (execrar os tais ‘jeitinhos brasileiros’), e cientes de tudo o que acontece no seu território de trabalho.