Mudanças entre as edições de "RCO-Subsequente-2022-1"
Linha 691: | Linha 691: | ||
RECORTE A TELA e cole no relatório. Discuta o que o comando faz. | RECORTE A TELA e cole no relatório. Discuta o que o comando faz. | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
+ | |||
+ | =AULA 7 - DIA 7/05/2022= | ||
+ | |||
+ | ==Objetivos== | ||
+ | |||
+ | *Outros protocolos de aplicação e revisão do HTTP | ||
+ | |||
+ | Aula assíncrona no SÁBADO conforme DEPE. | ||
+ | |||
+ | =AULA 8 - DIA 12/05/2022= | ||
+ | |||
+ | ==Objetivos== | ||
+ | |||
+ | Após esta aula o aluno deverá | ||
+ | |||
+ | *saber o conceito de ZONA e DOMÍNIO no DNS | ||
+ | *entender a necessidade de um servidor (autoritativo) de DNS | ||
+ | *estabelecer um serviço de DNS e fazer com que um cliente acesse este servidor. | ||
+ | *Verificar a troca de msgs DNS entre cliente e servidor (registro A) | ||
+ | |||
+ | =Camada de Aplicação: Colocando no "ar" aplicações servidoras= | ||
+ | |||
+ | ==Objetivos== | ||
+ | *Testar serviços de rede na camada de aplicação. | ||
+ | *Construir uma pequena internet, colocando dois serviços no "ar": um '''servidor ssh''', um servidor DNS e um '''web server''', . | ||
+ | *Uma visão do posicionamento dos "pacotes de aplicação" capturados para cada um destes serviços. | ||
+ | |||
+ | Os serviços são, portanto: | ||
+ | <blockquote style="background: #DCF4CC; border: 1px solid black; padding: 1em;"> | ||
+ | *serviço SSH: ''Secure Shell'', terminal remoto. Permite acessar um computador remoto através de um terminal. | ||
+ | *serviço DNS: Vai permitir a navegação através de nomes de máquinas. | ||
+ | *serviço WEB: permite hospedar e acessar remotamente páginas da Internet. | ||
+ | </blockquote> | ||
+ | |||
+ | Rede a ser implementada | ||
+ | |||
+ | [[Arquivo:RedeLab4.png|800px|Rede Lab4]] | ||
+ | |||
+ | ==Servidor SSH== | ||
+ | |||
+ | # Vamos usar o simulador imunes para nos apropriarmos do sentimento do comportamento em camadas em uma rede simples. Construir no Imunes a rede a seguir ou, se preferir, importe o arquivo (clique com o direito do mouse e mande baixar) https://docente.ifsc.edu.br/odilson/Redes/Camada_aplicacao.imn. | ||
+ | # Inicie o Imunes e carregue o arquivo salvo (Camada_aplicacao.imn). | ||
+ | # Iniciando a REDE: <syntaxhighlight lang=bash> | ||
+ | Experiment >> Execute </syntaxhighlight> | ||
+ | # Executando serviço SSH. O serviço SSH será iniciado no servidor SSH (SSH SERVER). | ||
+ | ## Primeiramente vamos atribuir uma senha ao usuário root no servidor. Atribua senha ''root'' (SSH SERVER) com o seguinte comando no terminal: <syntaxhighlight lang=bash> | ||
+ | passwd </syntaxhighlight> | ||
+ | ##* Enquanto digita-se a senha o terminal nada apresenta, é normal. | ||
+ | ##* Ao terminar de digitar a senha tecle <Enter>. Será solicitado a confirmação da senha com o mesmo procedimento. | ||
+ | ## Em seguida vamos fazer uma pequena configuração no servidor SSH (SSH SERVER), através do comando: <syntaxhighlight lang=bash> | ||
+ | echo PermitRootLogin yes >>/etc/ssh/sshd_config </syntaxhighlight> | ||
+ | ## Iniciamos o serviço, através do comando: <syntaxhighlight lang=bash> | ||
+ | /etc/init.d/ssh start | ||
+ | /etc/init.d/ssh reload </syntaxhighlight> | ||
+ | ## <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Confira se o serviço está rodando: </span><syntaxhighlight lang=bash> | ||
+ | ps aux </syntaxhighlight> | ||
+ | ##* Observe se há um processo do tipo, última coluna a direita: /usr/sbin/sshd | ||
+ | ## Agora vamos testar a conectividade do serviço fazendo uma acesso remoto, por exemplo, no terminal do pc2 execute: <syntaxhighlight lang=bash> | ||
+ | ssh 10.0.9.10 </syntaxhighlight> | ||
+ | ##* Na primeira pergunta responda com yes | ||
+ | ##* Na segunda pergunta preencha com a senha: root | ||
+ | ## <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Observe e salve que o prompt do seu terminal mudou para '''root@ssh:~#''',</span> isso significa que, apesar de você estar no terminal do pc2, vocês está conectado no SSH SERVER. Tudo que você digitar estará sendo executado no SSH SERVER. | ||
+ | ## No terminal do pc2, que na verdade está conectado ao servidor SSH SERVER, vamos deixar um ping testando a conectividade com o próprio pc2: <syntaxhighlight lang=bash> | ||
+ | ping 10.0.8.20 </syntaxhighlight> | ||
+ | # Agora vamos capturar pacotes do ssh. Basta usar o Wireshark em qualquer interface onde passam os pacotes. Por exemplo, no router2.<syntaxhighlight lang=bash> | ||
+ | Clique com o direito do mouse sobre o router2 >> Wireshark >> eth0 </syntaxhighlight> | ||
+ | # <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Recorte a tela do Wireshark, filtrando os pacotes do ssh. Mostre o encapsulamento de pacotes de aplicação e seu posicionamento na estrutura de pacotes.</span> | ||
+ | # <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Recorte a tela do Wireshark, filtrando os pacotes do icmp. Comprovando que os pacotes do ping estão passando pelo router2.</span> | ||
+ | # Para encerrar a conexão ao SSH SERVER, no terminal do pc2 digite: <syntaxhighlight lang=bash> | ||
+ | exit </syntaxhighlight> | ||
+ | #* <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Observe e salve que o prompt do seu terminal mudou para '''root@pc2:~#'''</span>, isso significa que a conexão foi encerrada. | ||
+ | |||
+ | ==Servidor DNS== | ||
+ | *Com este serviço vamos instalar o banco de dados de um servidor DNS, [https://www.isc.org/bind/ BIND]. Ele dará suporte a navegação por nomes de máquinas. | ||
+ | |||
+ | ===Criando um domínio de Internet=== | ||
+ | #Vá até o diretório de configuração do BIND, por exemplo vamos fazer isso no '''host2''' da LAN inferior: <syntaxhighlight lang=bash> | ||
+ | cd /etc/bind </syntaxhighlight> | ||
+ | #Defina uma zona, um ''Second Level Domain'', de nome redes.edu.br. Isto é feito editando o arquivo '''named.conf.default-zones'''. Abra o terminal do host2 e digite:<syntaxhighlight lang=bash> | ||
+ | nano named.conf.default-zones </syntaxhighlight> | ||
+ | #Acrescente ao final do mesmo o seguinte conteúdo: <syntaxhighlight lang=bash> | ||
+ | zone "redes.edu.br" { | ||
+ | type master; | ||
+ | file "/etc/bind/db.redes"; | ||
+ | }; </syntaxhighlight> | ||
+ | #*Ao terminar de editar digite <ctrl> + <x> e, em seguida, Y e <Enter>. | ||
+ | #*Este arquivo definirá uma nova zona (domínio) DNS. | ||
+ | |||
+ | ===Criando a base de dados relativa ao domínio=== | ||
+ | |||
+ | # Na zona criada atribua endereços IPv4 (A) as máquinas em '''db.redes: <syntaxhighlight lang=bash> | ||
+ | nano db.redes </syntaxhighlight> | ||
+ | # Cole o seguinte conteúdo no arquivo e salve:''': <syntaxhighlight lang=bash>$TTL 86400 | ||
+ | @ IN SOA ns.redes.edu.br. root ( | ||
+ | 2022051200 ; Serial | ||
+ | 604800 ; Refresh | ||
+ | 86400 ; Retry | ||
+ | 2419200 ; Expire | ||
+ | 86400 ) ; Negative Cache TTL | ||
+ | ; | ||
+ | @ IN NS ns.redes.edu.br. | ||
+ | @ IN MX 10 mail.redes.edu.br. | ||
+ | $ORIGIN redes.edu.br. | ||
+ | ns IN A 10.0.6.10 | ||
+ | www IN A 10.0.9.11 | ||
+ | ssh IN A 10.0.9.10 | ||
+ | mail IN A 10.0.6.10 | ||
+ | apelido IN CNAME mail.redes.edu.br. </syntaxhighlight> | ||
+ | # Reinicie o serviço DNS: <syntaxhighlight lang=bash> /etc/init.d/bind9 restart </syntaxhighlight> | ||
+ | # <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Faça um teste com consulta ao seu servidor com o comando, por exemplo: </span><syntaxhighlight lang=bash> dig @localhost www.redes.edu.br </syntaxhighlight> | ||
+ | #*O resultado obtido deve conter algo do tipo:<syntaxhighlight lang=bash> | ||
+ | ;; ANSWER SECTION: | ||
+ | www.redes.edu.br. 86400 IN A 10.0.9.11 </syntaxhighlight> | ||
+ | |||
+ | ===Configurando as máquinas para acessarem o DNS=== | ||
+ | |||
+ | # Em qualquer máquina que desejar navegar por nomes, declare o servidor host2 como servidor DNS com o seguinte comendo digitado no respectivo terminal: <syntaxhighlight lang=bash> | ||
+ | echo nameserver 10.0.6.10 >> /etc/resolv.conf </syntaxhighlight> | ||
+ | # <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Faça alguns testes simples via ping, por exemplo: </span><syntaxhighlight lang=bash> | ||
+ | ping www.redes.edu.br | ||
+ | ping apelido.redes.edu.br </syntaxhighlight> | ||
+ | # Acrescente um novo endereço ao banco de dados: '''casa.redes.edu.br''' apontando para o IP '''10.0.8.21'''. | ||
+ | # <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Prove que o mesmo está funcional, por exemplo, dando um ping casa.redes.edu.br a partir do host ssh.</span> | ||
+ | # No terminal do host2 execute: <syntaxhighlight lang=bash> | ||
+ | dig apelido.redes.edu.br </syntaxhighlight> | ||
+ | #* <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Qual foi o resultado obtido?</span> | ||
+ | #* <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Qual o significado?</span> | ||
+ | |||
+ | ==Servidor WEB== | ||
+ | |||
+ | # Preparando uma página HTML para colocar no servidor WEB. | ||
+ | #* Páginas da internet são construídas usando o formato HTML. | ||
+ | #* Ver aqui o que é uma página [https://wiki.sj.ifsc.edu.br/images/e/ee/03_-_HTML.pdf HTML] e como construir uma página simples. | ||
+ | ## No terminal da máquina WEB SERVER entre no diretório diretório /var/www/html: <syntaxhighlight lang=bash> | ||
+ | cd /var/www/html </syntaxhighlight> | ||
+ | ## Use o editor nano para editar uma página chamada index.html: <syntaxhighlight lang=bash> | ||
+ | nano index.html </syntaxhighlight> | ||
+ | ##* <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Salve um print com o editor aberto.</span> | ||
+ | ## Crie a página com o seguinte conteúdo: <syntaxhighlight lang=c> | ||
+ | <html> | ||
+ | <body> | ||
+ | <h1>Redes de Computadores</h1> | ||
+ | <p>Pagina teste do aluno Pedro Alvares Cabral da Silva</p> | ||
+ | </body> | ||
+ | </html> | ||
+ | </syntaxhighlight> | ||
+ | ##* Ao terminar de editar digite <ctrl> + <x> e, em seguida, Y e <enter>. | ||
+ | ## <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Verifique se o conteúdo está correto:</span> <syntaxhighlight lang=bash> | ||
+ | cat index.html </syntaxhighlight> | ||
+ | ## Inicie o SERVIÇO WEB para testar o protocolo HTTP. O servidor WEB irá disponibilizar a página criada para acesso remoto via protocolo HTTP: <syntaxhighlight lang=bash> | ||
+ | /etc/init.d/lighttpd start </syntaxhighlight> | ||
+ | ## <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Confira se o programa está executando no servidor através do comando:</span> <syntaxhighlight lang=bash> | ||
+ | ps aux </syntaxhighlight> | ||
+ | # No '''router2''' deixe o Wireshark capturando pacotes. | ||
+ | # Faça um acesso a sua página, a partir do firefox (cliente HTTP) em um PC cliente de sua escolha: <syntaxhighlight lang=bash>Clique com o botão direito do mouse sobre, por exemplo, o pc1 | ||
+ | Clique sobre Web Browser | ||
+ | Digite no navegador: www.redes.edu.br ou 10.0.9.11 </syntaxhighlight> | ||
+ | #* <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">RECORTE a tela com a página em destaque no navegador e cole no relatório.</span> | ||
+ | # Se desejar modificar a página repita os itens 2 e 3. | ||
+ | # Crie uma nova página <syntaxhighlight lang=bash> | ||
+ | nano abacaxi.html </syntaxhighlight> | ||
+ | # Coloque um conteúdo a seu critério: <syntaxhighlight lang=c> | ||
+ | <html> | ||
+ | <body> | ||
+ | <h1>Redes de Computadores</h1> | ||
+ | <p>Minha primeira pagina..........</p> | ||
+ | </body> | ||
+ | </html> | ||
+ | </syntaxhighlight> | ||
+ | #* Ao terminar de editar digite <ctrl> + <x> e, em seguida, Y e <Enter>. | ||
+ | #* <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Verifique se o conteúdo está correto:</span> <syntaxhighlight lang=bash> | ||
+ | cat abacaxi.html </syntaxhighlight> | ||
+ | # Acesse a nova página através do navegador Firefox com o endereço (URL): <syntaxhighlight lang=bash>http://www.redes.edu.br/abacaxi.html </syntaxhighlight> | ||
+ | #* <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">RECORTE a tela com a página em destaque no navegador e cole no relatório.</span> | ||
+ | # <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Salve um print da tela do Wireshark destacando a troca de mensagens HTTP e o conteúdo HTML de uma das páginas acessadas.</span> |
Edição das 16h57min de 12 de maio 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 5 - DIA 28/04/2022
Objetivos
Após esta aula o aluno deverá ser capaz de:
- explicar a operação básico do protocolo http;
- reconhecer a diferença entre as versões 1.0 e 1.1. do protocolo HTTP;
Leitura recomendada
- FOROUZAN, Behrouz A. Protocolo TCP/IP. [Digite o Local da Editora]: Grupo A, 2010. 9788563308689. Disponível em: https://app.minhabiblioteca.com.br/#/books/9788563308689/. Acesso em: 28 abr. 2022. CAP.22.
Slides desta aula
Laboratório 5 - HTTP BÁSICO: Desvendando o HTTP com Wireshark |
---|
Prepare um documento no googledrive para anotar o relatório deste experimento. Coloque o seu nome no início e denomine o arquivo de Lab5-HtmlBasico. ObjetivosNeste laboratório o aluno deverá explorar aspectos básicos da operação do protocolo HTTP incluindo:
PARTE 1 - A Interação Básica GET/Resposta do HTTPETAPA 1 - Preparativos Iniciais
ETAPA 2 - Capturando e visualizando pacotes html
ETAPA 3 - Identificando as mensagens GET e a resposta
RECORTE a tela com as mensagens, cole no relatório e explique o significado das mesmas. Não é necessário explicar cada campo dos headers, mas passar uma noção do significado das mensagens. ETAPA 4- Identificando o encapsulamento do "pacote" html na camada de transporte
RECORTE a tela com detalhe do encapsulamento de uma mensagem html nas camadas inferiores. Discuta este encapsulamento. ETAPA 5 - Identificando o texto html no pacote http de respostaObserve as informações das mensagens HTTP GET e de resposta. Você consegue inclusive enxergar a mensagem (página) mostrada no navegador: RED29004! Página de teste. Indique em que parte da mensagem você encontrou a informação que responde às questões. RECORTE a tela e mostre onde está o texto html no pacote http. ETAPA 6 - Responda as perguntas abaixo
PARTE 2 - Interação Básica GET/Resposta do HTTP usando TELNET e REQUISIÇÃO MANUALVamos 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: ETAPA 1 - Preparativos iniciais
ETAPA 2
RECORTE A TELA e analise/responda a pergunta abaixo
ETAPA 3
RECORTE A TELA e discuta. ETAPA 4
ETAPA 5
ETAPA 6
PARTE 3 - Desafio - Um cenário com dois web servers e referências de páginas entre sitesConstruir um cenário no IMUNES usando dois web servidores. Fazer duas páginas uma em cada servidor. Uma página deve conter o link para a outra. Examinar |
AULA 6 - DIA 5/05/2022
Objetivos
PARTE 1
Após esta aula o aluno deverá ser capaz de:
- Explicar o comando GET Condicional/Resposta no protocolo HTTP;
- Explicar o comportamento do http com documentos HTML com Objetos Incluídos;
PARTE 2
- explicar as funcionalidades básicas do DNS, observando pacotes gerados pelo mesmo em uma consulta básica.
Leitura recomendada
- FOROUZAN, Behrouz A. Protocolo TCP/IP. [Digite o Local da Editora]: Grupo A, 2010. 9788563308689. Disponível em: https://app.minhabiblioteca.com.br/#/books/9788563308689/. Acesso em: 28 abr. 2022. CAP.22.
PARTE 1 da AULA - Características adicionais do HTTP
LABORATÓRIO 06 - Características adicionais do HTTP
Laboratório 6 - Características adicionais do HTTP |
---|
PARTE 1 - A Interação HTTP GET Condicional/RespostaA maioria dos navegadores web tem um cache (seção 2.2.6 do livro) e, desta forma, realizam GET condicional quando pretendem baixar um objeto HTTP já presente em seu cache.
ETAPA 1 - Preparativos Iniciais
Recorte a tela e mostre a tela capturada com a devida URL ETAPA 2 - Verificando o acesso da página
ETAPA 3 - Identificando o uso do campo "If-Modified-Since"
ETAPA 4 - Encontrando explicações para o cenário observado
PARTE 2 - Documentos HTML com Objetos IncluídosESTE laboratório é somente demonstrativo. Agora que vimos como o Wireshark mostra o tráfego capturado para arquivos em HTML simples, também podemos observar o que acontece quando o seu browser baixa um arquivo com objetos incluídos, no nosso exemplo, imagens que estão armazenadas em outros servidores. Faça o seguinte:
Tarefa:
|
PARTE 2 DA AULA Introdução ao Serviço DNS
Referências
Laboratório 7 - Introdução ao Serviço DNS |
---|
LABORATÓRIO 7 - Introdução ao DNSNeste laboratório vamos explorar algumas características do sistema DNS. Utilizaremos máquinas reais inicialmente. ETAPA 1CRIAR um arquivo no google docs (nome LAB07-IntroducaoDNS) para construir o relatório simplificado deste experimento. Coloque seu nome. Responda cada etapa que se segue. ETAPA 2 - FUNDAMENTAÇÃO TEÓRICA - O que é o DNSCom a ajuda de explicações do professor, dos slides da aula passada e das referências da minha biblioteca responda com as SUAS palavras:
ETAPA 3 - FUNDAMENTAÇÃO TEÓRICA - Consulta ao sistema DNS
ETAPA 4 - FUNDAMENTAÇÃO TEÓRICA - Nome de domínios e tipo de registros DNS
ETAPA 5 - PRÁTICA - Vendo qual servidor DNS está configurada na máquinaQualquer consulta a um nome deve ser realizada a um primeiro SERVIDOR DNS (não é AUTORITATIVO necessariamente) que provavelmente se encontra em sua rede local. NO SEU computador deve estar armazenado o IP deste servidor. Execute e explique o comando abaixo. Recorte a tela e cole no relatório. cat /etc/resolv.conf Note que este comando é para um Linux RECORTE A TELA, cole no relatório e discuta. ETAPA 6 - PRÁTICA - Consulta simples ao DNS gerada a partir de um comando pingBaseado em do Prof.Odilson Nesta etapa vamos verificar o momento em que é realizada uma consulta ao DNS por ocasão da realização de um ping. Vamos usar o wireshark para verificar os pacotes DNS antes do envio de pacotes do ping. O comando ping pode ser usado tanto com um endereço IP como com um nome de host.
RECORTE A TELA neste ponto e cole no relatório. ETAPA 7 - Discussão da captura realizada
ETAPA 8 - PRÁTICA - Consultas DNS por meio de ferramentas especializadas - Consulta simples (tipo registro A)Usando o programa host ou dig, que são executados no terminal, descubra e anote no relatório os endereços IP associados aos seguintes nomes de hosts (máquinas):
Exemplo: host www.ifsc.edu.br RECORTE A TELA e cole no relatório. Discuta o que o comando faz. ETAPA 9 - PRÁTICA - Consultas DNS por meio de ferramentas especializadas - Consulta simples (tipo registro NS)Agora descubra e anote no relatório quais são os servidores DNS responsáveis por cada um dos domínios dos nomes acima.
RECORTE A TELA e cole no relatório. Discuta o que o comando faz. |
AULA 7 - DIA 7/05/2022
Objetivos
- Outros protocolos de aplicação e revisão do HTTP
Aula assíncrona no SÁBADO conforme DEPE.
AULA 8 - DIA 12/05/2022
Objetivos
Após esta aula o aluno deverá
- saber o conceito de ZONA e DOMÍNIO no DNS
- entender a necessidade de um servidor (autoritativo) de DNS
- estabelecer um serviço de DNS e fazer com que um cliente acesse este servidor.
- Verificar a troca de msgs DNS entre cliente e servidor (registro A)
Camada de Aplicação: Colocando no "ar" aplicações servidoras
Objetivos
- Testar serviços de rede na camada de aplicação.
- Construir uma pequena internet, colocando dois serviços no "ar": um servidor ssh, um servidor DNS e um web server, .
- Uma visão do posicionamento dos "pacotes de aplicação" capturados para cada um destes serviços.
Os serviços são, portanto:
- serviço SSH: Secure Shell, terminal remoto. Permite acessar um computador remoto através de um terminal.
- serviço DNS: Vai permitir a navegação através de nomes de máquinas.
- serviço WEB: permite hospedar e acessar remotamente páginas da Internet.
Rede a ser implementada
Servidor SSH
- Vamos usar o simulador imunes para nos apropriarmos do sentimento do comportamento em camadas em uma rede simples. Construir no Imunes a rede a seguir ou, se preferir, importe o arquivo (clique com o direito do mouse e mande baixar) https://docente.ifsc.edu.br/odilson/Redes/Camada_aplicacao.imn.
- Inicie o Imunes e carregue o arquivo salvo (Camada_aplicacao.imn).
- Iniciando a REDE:
Experiment >> Execute
- Executando serviço SSH. O serviço SSH será iniciado no servidor SSH (SSH SERVER).
- Primeiramente vamos atribuir uma senha ao usuário root no servidor. Atribua senha root (SSH SERVER) com o seguinte comando no terminal:
passwd
- Enquanto digita-se a senha o terminal nada apresenta, é normal.
- Ao terminar de digitar a senha tecle <Enter>. Será solicitado a confirmação da senha com o mesmo procedimento.
- Em seguida vamos fazer uma pequena configuração no servidor SSH (SSH SERVER), através do comando:
echo PermitRootLogin yes >>/etc/ssh/sshd_config
- Iniciamos o serviço, através do comando:
/etc/init.d/ssh start /etc/init.d/ssh reload
- Confira se o serviço está rodando:
ps aux
- Observe se há um processo do tipo, última coluna a direita: /usr/sbin/sshd
- Agora vamos testar a conectividade do serviço fazendo uma acesso remoto, por exemplo, no terminal do pc2 execute:
ssh 10.0.9.10
- Na primeira pergunta responda com yes
- Na segunda pergunta preencha com a senha: root
- Observe e salve que o prompt do seu terminal mudou para root@ssh:~#, isso significa que, apesar de você estar no terminal do pc2, vocês está conectado no SSH SERVER. Tudo que você digitar estará sendo executado no SSH SERVER.
- No terminal do pc2, que na verdade está conectado ao servidor SSH SERVER, vamos deixar um ping testando a conectividade com o próprio pc2:
ping 10.0.8.20
- Primeiramente vamos atribuir uma senha ao usuário root no servidor. Atribua senha root (SSH SERVER) com o seguinte comando no terminal:
- Agora vamos capturar pacotes do ssh. Basta usar o Wireshark em qualquer interface onde passam os pacotes. Por exemplo, no router2.
Clique com o direito do mouse sobre o router2 >> Wireshark >> eth0
- Recorte a tela do Wireshark, filtrando os pacotes do ssh. Mostre o encapsulamento de pacotes de aplicação e seu posicionamento na estrutura de pacotes.
- Recorte a tela do Wireshark, filtrando os pacotes do icmp. Comprovando que os pacotes do ping estão passando pelo router2.
- Para encerrar a conexão ao SSH SERVER, no terminal do pc2 digite:
exit
- Observe e salve que o prompt do seu terminal mudou para root@pc2:~#, isso significa que a conexão foi encerrada.
Servidor DNS
- Com este serviço vamos instalar o banco de dados de um servidor DNS, BIND. Ele dará suporte a navegação por nomes de máquinas.
Criando um domínio de Internet
- Vá até o diretório de configuração do BIND, por exemplo vamos fazer isso no host2 da LAN inferior:
cd /etc/bind
- Defina uma zona, um Second Level Domain, de nome redes.edu.br. Isto é feito editando o arquivo named.conf.default-zones. Abra o terminal do host2 e digite:
nano named.conf.default-zones
- Acrescente ao final do mesmo o seguinte conteúdo:
zone "redes.edu.br" { type master; file "/etc/bind/db.redes"; };
- Ao terminar de editar digite <ctrl> + <x> e, em seguida, Y e <Enter>.
- Este arquivo definirá uma nova zona (domínio) DNS.
Criando a base de dados relativa ao domínio
- Na zona criada atribua endereços IPv4 (A) as máquinas em db.redes:
nano db.redes
- Cole o seguinte conteúdo no arquivo e salve::
$TTL 86400 @ IN SOA ns.redes.edu.br. root ( 2022051200 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS ns.redes.edu.br. @ IN MX 10 mail.redes.edu.br. $ORIGIN redes.edu.br. ns IN A 10.0.6.10 www IN A 10.0.9.11 ssh IN A 10.0.9.10 mail IN A 10.0.6.10 apelido IN CNAME mail.redes.edu.br.
- Reinicie o serviço DNS:
/etc/init.d/bind9 restart
- Faça um teste com consulta ao seu servidor com o comando, por exemplo:
dig @localhost www.redes.edu.br
- O resultado obtido deve conter algo do tipo:
;; ANSWER SECTION: www.redes.edu.br. 86400 IN A 10.0.9.11
- O resultado obtido deve conter algo do tipo:
Configurando as máquinas para acessarem o DNS
- Em qualquer máquina que desejar navegar por nomes, declare o servidor host2 como servidor DNS com o seguinte comendo digitado no respectivo terminal:
echo nameserver 10.0.6.10 >> /etc/resolv.conf
- Faça alguns testes simples via ping, por exemplo:
ping www.redes.edu.br ping apelido.redes.edu.br
- Acrescente um novo endereço ao banco de dados: casa.redes.edu.br apontando para o IP 10.0.8.21.
- Prove que o mesmo está funcional, por exemplo, dando um ping casa.redes.edu.br a partir do host ssh.
- No terminal do host2 execute:
dig apelido.redes.edu.br
- Qual foi o resultado obtido?
- Qual o significado?
Servidor WEB
- Preparando uma página HTML para colocar no servidor WEB.
- Páginas da internet são construídas usando o formato HTML.
- Ver aqui o que é uma página HTML e como construir uma página simples.
- No terminal da máquina WEB SERVER entre no diretório diretório /var/www/html:
cd /var/www/html
- Use o editor nano para editar uma página chamada index.html:
nano index.html
- Salve um print com o editor aberto.
- Crie a página com o seguinte conteúdo:
<html> <body> <h1>Redes de Computadores</h1> <p>Pagina teste do aluno Pedro Alvares Cabral da Silva</p> </body> </html>
- Ao terminar de editar digite <ctrl> + <x> e, em seguida, Y e <enter>.
- Verifique se o conteúdo está correto:
cat index.html
- Inicie o SERVIÇO WEB para testar o protocolo HTTP. O servidor WEB irá disponibilizar a página criada para acesso remoto via protocolo HTTP:
/etc/init.d/lighttpd start
- Confira se o programa está executando no servidor através do comando:
ps aux
- No router2 deixe o Wireshark capturando pacotes.
- Faça um acesso a sua página, a partir do firefox (cliente HTTP) em um PC cliente de sua escolha:
Clique com o botão direito do mouse sobre, por exemplo, o pc1 Clique sobre Web Browser Digite no navegador: www.redes.edu.br ou 10.0.9.11
- RECORTE a tela com a página em destaque no navegador e cole no relatório.
- Se desejar modificar a página repita os itens 2 e 3.
- Crie uma nova página
nano abacaxi.html
- Coloque um conteúdo a seu critério:
<html> <body> <h1>Redes de Computadores</h1> <p>Minha primeira pagina..........</p> </body> </html>
- Ao terminar de editar digite <ctrl> + <x> e, em seguida, Y e <Enter>.
- Verifique se o conteúdo está correto:
cat abacaxi.html
- Acesse a nova página através do navegador Firefox com o endereço (URL):
http://www.redes.edu.br/abacaxi.html
- RECORTE a tela com a página em destaque no navegador e cole no relatório.
- Salve um print da tela do Wireshark destacando a troca de mensagens HTTP e o conteúdo HTML de uma das páginas acessadas.