Redes de Computadores II Prof. Celio Trois portal.redes.ufsm.br/~trois/redes2 Fonte: Ordinas, J. M. et al, Redes de Computadores, 2004 FTP – File Transference Protocol ● ● ● ● Uma das primeiras aplicações da internet Transferência de arquivos entre sistemas diferentes No início dos anos 70, iniciou-se a elaboração das primeiras versões do protocolo FTP A especificação oficial é de 1985 na RFC 959 (disponível no site) Características do Protocolo ● Baseado no modelo cliente-servidor ● Permite transfência em ambas direções ● ● Permite outras operações básicas de arquivos, tais como: apagar, renomear, mover e listar arquivos e diretórios Interoperabilidade entre sistemas distintos O Modelo do FTP ● O modelo geral é descrito na RFC ● Interpretador de comandos: responsável pela troca de comandos do protocolo. – – No lado do cliente, as operações solicitadas pelo usuário são transformadas em uma sequência de comandos de FTP e enviada para o servidor. No servidor, os comandos recebidos são interpretados, as respostas correspondentes são gerados e enviadas para o cliente. O Modelo do FTP ● ● ● O processo de transferência de dados, está “por baixo” do interpretador de comandos. É responsável pela troca de dados a serem transferidos (o conteúdo de arquivos ou listas do diretório) Tanto no cliente como no servidor interage diretamente com o sistema de arquivos local para ler os dados ou para armazenar neles. O Modelo do FTP O Modelo do FTP O Modelo do FTP ● ● Os interpretadores de comando comunicam-se através de um canal TCP Quando deve-se enviar dados de um sistema ao outro, cria-se um novo canal de comunicação TCP ● Geralmente quem inicia esta transmissão é o servidor Conceitos Básicos do FTP ● Baseado em conexões TCP ● Porta padrão do servidor é a 21 ● ● ● ● O interpretador do cliente conecta-se ao do servidor e trocam mensagens codificadas em ASCII representadas em um byte Final de linha são representados por <CRLF> Cliente envia uma solicitação e aguarda o retorno do servidor Comandos FTP são representados por códigos de até quatro letras Comandos FTP ● A RFC descreve 33 comandos, divididos em 3 grupos ● Comandos de controle de acesso ● Nome do usuário (USER) ● Senha (PASS) ● Conta (ACCT) ● Trocar de diretório (CWD) ● Ir para o diretório pai (CDUP) ● Montar um sistema de arquivos (SMNT) ● Reinicializar (REIN) ● Acabar a seção (QUIT) Comandos FTP ● Comandos de parâmetros de transferência ● Estrutura dos arquivos (STRU) ● Modo de transmissão (MODE) ● Tipo de representação (TYPE) ● Porta de dados (PORT) ● Porta passiva (PASV) Comandos FTP ● Comandos de servicio FTP ● Obter (RETR) ● Apagar(DELE) ● Armazenar (STOR) ● Nome antigo(RNFR) ● Arm. com nome único (STOU) ● Nome Novo (RNTO), ● Concatenar (APPE) ● Criar um diretório (MKD) ● Listar (LIST) ● Apagar um diretório (RMD) ● Listar nomes (NLST) ● Status (STAT), ● Mostrar diretório atual (PWD) ● Sistema (SYST) ● Reservar espaço (ALLO) ● Serviços adicionais (SITE) ● Abortar (ABOR) ● Ajuda (HELP) ● Retomar (REST) ● Operação nula (NOOP) Respostas FTP ● Representadas por um código numérico de três dígitos decimais, seguido por um texto explicativo ● O código é usado para o interpretador de comandos ● O texto normalmente é destinado ao usuário ● ● Se o texto contém apenas uma linha, a resposta é o código seguido de um espaço em branco e a mensagem Se o texto contém mais de uma linha, a resposta é o código seguido do caractere '-'. A última deve iniciar com o código, seguido de espaço. Exemplos de Resposta FTP 220 Sistema preparado. Introduzir login e senha. 220-Sistema preparado. 220-Introduzir login e senha 220-para acessar os arquivos restritos 220-ou utilizar o nome "anonymous" 220 para acessar o diretório público. Códigos de Resposta ● 110 Marca de retomada. ● 120 Aguarde até que o servidor esteja pronto ● 125 O servidor transfere dados (a conexão de dados já está aberto) ● 150 O servidor estabelece a conexão e inicia a transferência ● 200 Operação concluída ● 202 Comando desnecessário no servidor ● 211 Informação do estado do sistema ou mensagem de ajuda ● 212 Informações de status de diretório ● 213 Informações sobre o status de arquivo ● 214 Mensagem de ajuda (para o usuário humano) ● 215 Tipo de sistema ● 220 Servidor pronto Códigos de resposta ● 221 O servidor fecha a conexão de controle ● 226 Operação efetuada e conexão de dados fechada ● 227 O servidor está em modo passivo (h1, h2, h3, h4, p1, p2). ● 230 Processo de autenticação concluído com êxito ● 250 Operações de arquivos realizadas ● 257 O diretório é o resultado da operação. ● 331 Enviar senha ● 332 Enviar conta ● 350 Enviar o comando a seguir para concluir a operação ● 421 Serviço não disponível, conexão de controle fechado ● 425 Não é possível estabelecer conexão de dados ● 426 Transferência abortada e conexão de dados fechada. Códigos de Resposta ● 450 Não pode executar operação sobre o arquivo (ex, arquivo ocupado) ● 452 Espaço em disco insuficiente: transferência não iniciada ● 500 Erro de sintaxe no comando ● 501 Erro nos argumentos ● 502 Comando não implementado ● 503 Erro na sequência de comandos ● 504 Argumento não suportado ● 530 O usuário não foi devidamente autenticado ● 532 É necessário login para esta operação. ● 550 Não pode acessar o arquivo ou diretório (não existe, acesso negado,...) ● 552 Espaço em disco insuficiente: transferência abortada ● 553 Nome de arquivo não permitido Vamos à Prática ● Instale um servidor ftp na máquina virtual sudo apt-get install ftpd ● Conecte-se ao servidor local ftp localhost ● Digite o usuário e senha do computador ● Digite o seguinte comando help pwd ls quit Vamos à Prática ● Agora abra o Wireshark e repita: ● Conecte-se ao servidor local ftp localhost ● Digite o usuário e senha do computador ● Digite o seguinte comando help pwd ls ● Quit ● Após isto, analise as mensagens trocadas na rede Vamos à Prática ● Agora abra o Wireshark e repita: ● Conecte novamente ● Copie um arquivo de texto para o servidor – – ● Verifique no wireshark o momento que a porta de dados é “negociada” com o cliente Identifique as mensagem de transferencia do arquivo Que conclusão você pode chegar com relação ao protocolo FTP? Vamos à Prática ● Agora sem cliente FTP ● Conectar ao servidor FTP usando o telnet – ● ● ● telnet localhost 21 Descubra quais comandos o servidor FTP implementa Faça login e descubra o diretório remoto (pwd) Você consegue copiar um arquivo? O que seria necessário??