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

Trabalho FTP - Fausto Levandoski