File Transport Protocolo - FTP Fausto Levandoski, Marcos Vinicius Cassel, Tiago Castro de Oliveira Universidade do Vale do Rios dos Sinos (UNISINOS) Curso Tecnólogo em Segurança da Informação Av. Unisinos, 950 – 93.022-000 – São Leopoldo– RS – Brasil {farole, mvcassel, thiagoc.qi}@gmail.com Abstract. This article aims to synthesize the concepts of the protocol, show some features and demonstrate the use of FTP in situations common files needed by the computer network, explaining in a more managerial with regard to this use. Resumo. Este artigo tem por objetivo sintetizar os conceitos sobre o protocolo, mostrar algumas funcionalidades e demonstrar a utilização do FTP em situações comuns de necessidade de arquivos por rede de computadores, explanando de forma mais gerencial em relação a esta utilização. Palavras-chave: FTP, FCAPS 1. Introdução O ímpeto do compartilhamento de informações entre pessoas de forma ágil, a fim de otimizar tarefas em conjunto, ou expor pesquisas e inovações, por exemplo, é de intensa necessidade para os indivíduos. O compartilhamento de arquivos através de redes de computadores vem evoluindo gradativamente. Seja por aumento de velocidade nas conexões ou novas aplicações sendo desenvolvidas. Um dos padrões definidos de como deve ocorrer de transferência de arquivos entre computadores, é o FTP. Sendo este um dos primeiros padrões estabelecidos e amplamente difundido e utilizado nos dias de hoje. Através deste protocolo, podemos acessar arquivos em uma máquina remota e transferi-los para a que estamos utilizando ou então enviarmos um arquivo para o mesmo de forma simples e direta. Este artigo tem por objetivo sintetizar os conceitos sobre o protocolo, mostrar algumas funcionalidades e demonstrar a utilização do FTP em situações comuns de necessidade de transferência de arquivos por rede de computadores, explanando de forma mais gerencial em relação a esta utilização. Para isso foi escolhida uma ferramenta de gerenciamento do protocolo para podermos exemplificar tais situações rotineiras. O artigo está dividido em capítulos. No segundo capítulo apresentaremos o Protocolo FTP com um breve histórico e principais características. No capitulo terceiro apresentaremos o estudo de caso sobre o Software FileZilla. No capitulo quarto falaremos sobre os resultados obtidos e por último sobre nossas conclusões. 2. O Protocolo FTP FTP foi o primeiro protocolo da pilha TCP/IP destinado a transferência de arquivo, como seu nome sugere (File Transfer Protocol - Protocolo de Transferência de arquivos). “O primeiro padrão do protocolo FTP foi lançado pela RFC 114, em abril de 1971, antes mesmo da existência da pilha TCP/IP”[¹]. A transferência de arquivo nesta época era dividida em duas formas: diretamente, quando o sistema de arquivos de host remoto era acessado sem intermediários. E indiretamente, quando se utilizava recursos de um host remoto, transferindo os arquivos para a máquina local. Os protocolos usados para tais transferências eram o Telnet e o FTP. Após diversas revisões, atualmente o documento que define o padrão do FTP, é a RFC 959. O protocolo, por padrão, utiliza a porta 21 para estabelecer conexão e transferência de dados de controle, comandos e respostas, e a porta 20 exclusivamente para transferência de dados. O protocolo é executado sobre o protocolo TCP da camada de transporte para garantir a entrega dos dados de forma íntegra. O FTP é baseado no modelo cliente/servidor, onde o cliente, geralmente, se conecta à porta 21 de um host remoto com o protocolo FTP em modo ativo. Figura 1. Arquitetura do Protocolo FTP (RFC 959)[²] Como é possível observar na Figura 1, a arquitetura do protocolo é baseada nos seguintes itens: Sistema de arquivos do Servidor: Local de destino do acesso do cliente FTP. Onde pode ser feito a leitura dos arquivos a serem transferidos para a máquina cliente, ou a transferência de arquivos do cliente para o servidor. Sistema de Arquivos do Usuário: Local onde os arquivos transferidos do servidor serão armazenados, ou onde se armazena os arquivos a serem transferidos para o servidor. Interface do Protocolo do Servidor: Responsável pelo gerenciamento das conexões no servidor. Geralmente utiliza a porta padrão do FTP (21/TCP), realizando a interpretação dos comandos recebidos e das respostas enviadas. Interface do Protocolo do Cliente: Responsável por iniciar a conexão com o servidor destino. Após estabelecer a comunicação, é este que realiza a interpretação dos comandos e o recebimento das respostas. Processo de Transferência de Dados do Servidor: Parte designada para receber ou enviar dados para o Cliente. Quando em modo passivo, espera por conexões em sua porta 20 do protocolo TCP. Processo de Transferência de Dados do Cliente: Envia ou recebe dados a partir de seu sistema de arquivos. Quando em modo passivo, também escuta na porta 20 do protocolo TCP. Servidor FTP: Um ou mais processos que englobam todas as demais funções de transmissão de arquivos do servidor. Usuário FTP: Um ou mais processos que englobam todas as demais funções de transmissão de arquivos do cliente. Interface do Usuário: Permite ao usuário a interação com o servidor a partir da inserção de comandos e visualização dos resultados. Conexão de Controle: Meio por onde se é interpretado a troca de comandos entre cliente e servidor. Conexão de Dados: Meio por onde se dá a troca de dados entre o cliente e o servidor. O protocolo possui um sistema de autenticação para restrição de acesso. Porém, utiliza também um sistema de acesso anônimo, que permite acesso de forma generalizada. Para estabelecer a conexão (em caso de necessidade de autenticação), o usuário deve informar através das Interfaces do Protocolo cliente/servidor, seu login com o comando “USER” e após, sua senha com o comando “PASS”. Com credenciais aceitas, o usuário em questão terá para seu acesso, as pastas e arquivos especificados pelo controle de acesso do servidor. Tal controle pode ser feito pelas permissões de ler, gravar, listar e escrever, entre outras. Por não implementar nenhum tipo de segurança na transmissão de usuários e senhas para acesso aos servidores, o FTP é considerado um protocolo inseguro[³], pois através de qualquer analisador de tráfego de rede, é possível visualizar em texto claro, as credencias dos usuários. Há algumas variações do protocolo que atualmente disponibilizam tal segurança. Comentaremos sobre a questão de segurança mais tarde. Apresentado tais conceitos básicos de funcionamento do protocolo em questão, mostraremos a seguir um estudo de caso, onde uma companhia hipotética necessita liberar acesso externo para funcionários de diferentes setores, que irão se autenticar e ter acesso somente a pasta do respectivo setor. Para tal, utilizaremos a ferramenta de servidor e cliente FTP Filezilla. Explicaremos também quais funções de gerência de redes se enquadram nessas ações. 3. Estudo de caso Como mencionado anteriormente, este artigo tem como um de seus objetivos documentar um estudo de caso realizado para exemplificar algumas tarefas de gerenciamento do protocolo FTP e avaliar uma ferramenta sobre o modelo de gerência de redes conhecido como FCAPS[5]. O caso que serviu como base para o estudo foi uma situação muito comum: a necessidade de se compartilhar arquivos entre setores de uma empresa fictícia, aplicando os conceitos de permissão a nível de usuários e ou grupos de usuários, gerenciando os diretórios e transferência dos arquivos, analisando a segurança das conexões, a velocidade das mesmas, a efetividade de restrições de acesso etc. Para tanto foi escolhida uma ferramenta chamada Filezilla Server. A escolha foi motivada pelo fato de ser uma ferramenta gratuita, prática e, perante a crítica de vários usuários, muito satisfatória no que se propõe a realizar. Esta ferramenta tem seu código aberto, mais conhecido como Open Source, e é distribuída sob a Licença Publica Geral GNU[4], pode ser adquirida através do link : http://filezilla-project.org/download.php?type=server. Através de uma interface gráfica, o FileZilla Server oferece uma gama de opções de configuração para facilitar o trabalho do gerente de redes como: configurar as portas utilizadas nas conexões de dados e de controle, limite de download e upload, criar usuários e grupos de usuários definindo permissões específicas para cada um destes, fazendo também todo trabalho de baixo nível do protocolo FTP. A figura 2 mostra como é esta interface. Figura 2. Interface gráfica da ferramenta FileZilla Server Nas próximas seções serão apresentadas as tarefas de gerenciamento realizadas, os resultados obtidos com o presente estudo de caso e uma avaliação da ferramenta em relação aos padrões de gerenciamento de redes. 3.1 Compartilhamento de arquivos simples Em um primeiro momento os arquivos foram compartilhados de forma simples e sem restrição nenhuma, a fim de verificar se uma conexão anônima poderia então visualizar ou copiar os arquivos compartilhados. Para isso foi necessário criar uma conta de usuário com o nome “Anonymous”, desabilitar o campo “Password” e assim dar permissão total a ele no diretório raiz do Servidor FTP com nenhuma restrição de velocidade de transferência ou tamanho de arquivos definida neste caso. Feito isso, a conexão anônima teve acesso a todos os diretórios compartilhados naquele momento. A partir disto tornou-se necessário criar os usuários e começar a restringir os acessos conforme determinado no escopo do estudo, deixando a conta anônima ativa. 3.2 Restringindo acesso aos arquivos e diretórios Primeiramente criaram-se dois grupos: RH e TI, para simularmos dois setores da empresa fictícia. Em seguida foram criados três usuários: Marcos, Fausto e Thiago, inserindo assim o usuário Marcos no grupo TI, o usuário Thiago no grupo RH e deixando sem grupo o usuário Fausto. Para que fosse possível atrelar as permissões desejadas aos grupos e aos usuários, criamos diretórios com os nomes dos grupos e subdiretórios com o nome dos usuários. Cada grupo recebeu a permissão de leitura, escrita, criação e deleção de subdiretórios e arquivos em seus diretórios, e apenas permissão de leitura no diretório do outro, pois hipoteticamente, um setor não deve modificar documentos de outro por mais insignificante que sejam. Feitas as configurações, as conexões, as restrições de acessos e a transferência de arquivos começaram a ser testadas. Os resultados destas verificações são apresentados na seção a seguir. 4. Resultados Obtidos Para que o presente estudo de caso tivesse seus resultados validados, as conexões e as restrições foram testadas de duas formas: 1ª: Através do navegador Internet Explorer. 2ª: Através do prompt de comando do Windows. Além destas formas de conexão, foi utilizado um capturador de tráfego de rede, para que fosse possível analisar a quantidade de tráfego gerado na rede pelo protocolo e a ferramenta de gerenciamento fornece uma console que mostra os logs do protocolo em tempo real. Testando as conexões, juntando os logs com o tráfego catpurado, foi possível perceber uma vulnerabilidade enorme na autenticação do protocolo: as senhas enviadas ao servidor trafegam em texto plano pela rede, ou seja, qualquer usuário de rede que capturar o tráfego gerado por estas conexões, consegue ler claramente estas senhas, entretanto, graças ao protocolo TCP estas conexões se mostraram estáveis e confiáveis. Outro ponto positivo verificado com os testes foi a consistência das restrições de acesso configuradas anteriormente e a transferência de arquivos se mostrou prática e rápida como prometido pelo protocolo FTP, porém quando um arquivo com tamanho aproximado de 350 MB e outros menores foram transferidos simultaneamente, o tráfego gerado pelo protocolo causou um pequeno atraso na entrega dos dados de outras aplicações. Em relação ao modelo FCAPS de gerenciamento de redes, o Filezilla Server atendeu a três dos cinco padrões estabelecidos pela ISO: gerenciamento de configuração, pois nos permitiu dar a manutenção necessária aos parâmetros de configuração do serviço; gerenciamento de desempenho, pois permite restringir a velocidade das transferências dos arquivos de acordo com a capacidade da rede; gerenciamento de segurança, pois através dela é possível restringir o acesso indevido de usuários não autorizados a informações sensíveis. 5. Conclusão Depois de realizado este estudo de caso, fica fácil perceber por que o protocolo FTP sempre foi o mais utilizado na transferência de arquivos. Suas conexões são estabelecidas de forma eficiente e a velocidade de transferência dos arquivos é satisfatória. Um grande problema deste serviço é a segurança, que hoje em dia se tornou crucial para as organizações e para as pessoas. Uma solução cabível neste caso é utilizar o protocolo em conjunto com alguma criptografia, como acontece no protocolo SFTP ou Secure File Transfer Protocol, que combina o protocolo FTP com o uso de certificados digitais, criptografando assim a comunicação entre cliente-servidor. Também é importante ressaltar a evolução das ferramentas de gerenciamento de redes, como esta que foi escolhida para a realização do estudo de caso. O FileZilla Server, como já havíamos lido relatos de alguns gerentes de redes, cumpre com tudo que se propõe a fazer inclusive é possível, através dele, utilizar o protocolo SFTP mencionado anteriormente. Outro aspecto interessante desta ferramenta é que ela também disponibiliza a versão cliente, que pode ser objeto de um novo estudo de caso. Referências Bibliográficas: [¹] - Kozierok, Charles M. - The TCP/IP Guide Version 3.0, September 20, 2005, pg. 1317. [²] - Baseado em ilustração do livro TCP/IP Clearly Explained - Fourth Edition Loshin, Peter, 2002, pg. 268. [³] - http://www.linuxsupport.com.br/configuration/ftp.html - acessado em abril de 2011 - http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-pt_br-4/s1-server-ftp.html - acessado em abril de 2011 - http://www.raditha.com/php/ftp/security.php - acessado em abril de 2011 [4] http://filezilla-project.org/index.php - acessado em abril de 2011 [5] – BARRETO, Grasielli – Ferramentas de gerência de redes, Universidade Estadual de Londrina, 2007, http://www2.dc.uel.br/nourau/document/?view=736 – acessado em abril de 2011.