Buscar

Projeto 2 Redes Akira

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Seção 1 ­ Sobre o projeto 
 
1.1 ­ Introdução 
 
Este projeto foi criado para incrementar o conhecimento sobre roteamento de redes,                       
configuração de serviços de rede e interação com serviços disponibilizados a partir de redes                           
diferentes. 
 
1.2 ­ Objetivos 
 
O objetivo deste trabalho é demonstrar a configuração e funcionamento da camada de rede,                           
análise da camada de transporte, e o exemplo do desenvolvimento de uma aplicação                         
cliente­servidor. 
 
1.3 ­ Membros do grupo 
 
● Maycon Ribeiro 
● Eduardo Macedo 
● Pedro Gustavo 
● Gabriel da Trindade 
● Marcella Toledo 
 
1.4 ­ Arquitetura da rede 
 
 
 
 
1.4.1 ­ Rede ­ adaptadores ­ MV2 
 
1.4.2 ­ Rede ­ adaptadores ­ R1 
 
 
 
1.4.3 ­ Rede ­ adaptadores ­ R2 
 
 
1.4.4 ­ Rede ­ adaptadores ­ MV3 
 
 
 
1.5 ­ Descrição de todos os softwares utilizados 
 
● Oracle VirtualBox 5.0.14 
● Debian Linux (VM fornecida pelo professor) 
● Wireshark 
● Squi proxy 
● Bind DNS 
 
Seção 2 ­ Configuração básica da rede, DHCP e DNS 
 
2.1 ­ Configurar Interfaces de Rede 
 
2.1.1 ­ Interfaces de Rede da Máquina R1 
 
A máquina R1 foi configurada com duas interfaces de rede no VirtualBox, a primeira 
configurada para atuar em modo bridge com placa de rede da máquina física, onde obterá o 
endereço IP via DHCP na Rede Local, ligada a um roteador de internet, a segunda interface de 
rede está configurada para uma rede interna virtual denominada ‘intnet01’.Assim a máquina R1 
teve o arquivo ‘/etc/network/interfaces’ definido da seguinte forma: 
 
Com esta configuração ficaram definidos para R1 os IPs 192.168.25.64/24 na eth0, e 
10.4.0.1/16 na eth1. 
 
 
2.1.2 ­ Interfaces de Rede da Máquina R2 
 
A máquina R2 foi configurada com duas interfaces de rede no VirtualBox, a primeira 
configurada para atuar em modo bridge com placa de rede da máquina física, onde obterá o 
endereço IP via DHCP na Rede Local, ligada a um roteador de internet, a segunda interface de 
rede está configurada para uma rede interna virtual denominada ‘intnet02’, Assim a máquina 
R2 teve o arquivo ‘/etc/network/interfaces’ definido da seguinte forma: 
 
Com esta configuração ficaram definidos para R2 os IPs 192.168.25.70/24 na eth0, e 
10.40.0.1/16 na eth1. 
 
2.1.3 ­ Interfaces de Rede da Máquina MV2 
 
A máquina MV2 foi configurada com uma interface de rede no VirtualBox configurada para a 
rede interna denominada ‘intnet01’, desta forma a rede da máquina MV2 foi configurada no 
arquivo ‘/etc/network/interfaces’ da seguinte forma: 
 
Assim a máquina MV2 ficou configurada com o IP 10.4.0.2/16 na interface eth0, possibilitando 
comunicação desta com R1 (testado com requisições PING), foi definido também para MV2 um 
gateway padrão, que é R1. 
 
2.1.4 ­ Interfaces de Rede da Máquina MV3 
 
A máquina MV3 foi configurada com uma interface de rede no VirtualBox configurada para a 
rede interna denominada ‘intnet02’, desta forma a rede da máquina MV3 foi configurada no 
arquivo ‘/etc/network/interfaces’ da seguinte forma: 
 
Assim a máquina MV3 ficou configurada com o IP 10.40.0.2/16 na interface eth0, possibilitando 
comunicação desta com R2 (testado com requisições PING), foi definido também para MV3 um 
gateway padrão, que é R2. 
 
2.1.5 ­ Configurações adicionais 
2.1.5.1 ­ Redirecionamento de pacotes entre R1 e R2 e persistência de rotas 
 
Para que as máquinas MV2 e MV3 comuniquem entre si, é necessário incrementar algumas 
configurações em R1 e R2. 
 
# echo 1 > /proc/sys/net/ipv4/ip_forward 
 
O comando acima foi aplicado em R1 e R2 para ativar o redirecionamento de pacotes nas duas 
máquinas roteadoras. 
Na máquina R1 foi adicionada a rota para a rede intnet02: 
 
# route add ­net 10.40.0.0/16 gw <IP DA ETH0 DA MAQUINA R2> 
Adicionamos a linha em /etc/network/interfaces para a persistência das rotas: 
up /sbin/route add ­net 10.40.0.0 gw <IP DA ETH0 DA MAQUINA R2> 
down /sbin/route del ­net 10.40.0.0 gw <IP DA ETH0 DA MAQUINA R2> 
 
 
 E na máquina R2 a rota para a rede intnet01 também foi definida: 
# route add ­net 10.4.0.0/16 gw <IP DA ETH0 DA MAQUINA R1> 
Adicionamos igualmente a linha em /etc/network/interfaces para a persistência das rotas: 
up /sbin/route add ­net 10.4.0.0 gw <IP DA ETH0 DA MAQUINA R1> 
down /sbin/route del ­net 10.4.0.0 <IP DA ETH0 DA MAQUINA R1> 
 
 
 
Assim é possível fazer com que todas as 4 máquinas virtuais se comuniquem. 
 
Caso haja a situação de algumas das interfaces não recarregar após ​service networking 
restart​, de o comando ​ip addr flush dev ethX 
2.1.5.2 ­ Configurações de interfaces ­ estado atual 
R1 
 
R2 
 
 
 
2.1.6 ­ Testes com Ping 
2.1.6.1 ­ MV2 em todas as demais máquinas 
 
2.1.6.2 ­ R1 em todas as demais máquinas 
 
 
2.1.6.3 ­ R2 em todas as demais máquinas 
 
2.1.6.4 ­ MV3 em todas as demais máquinas 
 
 
 
 
 
 
2.2 ­ Configurar NAT na R1 
Configurando NAT na R1 com o comando “iptables ­t nat ­o eth0 ­A POSTROUTING ! ­d 
10.40.0.0/16 ­j MASQUERADE” de forma que realize NAT somente quando a comunicação não 
for com a R2 
 
Teste de ping em MV2: 
 
2.3 ­ Configurar NAT na R2 
Configurando NAT na R1 com o comando “iptables ­t nat ­o eth0 ­A POSTROUTING ! ­d 
10.4.0.0/16 ­j MASQUERADE” de forma que realize NAT somente quando a comunicação não 
for com a R1 
 
Teste de ping em MV3: 
 
 
 
2.3 ­ Configurar DNS em R1 
Instalando o BIND através do comando “aptitude install bind9” 
 
 
Instalando dnsutils através do comando “aptitude install dnsutils” 
 
 
Configurando o nameserver local da R2 para 10.4.0.1 em “/etc/resolv.conf” 
 
Configurar o /etc/bind/named.conf.local para criação da zona local 
 
Em /etc/bind/db.grupo4.inf.ufg.br configurar a referência por nomes das máquinas virtuais: 
 
 
Fazemos posteriormente o reinício do serviço Bind: 
 
Adicionando em todas as MV’s em ​etc /resolv.conf​ o nameserver da R1, 10.4.0.1, e 
realizando os testes pelo comando ​nslookup​: 
R2: 
 
MV3: 
 
MV2: 
 
 
 
 
 
2.3 ­ Configurar DHCP em R1  
Instalamos primeiramente o servidor DHCP com apt­get install dhcp3­server: 
 
Posteriormente modificamos o arquivo ​/etc/default/isc­dhcp­server​ para delimitar que 
a na R1 a interface que fará o serviço DHCP é a eth1: 
 
 
 
 
 
 
 
 
 
Para inserirmos as configurações na subrede e a variação de IP’s que o DHCP deve fornecer, 
modificamos o arquivo ​/etc/dhcp/dhcp.conf​: 
 
Na primeira linha verificamos as caracteristicas da sub­rede de R1. Na segunda linha 
delimitamos um intervalo que os endereços irão trabalhar, variando de 10.4.0.3 ate 10.4.0.100. 
Definimos o router da rede como o R1, 10.4.0.1, o servidor DNS também como R1 e o 
broadcast da rede. 
Abaixo fazemos a restrição de MV2, fixando seu endereço de IP para o já adotado 10.4.0.2, 
inserindo seu endereço físico e o endereço fixo. 
Na MV2, mudamos sua configuração de IP estático para IP dinamico: 
 
 
 
 
 
Depois de feita a configuração vamos aos testes: 
 
Solicitando ao DHCP que dê um novo endereço IP a eth0 da MV2, esperando que seja o 
endereço estático que definimos no arquivo ​dhcpd.conf​: 
 
 
 
 
 
 
 
 
 
Verificando a situação das interfaces em MV2 pós testes: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Seção 3 ­ Instalação de servidor proxy 
3.1 ​ Pesquisarsobre servidores proxy e explicar: conceito, funcionamento, 
funcionalidades, vantagens e desvantagens;  
Um servidor proxy é um computador intermediário que fica entre o computador do usuário e a                               
Internet. Pode ser utilizado para registrar o uso da Internet e também para bloquear o acesso a                                 
um site da Web. O firewall do servidor proxy bloqueia alguns sites ou páginas da Web por                                 
vários motivos.  
Vantagens :  
Servidores proxy: 
* Funcionam como firewall e filtro de conteúdo 
Constituem um mecanismo de segurança implantado pelo provedor de Internet ou pelos                       
administradores da rede em um ambiente de intranet a fim de desativar o acesso ou filtrar                               
solicitações de conteúdo de determinados sites considerados ofensivos ou prejudiciais para a                       
rede e os usuários. ​Quando você usa um serviço proxy de qualidade, a sua navegação fica                               
anônima. Isto porque ele gera um IP diferente do seu, fazendo que a sua navegação fique                               
registrada no cache do seu destino 
* Melhoram o desempenho 
Armazenam em cache as páginas da Web acessadas por hosts da rede durante determinado                           
período. Sempre que um host solicita a mesma página da Web, o servidor proxy utiliza as                               
informações armazenadas em cache em vez de recuperá­las do provedor de conteúdo. Isso                         
proporciona acesso mais rápido às páginas da Web. 
Desvantagens : 
Proxies gratuitos estão à disposição de todos usuários. Desse jeito, um único proxy pode ser                             
usado por milhares de pessoas ao mesmo tempo, o que deixa a sua conexão muito mais lenta.                                 
Muitos desses proxies têm tempo útil pequeno, exigindo que o usuário procure outro serviço.                           
Do outro lado, proxies pagos tendem a ter velocidade de navegação maior. 
Não dão suporte para alguns conteúdos como por exemplo serviços de e­mail. 
 
 
3.2 ­ Instalando Squid em R1 
Instalando um proxy Squid na R1 através do comando “apt­get install squid” 
 
3.3 ­ Testes com Squid 
Fazendo testes com Squid através dos comandos “service squid start” , “service squid stop” e 
“service squid restart” e verificando o status através do comando “service squid status”.  
 
 
 
Verificamos que o Squid responde na porta 3128, verificado no arquivo 
/etc/squid/squid.conf​: 
 
Para testes, criamos dentro do diretório /etc/squid o arquivo sites_bloqueados.txt, que contém 
uma lista de sites que o proxy deve barrar: 
 
Realizamos uma cópia do arquivo original squid.conf, modificando seu nome para 
squidorifinal.conf  e deixamos como backup. Modificamos o arquivo squid.conf (como pode ser 
observado nos anexos), e a principal modificação foi: 
 
Dispensando as linhas comentadas que fizeram parte dos testes de funcionamento, a primeira 
linha determina que a porta http vai ser a do Squid. A terceira linha determina o nome do nosso 
host. Ja a sexta constroi uma regra que permite o acesso por qualquer IP (lembramos que o 
Squid lê seu arquivo de configuração de maneira sequencial). A proxima linha faz uma regra 
para acesso pelas portas https e a seguinte pela http e outros protocolos, como o tcp na 21. 
Na proxima regra, delimitamos que os sites contidos no arquivo /etc/squid/sites_bloqueados.txt 
devem passar pelo proxy. A frente temos as definições dos acessos, negando acesso aos sites 
contidos no sites_bloqueados.txt e liberando a qualquer outro com as demais regras. 
 
Fizemos o restart do Squid: 
 
Configuramos o navegador em Edit>Preferences>Advanced>Network>Settings e configuramos 
o proxy do Squid manualmente: 
 
E testamos o acesso a sites bloqueados e permitidos: 
 
 
 
 
 
Seção 4 ­ Desenvolvimento de servidor http 
Grupo 4 : Servidor HTTP: servidor que fornece acesso aos arquivos de uma pasta; suporte a 
conexão persistente; 
Segue o código abaixo do servidor HTTP:    
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.OutputStream; 
import java.net.ServerSocket; 
import java.net.Socket; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.Locale; 
import java.util.TimeZone; 
 
public class Servidor { 
 
public static void main(String[] args) throws IOException { 
while (true) { 
ServerSocket servidor = new ServerSocket(8000); 
Socket socket = servidor.accept(); 
if (socket.isConnected()) { 
System.out.println(socket.getInetAddress()); 
BufferedReader buffer = new BufferedReader(new 
InputStreamReader(socket.getInputStream())); 
System.out.println("Requisição: "); 
String linha = buffer.readLine(); 
String[] dadosReq = linha.split(" "); 
String metodo = dadosReq[0]; 
String caminhoArquivo = dadosReq[1]; 
String protocolo = dadosReq[2]; 
while (!linha.isEmpty()) { 
System.out.println(linha); 
linha = buffer.readLine(); 
} 
if (caminhoArquivo.equals("/")) { 
caminhoArquivo = "index.html"; 
} 
File arquivo = new File(caminhoArquivo.replaceFirst("/", "")); 
if (!arquivo.exists() && new 
File(caminhoArquivo.replaceFirst("/", "") + ".html").exists()) { 
arquivo = new File(caminhoArquivo.replaceFirst("/", "") 
+ ".html"); 
} 
String status = protocolo + " 200 OK\r\n"; 
if (!arquivo.exists()) { 
status = protocolo + " 404 Not Found\r\n"; 
arquivo = new File("404.html"); 
} 
byte[] conteudo = Files.readAllBytes(arquivo.toPath()); 
SimpleDateFormat formatador = new SimpleDateFormat("E, dd MMM 
yyyy hh:mm:ss", Locale.ENGLISH); 
formatador.setTimeZone(TimeZone.getTimeZone("GMT")); 
Date data = new Date(); 
String dataFormatada = formatador.format(data) + " GMT"; 
String header = status + "Location: 
http://localhost:8000/\r\n" + "Date: " + dataFormatada + "\r\n" 
+ "Server: MeuServidor/1.0\r\n" + "Content­Type: 
text/html\r\n" + "Content­Length: " 
+ conteudo.length + "\r\n" + "Connection: 
close\r\n" + "\r\n"; 
OutputStream resposta = socket.getOutputStream(); 
resposta.write(header.getBytes()); 
resposta.write(conteudo); 
resposta.flush(); 
servidor.close(); 
} 
} 
} 
} 
 
Seção 5 ­ Análise do protocolo IP e TCP  
5.1. Descrever um caso de simulação de uso do protocolo da seção 4; 
Ao ser requisitada uma página sem informar o endereço completo, o programa seleciona                         
automaticamente o arquivo index.html e envia como resposta ao navegador. 
 
 
Acima a saída do programa quando solicitada a página padrão. 
 
Links entre as páginas são entregues pelo servidor normalmente ao serem solicitados, o                         
exemplo abaixo exibe a página alvo do link contido na página do exemplo anterior. 
 
 
 
 
 
 
Quando uma página inexistente é solicitada, o servidor retorna a página padrão de erro 404 ­ 
arquivo não encontrado. 
 
 
5.2. Fazer a análise detalhada da simulação descrita em 5.1 no software Wireshark, 
provando por capturas de telas: 
 
a) Análise de quadro Ethernet com encapsulamento IP e TCP: tamanho total do 
quadro; início e fim do cabeçalho IP; início e fim do cabeçalho IP; conteúdo dos 
dados da camada de aplicação; 
 
Seção 6 ­ Considerações finais, referências bibliográficas, anexos 
Com este trabalho aprendemos a configurar diferentes máquinas para que possam comunicarentre si, assim como suas configurações DHCP, DNS e PROXY, descobrimos os inúmeros                         
erros que podem ocorrer durante essa configuração e as formas de como resolvê­los, algo que                             
é de muita importância para o mercado de trabalho.  
 
  
BIBLIOGRAFIA 
 
Configurando um servidor DHCP ­ Servidores Linux, Guia Prático​; Disponível em: 
http://www.hardware.com.br/livros/servidores­linux/configurando­servidor­dhcp.html 
Último acesso em 01/03/2016 às 23:34. 
 
Configurar Servidor Proxy Squid (Ubuntu) [Artigo] ­ Viva o Linux​; Disponível em: 
https://www.vivaolinux.com.br/artigo/Configurar­servidor­proxy­Squid­(Ubuntu) 
Último acesso em 02/03/2016 às 15:32. 
 
MORIMOTO, Carlos E.;​Servidores Linux ­ Guia Prático​;Porto Alegre: Editora Meridional 
Ltda.; Novembro de 2009. 1ª Reimpressão. 
 
http://tableless.com.br/criando­seu­proprio­servidor­http­do­zero­ou­quase­parte­iii/ 
Último acesso em 02/03/2016 às 20:30.

Continue navegando