Pular para o conteúdo principal

TP 5 – Laboratório: SSH, HTTP e Firewall

Elementos de correção

Elementos de correção para este TP estão disponíveis no repositório de exercícios: 👉 module-17 – Correções

Módulo Bônus: Entendendo as placas de rede VirtualBox e VMware

Este TP utiliza até 3 placas de rede por VM. Para uma explicação detalhada dos tipos de placas (NAT, Internal Network, Host-Only, Bridged) e seu equivalente VMware, consulte: 👉 Módulo 15 - Bônus: Placas de rede VirtualBox vs VMware

Trabalho em dupla

Nome
Estudante 1........................
Estudante 2........................

Objetivos​

Este laboratório tem como objetivo aplicar os conhecimentos adquiridos sobre os protocolos e serviços estudados até agora (SSH, HTTP, Firewall) em um ambiente Linux.


Ambiente necessário​

Hypervisor​

  • VirtualBox (ou VMware Workstation / VMware Player)

Máquinas virtuais a serem criadas​

MáquinaSistema operacionalRAMDiscoCPUInterfaces de rede
srvGatewayUbuntu Server 24.04 LTS (ou 22.04 LTS)1 GB mínimo20 GB1 vCPU3 interfaces: NAT + Rede interna lan + Rede interna clientnet
srvSSHUbuntu Server 24.04 LTS (ou 22.04 LTS)1 GB mínimo20 GB1 vCPU1 interface: Rede interna lan
srvWEBUbuntu Server 24.04 LTS (ou 22.04 LTS)1 GB mínimo20 GB1 vCPU1 interface: Rede interna lan
ClientUbuntu Server 24.04 LTS (ou 22.04 LTS)1 GB mínimo20 GB1 vCPU1 interface: Rede interna clientnet
Configuração de rede no VirtualBox
  • srvGateway precisa de 3 placas de rede:
    • Adaptador 1: NAT (acesso à Internet)
    • Adaptador 2: Internal Network → lan (rede LAN 10.11.12.0/24)
    • Adaptador 3: Internal Network → clientnet (rede Cliente 20.21.22.0/30)
  • srvSSH e srvWEB: Internal Network → lan
  • Client: Internal Network → clientnet

Softwares necessários nas VMs​

MáquinaSoftwares a instalar
srvGatewayiptables, net-tools
srvSSHopenssh-server
srvWEBapache2, openssl, certbot (opcional)
Clientopenssh-client, curl, wget
Importante

O roteamento IP (ip_forward) deve estar ativado no srvGateway para que o tráfego circule entre as redes. As outras máquinas (srvSSH, srvWEB, Client) devem ter o srvGateway como gateway padrão.


Topologia de rede​

Descrição das máquinas​

MáquinaPapelInterface(s)
srvGatewayRoteamento e gateway para InternetInterface 1: NAT (Internet)
Interface 2: 10.11.12.1/24 (LAN)
Interface 3: 20.21.22.1/30 (Cliente)
srvWEBServidor web Apache10.11.12.150/24
srvSSHServidor SSH10.11.12.100/24
ClientMáquina cliente20.21.22.2/30

Conectividade esperada​

  • srvGateway tem acesso à Internet
  • O cliente, srvWEB e srvSSH podem acessar a Internet através do srvGateway
  • O tráfego SSH, HTTP e HTTPS é autorizado no srvGateway
Importante

O não cumprimento da topologia ou o fornecimento de capturas de tela que não correspondam às instruções resultará em penalização de pontos.


Parte 1 – Configuração de roteamento e compartilhamento de conexão (40 pontos)​

1.1 – Configurar endereços IP estáticos​

Configure os endereços IP estáticos em cada uma das quatro máquinas conforme a topologia.

Faça uma captura das interfaces para cada uma das máquinas.

1.2 – Ativar roteamento permanente no srvGateway​

Ative o roteamento (IP forwarding) de forma permanente no srvGateway.

Insira a captura de tela da ativação do roteamento permanente.

1.3 – Configurar o compartilhamento de conexão com a Internet no srvGateway​

Adicione regras iptables para:

a) Autorizar o tráfego de saída da LAN, roteado pelo srvGateway​

Captura obrigatória.

b) Autorizar apenas tráfego SSH, HTTP, HTTPS e ICMP para as demais máquinas​

Captura obrigatória.

c) Ativar o MASQUERADE​

Captura obrigatória.

d) Testar a conexão com a Internet​

Teste a conexão com a Internet a partir do client, srvSSH e srvWEB.

Captura obrigatória.


Parte 2 – Configuração dos serviços (40 pontos)​

2.1 – Configurar um servidor web Apache no srvWEB​

a) Criar dois hosts virtuais​

Crie dois hosts virtuais no srvWEB:

Host virtualNome de domínio
Site 1www.test.local
Site 2www.labo.local

Captura obrigatória.

b) Páginas HTML com os nomes dos estudantes​

Insira páginas HTML com os nomes dos estudantes da equipe.

Captura obrigatória.

c) Arquivos de configuração e páginas web​

Insira as capturas de tela dos arquivos de configuração e das páginas web exibidas.

2.2 – Configurar acesso seguro em HTTPS​

a) Instalar certificados SSL​

Instale certificados SSL para os dois hosts virtuais.

Hosts virtuais envolvidos:

Captura obrigatória: certificados e páginas HTTPS.

2.3 – Restringir o acesso ao srvWEB a partir do client​

a) Bloquear o acesso do endereço 20.21.22.2​

Modifique a configuração para bloquear o endereço 20.21.22.2.

Captura obrigatória.

b) Testar com curl​

Teste com curl e insira a captura de tela da recusa de acesso.


Parte 3 – Configuração de acesso remoto (20 pontos)​

3.1 – Configurar um servidor SSH no srvSSH​

a) Criar o usuário bob​

Crie um usuário bob com /home/bob e /bin/bash.

Capturas obrigatórias:

  • Saída do ss -tan
  • Saída do tail /etc/passwd

3.2 – Configurar um redirecionamento SSH local (túnel)​

Utilize um túnel SSH para que o client possa acessar o www.labo.local via srvSSH.

Princípio do túnel SSH:

Capturas obrigatórias:

  • Comando do túnel SSH
  • Acesso bem-sucedido ao www.labo.local a partir do client via túnel

Recapitulação da topologia e dos fluxos​


Grade de avaliação​

ParteCritériosPontos
Parte 1Configuração de roteamento e compartilhamento de conexão40
Configuração dos endereços IP estáticos + capturas10
Ativação do roteamento permanente5
Regras iptables (SSH, HTTP, HTTPS, ICMP)10
MASQUERADE5
Testes de conexão com a Internet (client, srvSSH, srvWEB)10
Parte 2Configuração dos serviços40
Hosts virtuais Apache (www.test.local, www.labo.local)10
Páginas HTML com nomes dos estudantes5
Arquivos de configuração + páginas exibidas5
Certificados SSL e HTTPS10
Restrição de acesso (bloqueio 20.21.22.2)5
Teste curl + captura da recusa de acesso5
Parte 3Configuração de acesso remoto20
Usuário bob + capturas (ss -tan, /etc/passwd)10
Túnel SSH + acesso ao www.labo.local10
Total100

TP criado em: Fevereiro de 2025


MÓDULO BÔNUS – Entendendo o handshake TLS (explicação simplificada)​

O objetivo aqui é explicar, com palavras bem simples, o que acontece quando você digita um endereço em HTTPS.

Bônus (versão “módulo”)

Uma versão “módulo bônus” (fora deste TP) está disponível aqui: Módulo 15 – Bônus: Handshake TLS (explicação simplificada).

1) Antes do TLS: o “handshake” TCP (SYN / SYN‑ACK / ACK)​

Antes de falar de criptografia (TLS), é preciso primeiro estabelecer a conexão de rede. Para HTTPS, geralmente é TCP na porta 443.

O TCP usa um aperto de mão em 3 mensagens:

  • SYN: “Alô, quero falar com você, está aí?”
  • SYN‑ACK: “Sim, estou aqui, recebi seu SYN. Você me ouve?”
  • ACK: “Sim, te ouço, recebi sua mensagem. Podemos começar.”
O que é “ACK”?

ACK = Confirmação de recebimento (só quer dizer: “recebi”).

👉 Importante: esse handshake TCP não criptografa nada. Ele serve apenas para dizer: “a conexão está pronta”.


2) Depois: o handshake TLS (para proteger a conversa)​

Uma vez estabelecido o TCP, inicia-se o TLS (que transforma HTTP em HTTPS).

Pense no TLS como: combinar um cadeado, verificar a identidade do servidor e depois falar em uma língua secreta.

Aqui está a ideia geral (sem entrar nos detalhes criptográficos):

  • ClientHello (cliente → servidor):
    • “Olá, eu sei fazer TLS, estas são as versões e algoritmos que eu suporto.”
  • ServerHello (servidor → cliente):
    • “OK, vamos usar tal versão TLS e tais algoritmos.”
    • O servidor também envia seu certificado (sua “identidade”).
  • Verificação do certificado (lado cliente):
    • O cliente verifica se o certificado é válido, corresponde ao nome do site e é assinado por uma autoridade conhecida (ou aceito manualmente se autoassinado).
  • Criação de um segredo compartilhado:
    • Cliente e servidor estabelecem chaves para criptografar (geralmente via troca de chaves tipo Diffie‑Hellman).
    • A partir daí, podem gerar chaves de sessão.
  • Finished (dos dois lados):
    • Eles trocam uma última mensagem para confirmar: “temos as mesmas chaves, estamos prontos”.

✅ Depois disso, tudo é criptografado: URLs completas, conteúdos, senhas, cookies, etc.


3) Pequeno resumo “em uma frase”​

  • TCP (SYN/SYN‑ACK/ACK): abrimos a porta (conexão)
  • TLS (ClientHello… Finished): colocamos um cadeado e verificamos a identidade (segurança)
  • HTTP/HTTPS: é o que dizemos depois que a porta está aberta e o cadeado colocado
Dica Wireshark (o que você deve observar)
  • Em HTTP, você verá o conteúdo (geralmente legível).
  • Em HTTPS, você verá principalmente o handshake TLS e depois pacotes criptografados (conteúdo ilegível).