Carregando
0xB0Lição 12 de 14

Controle o tráfego com firewalls

Escreva regras que deixam passar o tráfego certo e barram o resto.

20 min Questionário com 7 perguntas
Ao final desta lição, você saberá
  • Prever o resultado de uma lista de regras por primeira correspondência.
  • Explicar a negação por padrão e a filtragem com estado.
  • Usar segmentos de rede para limitar o dano de uma invasão.

Agora você sabe o que preenche cada cabeçalho. Um firewall usa esses mesmos campos para decidir o que é permitido: endereço de origem e de destino, protocolo e porta. Mas a maior parte dos problemas com firewalls não vem de uma regra errada. Vem de regras na ordem errada.

A primeira correspondência vence

A maioria dos firewalls lê as regras de cima para baixo e para na primeira que corresponde. Isso é diferente do roteamento, em que a rota mais específica vence, qualquer que seja sua posição.

Boas listas de regras terminam com negação por padrão: tudo o que não foi permitido explicitamente é bloqueado, então esquecer uma regra quebra um recurso em vez de abrir um buraco.

Experimente

Corrija a ordem das regras

Cada regra aqui é razoável, mas a ordem está errada. Use as setas para reordená-las até todo o tráfego receber o veredito certo. Cada fluxo mostra qual regra o capturou, então comece por um errado e pergunte o que o capturou cedo demais.

A melhor solução possível leva cinco movimentos. Você consegue igualar?

Regras, verificadas de cima para baixo

  1. 1PermitirHTTPS de qualquer lugar
  2. 2NegarSSH de qualquer lugar
  3. 3PermitirSSH do escritório
  4. 4PermitirBanco de dados do escritório
  5. 5NegarTudo o que vem da lista de bloqueio
  6. –Todo o resto: negado por padrão

Tráfego

  • Um cliente carrega o site (internet, 443)Deve passar. Correspondeu à regra 1: Permitir.
  • Uma pessoa da administração faz login (escritório, 22)Deve passar. Correspondeu à regra 2: Negar.
  • Um desconhecido tenta SSH (internet, 22)Deve ser bloqueado. Correspondeu à regra 2: Negar.
  • Um atacante conhecido sonda o site (lista de bloqueio, 443)Deve ser bloqueado. Correspondeu à regra 1: Permitir.
  • Uma pessoa desenvolvedora consulta o banco (escritório, 5432)Deve passar. Correspondeu à regra 4: Permitir.
  • Um desconhecido tenta o banco (internet, 5432)Deve ser bloqueado. Nenhuma regra correspondeu, então é negado por padrão.

2 fluxos estão com o veredito errado.

Firewalls com estado

Se um firewall nega todo o tráfego de entrada, como as respostas às suas próprias requisições voltam? Um firewall com estado (stateful) lembra das conexões que deixou sair e permite automaticamente os pacotes de retorno. Você viu a mesma ideia na tabela NAT. Quase todos os firewalls modernos funcionam assim, então você escreve regras para o lado que inicia a conexão.

Firewalls reais listam suas regras da mesma forma. Os números importam, porque a avaliação começa na regra 1 e para na primeira correspondência:

terminal
1$ sudo iptables -L INPUT -n --line-numbers
2Chain INPUT (policy DROP)
3num  target  prot  source          destination
41    ACCEPT  all   0.0.0.0/0       0.0.0.0/0    ctstate RELATED,ESTABLISHED
52    ACCEPT  tcp   203.0.113.0/24  0.0.0.0/0    tcp dpt:22
63    DROP    tcp   0.0.0.0/0       0.0.0.0/0    tcp dpt:22
74    ACCEPT  tcp   0.0.0.0/0       0.0.0.0/0    tcp dpt:443

policy DROP é a negação por padrão, e a regra 1 é a parte com estado: ela deixa entrar as respostas de conexões existentes.

Segmentação: considere que algo vai entrar

Um único firewall na borda é como a muralha de um castelo: depois que um atacante entra, tudo fica ao alcance. A segmentação divide uma rede em zonas, usando sub-redes e VLANs, com filtragem entre elas. Um servidor web pode alcançar o banco de dados em uma porta, mas um notebook comprometido não alcança o banco de forma alguma.

Isso segue o princípio do menor privilégio: cada sistema só alcança o que precisa. Tudo o que você aprendeu sobre sub-redes é o que torna isso possível.

Experimente

A qual zona isto pertence?

Você está desenhando a rede de uma empresa com três zonas. A zona pública é acessível pela Internet, a zona interna é para os funcionários e a zona restrita guarda os sistemas mais sensíveis. Coloque cada sistema onde ele possa fazer seu trabalho com a menor exposição.

0 de 5 classificadosPontuação 0/0
  • “O site da empresa”

  • “Notebooks dos funcionários”

  • “O banco de dados de clientes”

  • “A impressora do escritório”

  • “O sistema de pagamentos”

Experimente

Leia regras reais de firewall

Acompanhe cada pacote a partir do topo. Clique na regra que decide o destino dele.

Rodada 1 de 3: Acompanhe uma tentativa de SSHPontuação 0/0

Chega uma conexão para a porta 22 vinda de 198.51.100.7. Qual regra decide?

$ sudo iptables -L INPUT -n --line-numbers

Principais conclusões

  • Firewalls comparam campos de cabeçalho, e a primeira regra que corresponde decide.

  • Termine com a negação por padrão e deixe o rastreamento de estado cuidar das respostas.

  • A segmentação limita até onde um atacante consegue ir depois de entrar.

Quiz da aula

7 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…