Mudanças entre as edições de "RCO-Subsequente-2022-1"
Linha 327: | Linha 327: | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | =AULA DIA 28/04/2022= | ||
+ | |||
+ | {{Collapse top |Laboratório - HTTP BÁSICO: Desvendando o HTTP com Wireshark}} | ||
+ | |||
+ | |||
+ | =Desvendando o HTTP com Wireshark= | ||
+ | |||
+ | Fonte base: [http://www.ebah.com.br/content/ABAAABZ6QAD/wireshark-http Wireshark - HTTP] | ||
+ | |||
+ | ==Objetivos== | ||
+ | *Baseado na pequena introdução ao Wireshark estamos prontos para utilizar o mesmo para investigar protocolos em operação. | ||
+ | *Explorar vários aspectos do protocolo HTTP: | ||
+ | *#A interação básica GET/resposta do HTTP. | ||
+ | *#A interação manual GET/resposta do HTTP utilizando o telnet. | ||
+ | *#Diferenciação do comportamento das versões 1.0 e 1.1 do protocolo HTTP. | ||
+ | |||
+ | ==A Interação Básica GET/Resposta do HTTP== | ||
+ | |||
+ | #Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos. Faça o seguinte: | ||
+ | ##inicie o navegador; | ||
+ | ##limpe o cache do mesmo (teclas de atalho para o Firefox: '''Ctrl + Shift + Del'''); | ||
+ | ##inicie o Wireshark, como descrito no '''Ferramentas básicas'''; | ||
+ | ##inicie a captura de pacotes; | ||
+ | ##digite o seguinte URL no navegador http://tele.sj.ifsc.edu.br/~odilson/RED29004//RED29004.html; | ||
+ | ##pare a captura de pacotes; | ||
+ | ##digite “http” (somente as letras, sem as aspas) na caixa de texto de especificação do filtro de exibição, de tal forma que apenas as mensagens HTTP capturadas serão exibidas na janela de listagem de pacotes. (Só estamos interessados em HTTP desta vez, e não desejamos ver todos os pacotes capturados).[[Arquivo:HTTP_Wireshark.png |thumb | 300px| Fig.1 Requisição e Resposta HTTP]] | ||
+ | #O exemplo da figura 1 mostra na janela de listagem de pacotes duas mensagens HTTP capturadas: | ||
+ | ##A mensagem GET (do seu navegador para o servidor web www.sj.ifsc.edu.br) e a mensagem de resposta do servidor para o seu navegador. | ||
+ | ##A janela de conteúdos de pacotes mostra detalhes da mensagem selecionada (neste caso a mensagem HTTP GET /~odilson/RED29004//RED29004.html, que está em destaque na janela de listagem de pacotes). | ||
+ | ##A mensagem HTTP transportada em um segmento TCP, que é carregado em um datagrama IP, que é levado em um quadro Ethernet com 5728 bits no fio. Isso é observado de baixo para cima na janela de detalhes do cabeçalho do pacote selecionado. O Wireshark exibe informações sobre o quadro, IP, TCP e HTTP. Você deve expandir as informações, por exemplo, do HTTP clicando na seta ao lado esquerdo de “Hypertext Transfer Protocol”. Observando as informações das mensagens HTTP GET e de resposta. Você consegue inclusive enxergar a mensagem mostrada no navegador: '''RED29004! Página de teste.''' | ||
+ | #<span style="color: #9966CC;">Responda às seguintes perguntas e imprima as mensagens GET e a resposta e indique em que parte da mensagem você encontrou a informação que responde às questões. | ||
+ | ##O seu navegador executa HTTP 1.0 ou 1.1? | ||
+ | ##Qual a versão de HTTP do servidor? | ||
+ | ##Quais idiomas (se algum) o seu navegador indica ao servidor que pode aceitar? | ||
+ | ##Qual o endereço IP do seu computador? | ||
+ | ##E do servidor tele.sj.ifsc.edu.br? | ||
+ | ##Qual o número da porta utilizada no seu computador? | ||
+ | ##E do servidor tele.sj.ifsc.edu.br? | ||
+ | ##Qual o código de status retornado do servidor para o seu navegador? | ||
+ | ##Quando o arquivo em HTML que você baixou foi modificado no servidor pela última vez? | ||
+ | ##Quantos bytes de conteúdo são baixados pelo seu navegador? | ||
+ | ##Encontre a mensagem '''RED29004! Página de teste'''. Onde (em qual campo) encontra-se? | ||
+ | ##Qual a diferença entre os endereços IP e porta de origem e destino entre a mensagem GET e a de resposta do HTTP? | ||
+ | |||
+ | ==Interação Básica GET/Resposta do HTTP usando TELNET e REQUISIÇÃO MANUAL== | ||
+ | |||
+ | # Vamos repetir o acesso aos links acima, porém sem usar o navegador. A ideia é que nós façamos o papel de navegador. Isso deve ser feito com os seguintes passos: | ||
+ | ## Coloque o Wireshark para capturar pacotes | ||
+ | ## Abra um terminal de texto no Linux. | ||
+ | ## Execute este comando: <syntaxhighlight lang=bash> | ||
+ | telnet -4 tele.sj.ifsc.edu.br 80 | ||
+ | </syntaxhighlight> | ||
+ | ## Após aparecer esta linha: <syntaxhighlight lang=text> | ||
+ | Trying 200.135.37.75... | ||
+ | Connected to tele.sj.ifsc.edu.br. | ||
+ | Escape character is '^]'.</syntaxhighlight>digite o seguinte:<syntaxhighlight lang=text> | ||
+ | GET /~odilson/RED29004//RED29004.html HTTP/1.0 | ||
+ | </syntaxhighlight> <Enter> <Enter> | ||
+ | ## <span style="color: #9966CC;">Identifique a página html que foi enviada como resposta. Respeita o protocolo HTTP? | ||
+ | ## <span style="color: #9966CC;">No Wireshark compare o resultado das execuções desses comandos com o que se viu nas capturas Wireshark com acesso pelo navegador. Qual a diferença em cada caso? | ||
+ | ## <span style="color: #9966CC;">Quanto tempo levou para fechar a conexão (após o duplo Enter)? | ||
+ | ## <span style="color: #9966CC;">Refaça um pedido em que o recurso é inexistente no servidor (ex: página html com nome/URL inexistente). Observe a resposta. Qual é o código da mensagem recebida? | ||
+ | # Refaça a conexão com o servidor:<syntaxhighlight lang=bash> | ||
+ | telnet -4 tele.sj.ifsc.edu.br 80</syntaxhighlight> | ||
+ | ## Refaça o pedido, mas agora utilizando o HTTP/1.1, e tente inferir a diferença da versão 1.0. Note que o GET nesta versão deve ser realizado com o campo Host:<syntaxhighlight lang=bash> | ||
+ | GET /~odilson/RED29004//RED29004.html HTTP/1.1 | ||
+ | Host: tele.sj.ifsc.edu.br</syntaxhighlight> <Enter>/<Enter> | ||
+ | ##<span style="color: #9966CC;">Quanto tempo levou para fechar a conexão (após o duplo Enter)? | ||
+ | # Refaça a conexão com o servidor:<syntaxhighlight lang=bash> | ||
+ | telnet -4 tele.sj.ifsc.edu.br 80 | ||
+ | </syntaxhighlight> | ||
+ | ## Refaça o pedido, mas agora utilizando o HTTP/1.1:<syntaxhighlight lang=bash> | ||
+ | GET /~odilson/RED29004//RED29004.html HTTP/1.1 | ||
+ | Host: tele.sj.ifsc.edu.br</syntaxhighlight> <Enter>/<Enter> | ||
+ | ## Antes do fechamento da conexão, faça um novo pedido na conexão já aberta:<syntaxhighlight lang=bash> | ||
+ | GET /~odilson/RED29004//RED29004_arq3.html HTTP/1.1 | ||
+ | Host: tele.sj.ifsc.edu.br</syntaxhighlight> <Enter>/<Enter> | ||
+ | #<span style="color: #9966CC;">O que explica a diferença de tempo para fechamento de conexão entre as versões HTTP 1.0 e 1.1? | ||
+ | #<span style="color: #9966CC;">Descreva qual seria o procedimento para o download de dois objetos, via telnet, nos protocolos HTTP 1.0 e 1.1? | ||
{{Collapse bottom}} | {{Collapse bottom}} |
Edição das 11h44min de 28 de abril de 2022
Instalação do imunes
Ver anotações do Prof.Odilson - Instalação Imunes
AULA 01 - AULA DIA 31/03/2022
Registrada no SIGAA. Ver pdf de slides e do laboratório.
AULA 02 - AULA DIA 2/04/2022
Registrada no SIGAA. Aula sábado conforme determinação do DEPE. Ver leitura e questionário registrado.
AULA 03 - AULA DIA 7/04/2022
Ver slides de apoio no SIGAA.
Laboratório 1
Ver pdf no SIGAA.
Objetivos
Após este laboratório o aluno deverá ser capaz de:
- Utilizar a ferramenta wireshark para capturar de pacotes da rede, usando o filtro de display;
- Utilizar a ferramenta imunes para simulação funcional de uma rede de computador;
- Explanar a estrutura de um pacote de rede caracterizando o encapsulamento devido a múltiplas camadas de protocolos;
- Explicar o conceito de protocolo através da análise de troca de pacotes com ping e traceroute
- Utilizar a opção de flow graph para visualizar as trocas de mensagens.
- Identificar equipamentos em uma rede: hosts, switches e roteadores;
- Assimilar o conceito de internetwork (conexão entre redes);
- Identificar a necessidade de uso de endereços e rotas em uma rede de pacotes;
Laboratório 2
Este laboratório não terá relatório a ser registrado no SIGAA. Faremos sob a orientação do professor.
Laboratório 2 - Wireshark: observação simples de pacote e identificação de encapsulamento |
---|
FUNDAMENTAÇÃO TEÓRICA: Sobre o analisador WiresharkO analisador de pacotes exibe os conteúdos de todos os campos dentro de uma mensagem de protocolo. Para que isso seja feito, o analisador de pacotes deve “entender” a estrutura de todas as mensagens trocadas pelos protocolos. Suponha que estamos interessados em mostrar os vários campos nas mensagens trocadas pelo ping. O analisador de pacotes entende o formato dos quadros Ethernet, e desta forma pode identificar o datagrama IP dentro de um quadro. Ele também entende o formato do datagrama IP, para que ele possa extrair o pacote ICMP usado pelo ping. Nós utilizaremos o sniffer Wireshark (http://www.wireshark.org) para estes laboratórios, o que nos permite exibir os conteúdos das mensagens sendo enviadas/recebidas de/por protocolos em diferentes camadas da pilha de protocolos. Tecnicamente falando, Wireshark é um analisador de pacotes que pode ser executado em computadores com Windows, Linux/UNIX e MAC. É um analisador de pacotes ideal para nossos laboratórios, pois é estável, tem uma grande base de usuários e é bem documentado incluindo um guia de usuário (http://www.wireshark.org/docs/wsug_html/), páginas de manual (http://www.wireshark.org/docs/man-pages/), e uma seção de FAQ detalhada (http://www.wireshark.org/faq.html), funcionalidade rica que inclui a capacidade de analisar mais que 500 protocolos, e uma interface com o usuário bem projetada. OBS: Se o wireshark estiver instalado em sua máquina, para chamá-lo a partir de um terminal deve fazer: sudo wireshark ETAPA 1: Identificando os campos da interface do WiresharkQuando você executar o programa Wireshark, a interface com o usuário exibida na Figura abaixo aparecerá. Inicialmente, nenhum dado será apresentado nas janelas. A interface do Wireshark tem seis componentes principais:
ETAPA 2 - Verificando pacotes do ping (ICMP REQUEST/REPLY))
Etapa 3
|
Laboratório 3
Este laboratório deverá ser registrado no SIGAA. Utilizaremos o simulador IMUNES. Aguarde as orientações básicas de uso.
Laboratório 3 - LANs, WANs, Equipamentos de Redes, Conectividade na rede: Ping |
---|
Este laboratório é formado uma mescla de teoria e prática e deverá ser elaborado juntamente com o professor na sala. ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 3
ETAPA 4
ETAPA 5
ETAPA 6
ETAPA 7
|
AULA 04 - dia 14/04/2021
Objetivos
Após esta aula o aluno deverá:
- reconhecer o papel da camada de aplicação em uma estrutura de camadas de protocolos;
- identificar o modelo cliente servidor usado em grande parte de aplicações da Internet;
- reconhecer a necessidade de endereçamento em nível de processos para identificação de aplicações;
- observar o processo de encapsulamento/desencapsulamento de dados da aplicação em uma estrutura de camadas de protocolos.
Slides desta aula
Ver sigaa.
Fundamentação Teórica
Camadas de Protocolos e posicionamento da camada de aplicação
Vamos fazer uma analogia com um envio de um livro de um membro de um clube de livro para outro. Observe que o serviço esperado de um protocolo em nível de aplicação é resolver um problema específico já em nível de aplicação. Neste caso, é a transferência de um livro de um local para outro através de entidades de aplicação (pessoas) que estão trocando livros.
Camadas de Protocolos(ícones do www.publicdomainvectors.org)
Protocolo e Serviços da Camada de Aplicação
O desenho abaixo mostra um usuário USANDO um serviço de acesso PÁGINAS WEB. Neste desenho pode-se observar:
- um programa cliente é utilizado pelo usuário para REQUISITAR uma página WEB que se encontra em outro COMPUTADOR;
- um programa SERVIDOR espera por mensagens de REQUISIÇÃO e RESPONDE enviando a página solicitada;
- Um PROTOCOLO DE APLICAÇÃO é executado entre as partes (entidades que se comunicam).
- Observar que tanto cliente como o servidor podem ser ENDEREÇADOS por um número da máquina (IP) e um endereço de porta.
- Um mecanismos chamado socket (como se fosse um plugue) de uma tomada permite a aplicação se conectar ao protocolo da camada de
baixo.
Protocolo da Camada de Aplicação(ícones do www.publicdomainvectors.org)
Laboratório 4
Laboratório 4 - Camada de Aplicação: Colocando no "ar" aplicações cliente servidoras |
---|
Neste laboratório vamos construir uma pequena internet, colocando dois serviços no "ar": um web server e um servidor ssh. Mostremos uma visão do posicionamento dos "pacotes de aplicação" capturados para cada um destes serviços. Os serviços são, portanto:
ETAPA 1 - Construindo uma rede para dar suporte aos serviçosVamos usar o simulador imunes para TER um sentimento do comportamento em camadas em uma rede simples. Construir no Imunes a rede a seguir. Se preferir importe o arquivo daqui. ETAPA 2 - Colocando serviço (camada aplicação) no ARVamos agora executar 3 serviços que se utilizam de protocolos da camada de aplicação:
ETAPA 3 - Iniciando a REDEETAPA 4 - Executando serviço TELNETEtapa 4.1- Iniciando o servidorO serviço TELNET pode iniciado a partir da linha de comando no computador onde será executado o lado servidor. Por facilidade, no imunes vamos iniciá-lo conforme abaixo. Faça um comando ps aux e mostre que o serviços está se executando na máquina alvo. ETAPA 4.2 - Criando um usuário no host1 para fazer um acesso remotoVamos criar um usuário no host1 para podermos acessar o computador remotamente via TELENET
ETAPA 4.3 - Acessando remotamente o host1 através da conta criada
RECORTE E COLE a TELA no relatório. ETAPA 4.4 - Captura de pacotes do telnetAgora vamos capturar pacotes do telnet. Basta usar o wireshark em qualquer interface onde passam os pacotes. Por exemplo, no próprio pc2, no host1 ou em qualquer roteador por onde os pacotes passam. SIGA as instruções do PROFESSOR e recorte a tela do wireshark, filtrando os pacotes do TELNET. Mostre o encapsulamento de pacotes de aplicação e seu posicionamento na estrutura de pacotes. ETAPA 5 - Executando serviço WEBEtapa 5.1 - Preparando uma página html para colocar no servidor WEBEscolha uma máquina para utilizar como Web Server. Prepare uma página html neste SERVIDOR. As páginas do servidor se encontram no diretório /var/www/html Páginas da internet são construídas usando o formato HTML. Ver aqui o que é uma página HTML e como construir uma ágina simples. Vá até o diretório /var/www/html e use o editor nano para editar uma página chamada index.html
<html>
<body>
<h1>Rede de Computadores Subsequente</h1>
<p>Pagina teste do aluno Pedro Alvares Cabral da Silva</p>
</body>
</html>
Etapa 5.2 - Colocando o Web Server no arDe nada adianta ter uma página html e não ter um programa SERVIDOR que possa enviá-la para um cliente, quando este solicitá-la. Vamos iniciar o SERVIÇO WEB para testar o protocolo HTTP. Note que HTTP é o protocolo executado entre o cliente e o servidor. O servidor WEB "cuida" das páginas do site (da rede onde se encontra). O programa servidor disponível é o lightppd Para executá-lo, abrir um terminal no servidor e executar o comando:
lighttpd -f /etc/lighttpd/lighttpd.conf
ps aux Etapa 5.3 - Acessando o Web Server a partir de um clienteFaça um acesso a sua página, a partir do firefox (cliente HTTP) em um PC cliente de sua escolha. Coloque a URL (recurso a ser acessado) no topo do firefox. RECORTE a tela do acesso e corte no relatório. Etapa 5.4 - Capturando pacotes no cliente e visualizando pacotes httpFaça uma captura de pacotes com wireshark e mostre os pacotes http envolvidos na comunicação.
|
AULA DIA 28/04/2022
Laboratório - HTTP BÁSICO: Desvendando o HTTP com Wireshark |
---|
Desvendando o HTTP com WiresharkFonte base: Wireshark - HTTP Objetivos
A Interação Básica GET/Resposta do HTTP
Interação Básica GET/Resposta do HTTP usando TELNET e REQUISIÇÃO MANUAL
|