Duração: 70 minutos (explicação 20, prática guiada 40, verificação 10). Resultados dos TdR trabalhados: Segurança desde a concepção; IDS/IPS, ACL e segmentação.
Objectivos
- Explicar como a segmentação por zonas limita a propagação de um incidente.
- Desenhar uma matriz de fluxos permitidos entre zonas da rede da DPE.
- Verificar, com testes antes/depois, que só os fluxos aprovados passam.
Zonas e confiança
Uma zona é um conjunto de equipamentos com a mesma função e o mesmo nível de exposição: postos da Administração, servidores, visitantes, gestão dos equipamentos, ligação ao operador. Entre zonas, o tráfego passa por um ponto de controlo (encaminhador com firewall) onde se aplica uma regra explícita.
O objectivo não é impedir todo o erro, mas reduzir o alcance: se um posto de visitante for comprometido, não deve conseguir chegar à rede de gestão nem aos servidores internos. É a mesma ideia do NIST SP 800-207 (confiança zero): a localização na rede, só por si, não dá confiança.
Matriz de fluxos
Antes de escrever regras, escreve-se uma tabela: origem, destino, serviço (protocolo e porta), justificação, responsável. Tudo o que não está na tabela fica recusado por omissão. A tabela é aprovada pela direcção de TI e revista quando surgem serviços novos.
Exemplo na DPE (fictícia): Administração → Servidores em TCP 80/443 e UDP/TCP 53; Visitantes → Internet em TCP 80/443 e DNS; Gestão → equipamentos em SSH (TCP 22) só a partir de 10.10.99.0/24; Visitantes → qualquer rede interna: recusado.
Caso fictício
Um portátil de visitante na DPE (fictícia) foi infectado e começou a procurar serviços na rede. A direcção pede prova de que ele não alcança os servidores nem a gestão.
Prática guiada em rede isolada
Rede de prática fictícia, criada dentro de um computador de prática com o script base (módulo 1, lição 1). Nunca use estes passos na rede de produção nem contra endereços reais. As saídas mostradas são exemplos didácticos, não resultados de uma execução.
Topologia (descrição em texto)
- pc-adm (10.10.10.10) — ligado a r1 pela VLAN 10.
- srv (10.10.20.53) — ligado a r1 pela VLAN 20.
- r1 (encaminhador da sede) — ligado a pc-adm, srv, r2 e isp.
- r2 (encaminhador da delegação) — ligado a r1 e a pc-del (10.20.10.10).
- isp (operador simulado) — ligado a r1 e ao servidor externo 198.51.100.10 (endereço dentro de isp).
- Acrescenta-se ao r1 um posto de visitante vis (10.10.30.30/24, porta 10.10.30.1) e um endereço de gestão 10.10.99.1/24 no lo do r1.
Passos
Crie o posto de visitante e o endereço de gestão.
sudo ip netns add vis sudo ip link add vis-r1 type veth peer name r1-vis sudo ip link set vis-r1 netns vis; sudo ip link set r1-vis netns r1 sudo ip -n vis addr add 10.10.30.30/24 dev vis-r1; sudo ip -n vis link set vis-r1 up; sudo ip -n vis link set lo up sudo ip -n r1 addr add 10.10.30.1/24 dev r1-vis; sudo ip -n r1 link set r1-vis up sudo ip -n vis route add default via 10.10.30.1 sudo ip -n r1 addr add 10.10.99.1/24 dev loTeste ANTES das regras: registe na folha o que passa.
sudo ip netns exec vis ping -c 1 -W 1 10.10.20.53 sudo ip netns exec vis ping -c 1 -W 1 10.10.99.1Saída de exemplo (didáctica):
1 packets transmitted, 1 received 1 packets transmitted, 1 receivedAplique a regra de zona: visitantes não entram em redes internas.
sudo ip netns exec r1 nft add table inet zonas sudo ip netns exec r1 nft 'add chain inet zonas forward { type filter hook forward priority 0; policy accept; }' sudo ip netns exec r1 nft 'add chain inet zonas input { type filter hook input priority 0; policy accept; }' sudo ip netns exec r1 nft add rule inet zonas forward iifname "r1-vis" ip daddr 10.0.0.0/8 counter drop sudo ip netns exec r1 nft add rule inet zonas input iifname "r1-vis" ip daddr 10.10.99.0/24 counter dropTeste DEPOIS e leia os contadores.
sudo ip netns exec vis ping -c 1 -W 1 10.10.20.53 sudo ip netns exec vis ping -c 1 -W 1 10.10.99.1 sudo ip netns exec pc-adm ping -c 1 -W 1 10.10.20.53 sudo ip netns exec r1 nft list table inet zonasSaída de exemplo (didáctica):
1 packets transmitted, 0 received 1 packets transmitted, 0 received 1 packets transmitted, 1 received iifname "r1-vis" ip daddr 10.0.0.0/8 counter packets 1 bytes 84 drop
Critérios de sucesso
- Visitante deixa de alcançar servidores e gestão; a Administração continua a alcançar o servidor.
- A folha tem a tabela antes/depois assinada pela dupla.
Como desfazer (reversão)
- sudo ip netns exec r1 nft delete table inet zonas
- sudo ip -n r1 addr del 10.10.99.1/24 dev lo
- sudo ip netns del vis
Alternativa em papel: tarefas e respostas esperadas
- Preencha a matriz de fluxos para quatro zonas (Administração, Servidores, Visitantes, Gestão) com pelo menos seis linhas.
- Cada linha tem origem, destino, serviço e justificação; Visitantes → redes internas aparece como recusado; Gestão só a partir de 10.10.99.0/24; tudo o resto recusado por omissão.
- Na saída do passo 4, quantos pacotes do visitante foram bloqueados pela regra forward?
- 1 pacote (84 bytes), o eco ICMP do teste ao servidor.
Verifique o que aprendeu
Questão 1
Qual é o principal benefício da segmentação por zonas?
- Aumenta a velocidade da rede
- Limita o alcance de um equipamento comprometido
- Dispensa actualizações
- Elimina a necessidade de palavras-passe
Ver resposta comentada
Resposta: Limita o alcance de um equipamento comprometido
A segmentação não impede a infecção, mas reduz o que o atacante alcança a partir do ponto comprometido.
Questão 2
Numa matriz de fluxos, o que acontece a um fluxo não listado?
- Passa, porque ninguém o proibiu
- Fica recusado por omissão
- Passa só de noite
- Depende do utilizador
Ver resposta comentada
Resposta: Fica recusado por omissão
A regra por omissão é recusar; cada excepção precisa de justificação e responsável.
Em leitura fácil
- A rede divide-se em zonas.
- Entre zonas, só passa o que está autorizado.
- Se um computador for atacado, o problema fica na zona dele.
Fontes
- NIST SP 800-207 — Zero Trust Architecture (https://csrc.nist.gov/pubs/sp/800/207/final)
- NIST SP 800-41 Rev. 1 — Guidelines on Firewalls and Firewall Policy (https://csrc.nist.gov/pubs/sp/800/41/r1/final)
- Projecto nftables — wiki oficial (https://wiki.nftables.org/)
- Linux iproute2 — páginas de manual ip(8), ip-netns(8), bridge(8), tc(8) (https://man7.org/linux/man-pages/man8/ip.8.html)
