14.03.2015 Views

Redes de Computadores II

Redes de Computadores II

Redes de Computadores II

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Re<strong>de</strong>s</strong> <strong>de</strong> <strong>Computadores</strong> <strong>II</strong><br />

Prof. Celio Trois<br />

portal.re<strong>de</strong>s.ufsm.br/~trois/re<strong>de</strong>s2<br />

Fonte:<br />

Ordinas, J. M. et al, <strong>Re<strong>de</strong>s</strong> <strong>de</strong> <strong>Computadores</strong>, 2004


FTP – File Transference Protocol<br />

●<br />

●<br />

●<br />

Uma das primeiras aplicações da internet<br />

Transferência <strong>de</strong> arquivos entre sistemas<br />

diferentes<br />

No início dos anos 70, iniciou-se a elaboração<br />

das primeiras versões do protocolo FTP<br />

● A especificação oficial é <strong>de</strong> 1985 na RFC 959<br />

(disponível no site)


Características do Protocolo<br />

●<br />

●<br />

●<br />

●<br />

Baseado no mo<strong>de</strong>lo cliente-servidor<br />

Permite transfência em ambas direções<br />

Permite outras operações básicas <strong>de</strong> arquivos,<br />

tais como: apagar, renomear, mover e listar<br />

arquivos e diretórios<br />

Interoperabilida<strong>de</strong> entre sistemas distintos


O Mo<strong>de</strong>lo do FTP<br />

●<br />

O mo<strong>de</strong>lo geral é <strong>de</strong>scrito na RFC<br />

●<br />

Interpretador <strong>de</strong> comandos: responsável pela<br />

troca <strong>de</strong> comandos do protocolo.<br />

– No lado do cliente, as operações solicitadas pelo<br />

usuário são transformadas em uma sequência <strong>de</strong><br />

comandos <strong>de</strong> FTP e enviada para o servidor.<br />

– No servidor, os comandos recebidos são interpretados,<br />

as respostas correspon<strong>de</strong>ntes são gerados e enviadas<br />

para o cliente.


O Mo<strong>de</strong>lo do FTP<br />

●<br />

●<br />

●<br />

O processo <strong>de</strong> transferência <strong>de</strong> dados, está<br />

“por baixo” do interpretador <strong>de</strong> comandos.<br />

É responsável pela troca <strong>de</strong> dados a serem<br />

transferidos (o conteúdo <strong>de</strong> arquivos ou listas<br />

do diretório)<br />

Tanto no cliente como no servidor interage<br />

diretamente com o sistema <strong>de</strong> arquivos local<br />

para ler os dados ou para armazenar neles.


O Mo<strong>de</strong>lo do FTP


O Mo<strong>de</strong>lo do FTP


O Mo<strong>de</strong>lo do FTP<br />

●<br />

●<br />

Os interpretadores <strong>de</strong> comando comunicam-se<br />

através <strong>de</strong> um canal TCP<br />

Quando <strong>de</strong>ve-se enviar dados <strong>de</strong> um sistema<br />

ao outro, cria-se um novo canal <strong>de</strong><br />

comunicação TCP<br />

●<br />

Geralmente quem inicia esta transmissão é o<br />

servidor


Conceitos Básicos do FTP<br />

●<br />

Baseado em conexões TCP<br />

● Porta padrão do servidor é a 21<br />

●<br />

●<br />

●<br />

●<br />

O interpretador do cliente conecta-se ao do servidor<br />

e trocam mensagens codificadas em ASC<strong>II</strong><br />

representadas em um byte<br />

Final <strong>de</strong> linha são representados por <br />

Cliente envia uma solicitação e aguarda o retorno do<br />

servidor<br />

Comandos FTP são representados por códigos <strong>de</strong><br />

até quatro letras


Comandos FTP<br />

●<br />

●<br />

A RFC <strong>de</strong>screve 33 comandos, divididos em 3 grupos<br />

Comandos <strong>de</strong> controle <strong>de</strong> acesso<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Nome do usuário (USER)<br />

Senha (PASS)<br />

Conta (ACCT)<br />

Trocar <strong>de</strong> diretório (CWD)<br />

Ir para o diretório pai (CDUP)<br />

Montar um sistema <strong>de</strong> arquivos (SMNT)<br />

Reinicializar (REIN)<br />

Acabar a seção (QUIT)


Comandos FTP<br />

●<br />

Comandos <strong>de</strong> parâmetros <strong>de</strong> transferência<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Estrutura dos arquivos (STRU)<br />

Modo <strong>de</strong> transmissão (MODE)<br />

Tipo <strong>de</strong> representação (TYPE)<br />

Porta <strong>de</strong> dados (PORT)<br />

Porta passiva (PASV)


Comandos FTP<br />

●<br />

Comandos <strong>de</strong> servicio FTP<br />

● Apagar(DELE)<br />

● Obter (RETR)<br />

● Retomar (REST) ● Operação nula (NOOP)<br />

● Armazenar (STOR)<br />

● Nome antigo(RNFR)<br />

● Arm. com nome único (STOU) ● Nome Novo (RNTO),<br />

● Concatenar (APPE)<br />

● Criar um diretório (MKD)<br />

● Listar (LIST)<br />

● Apagar um diretório (RMD)<br />

● Listar nomes (NLST)<br />

● Status (STAT),<br />

● Mostrar diretório atual (PWD) ● Sistema (SYST)<br />

● Reservar espaço (ALLO)<br />

● Serviços adicionais (SITE)<br />

● Abortar (ABOR)<br />

● Ajuda (HELP)


Respostas FTP<br />

●<br />

●<br />

●<br />

Representadas por um código numérico <strong>de</strong> três dígitos<br />

<strong>de</strong>cimais, seguido por um texto explicativo<br />

O código é usado para o interpretador <strong>de</strong> comandos<br />

O texto normalmente é <strong>de</strong>stinado ao usuário<br />

●<br />

●<br />

Se o texto contém apenas uma linha, a resposta é o código<br />

seguido <strong>de</strong> um espaço em branco e a mensagem<br />

Se o texto contém mais <strong>de</strong> uma linha, a resposta é o código<br />

seguido do caractere '-'. A última <strong>de</strong>ve iniciar com o código,<br />

seguido <strong>de</strong> espaço.


Exemplos <strong>de</strong> Resposta FTP<br />

220 Sistema preparado. Introduzir login e<br />

senha.<br />

220-Sistema preparado.<br />

220-Introduzir login e senha<br />

220-para acessar os arquivos restritos<br />

220-ou utilizar o nome "anonymous"<br />

220 para acessar o diretório público.


Códigos <strong>de</strong> Resposta<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

110 Marca <strong>de</strong> retomada.<br />

120 Aguar<strong>de</strong> até que o servidor esteja pronto<br />

125 O servidor transfere dados (a conexão <strong>de</strong> dados já está aberto)<br />

150 O servidor estabelece a conexão e inicia a transferência<br />

200 Operação concluída<br />

202 Comando <strong>de</strong>snecessário no servidor<br />

211 Informação do estado do sistema ou mensagem <strong>de</strong> ajuda<br />

212 Informações <strong>de</strong> status <strong>de</strong> diretório<br />

213 Informações sobre o status <strong>de</strong> arquivo<br />

214 Mensagem <strong>de</strong> ajuda (para o usuário humano)<br />

215 Tipo <strong>de</strong> sistema<br />

220 Servidor pronto


Códigos <strong>de</strong> resposta<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

221 O servidor fecha a conexão <strong>de</strong> controle<br />

226 Operação efetuada e conexão <strong>de</strong> dados fechada<br />

227 O servidor está em modo passivo (h1, h2, h3, h4, p1, p2).<br />

230 Processo <strong>de</strong> autenticação concluído com êxito<br />

250 Operações <strong>de</strong> arquivos realizadas<br />

257 O diretório é o resultado da operação.<br />

331 Enviar senha<br />

332 Enviar conta<br />

350 Enviar o comando a seguir para concluir a operação<br />

421 Serviço não disponível, conexão <strong>de</strong> controle fechado<br />

425 Não é possível estabelecer conexão <strong>de</strong> dados<br />

426 Transferência abortada e conexão <strong>de</strong> dados fechada.


Códigos <strong>de</strong> Resposta<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

450 Não po<strong>de</strong> executar operação sobre o arquivo (ex, arquivo ocupado)<br />

452 Espaço em disco insuficiente: transferência não iniciada<br />

500 Erro <strong>de</strong> sintaxe no comando<br />

501 Erro nos argumentos<br />

502 Comando não implementado<br />

503 Erro na sequência <strong>de</strong> comandos<br />

504 Argumento não suportado<br />

530 O usuário não foi <strong>de</strong>vidamente autenticado<br />

532 É necessário login para esta operação.<br />

550 Não po<strong>de</strong> acessar o arquivo ou diretório (não existe, acesso negado,...)<br />

552 Espaço em disco insuficiente: transferência abortada<br />

553 Nome <strong>de</strong> arquivo não permitido


Vamos à Prática<br />

●<br />

●<br />

●<br />

●<br />

Instale um servidor ftp na máquina virtual<br />

sudo apt-get install ftpd<br />

Conecte-se ao servidor local<br />

ftp localhost<br />

Digite o usuário e senha do computador<br />

Digite o seguinte comando<br />

help<br />

pwd<br />

ls<br />

quit


Vamos à Prática<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Agora abra o Wireshark e repita:<br />

Conecte-se ao servidor local<br />

ftp localhost<br />

Digite o usuário e senha do computador<br />

Digite o seguinte comando<br />

help<br />

pwd<br />

ls<br />

Quit<br />

Após isto, analise as mensagens trocadas na re<strong>de</strong>


Vamos à Prática<br />

●<br />

Agora abra o Wireshark e repita:<br />

●<br />

●<br />

Conecte novamente<br />

Copie um arquivo <strong>de</strong> texto para o servidor<br />

– Verifique no wireshark o momento que a porta <strong>de</strong> dados<br />

é “negociada” com o cliente<br />

– I<strong>de</strong>ntifique as mensagem <strong>de</strong> transferencia do arquivo<br />

●<br />

Que conclusão você po<strong>de</strong> chegar com relação ao<br />

protocolo FTP?


Vamos à Prática<br />

●<br />

Agora sem cliente FTP<br />

●<br />

Conectar ao servidor FTP usando o telnet<br />

– telnet localhost 21<br />

●<br />

●<br />

●<br />

Descubra quais comandos o servidor FTP<br />

implementa<br />

Faça login e <strong>de</strong>scubra o diretório remoto (pwd)<br />

Você consegue copiar um arquivo? O que seria<br />

necessário??

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!