Saltar para o conteúdoHisnLabs
← Defesa de rede para um único computador

Lição 2 de 4 · 9 min

Firewalls: filtragem com estado e as opções do macOS

Como um firewall com estado decide o que deixa passar, a diferença entre filtragem de entrada e de saída, e as ferramentas que o macOS dá para cada uma.

A tarefa de um firewall parece simples: deixar passar o tráfego bom, manter fora o tráfego mau. A parte interessante é como decide, e a que nível. Esta lição aborda a filtragem com estado como conceito, e depois as ferramentas específicas e separadas que o macOS oferece, cada uma a funcionar numa camada diferente.

Filtragem com estado: lembrar a conversa

Um firewall antigo, "sem estado", inspeciona cada pacote isoladamente contra um conjunto fixo de regras. Um firewall com estado, em vez disso, mantém registo das ligações abertas, e como descreve o glossário de rede da Cloudflare, "guarda informação sobre ligações abertas e usa essa informação para analisar o tráfego de entrada e de saída, em vez de inspecionar cada pacote" de raiz. Na prática, isto significa que um firewall com estado consegue manter as portas efetivamente fechadas até uma ligação que iniciou pedir uma resposta, e depois deixar essa resposta específica entrar, sem abrir a porta a mais nada. Quase todos os firewalls de consumo e de sistema operativo em uso hoje, incluindo o do macOS, têm estado.

Filtragem de entrada vs. de saída

A filtragem de entrada controla ligações a chegar à máquina, não convidadas, vindas de fora: alguém ou algo a tentar chegar a um serviço que corre nela. A filtragem de saída (egress) controla ligações que a própria máquina, ou uma app nela, tenta fazer para fora. As duas importam por razões diferentes. A filtragem de entrada impede que uma máquina seja alcançada e sondada à partida. A filtragem de saída importa depois de algo já ter corrido mal: o software prejudicial que consegue entrar numa máquina ainda precisa de telefonar para casa, receber instruções, ou enviar dados para fora, e cada uma dessas coisas precisa de uma ligação de saída. Uma máquina com um firewall de entrada forte e nenhuma filtragem de saída ainda pode vazar tudo o que tem, uma ligação de saída de cada vez.

O que o macOS realmente lhe dá

Três mecanismos diferentes, em três camadas diferentes; verifique o comportamento atual nas próprias páginas da Apple antes de depender de qualquer um deles.
FerramentaCamadaDireçãoNotas
Firewall de AplicaçõesPor app, em Definições do Sistema → Rede → FirewallEntradaDecide se cada app pode aceitar ligações recebidas de todo; não filtra o que as apps enviam para fora. Abordado com comandos para o verificar no curso de reforço do macOS deste site.
pf (packet filter)Filtragem de pacotes ao nível do kernel, herdada do BSDAmbas, baseada em regrasUm firewall poderoso e de uso geral que a Apple usa internamente (por exemplo, para a Partilha de Internet), documentado para administradores nas páginas de manual do pfctl e pf.conf em vez de num painel de definições gráfico. As regras de pf escritas à mão são um firewall BSD legado, não um produto Apple com uma página de apoio, e o macOS não documenta oficialmente editá-las para reforço por parte do utilizador final.
Filtros de conteúdo do Network ExtensionAo nível da app, através da estrutura NetworkExtension da AppleSaída (e entrada para os fluxos que um filtro recebe)A estrutura que as apps de terceiros usam para inspecionar ou bloquear tráfego de rede por app ou por domínio, com a permissão do utilizador; é o que torna possível de todo um firewall de saída, por app, no macOS, em vez de apenas de entrada.

A leitura prática desta tabela é que o firewall incorporado e suportado do macOS (o Firewall de Aplicações) cobre bem as ligações de entrada mas não diz nada sobre o que sai da máquina. O pf tecnicamente consegue fazer ambas, mas é uma ferramenta de baixo nível baseada em scripts, dirigida a administradores confortáveis a editar ficheiros de configuração e a raciocinar sobre a ordem das regras, e não algo que este curso vá percorrer configurar, já que um erro num conjunto de regras escrito à mão pode falhar silenciosamente para um estado aberto ou bloquear por completo o acesso à rede, e a Apple não o trata como uma definição de primeira classe e suportada para o utilizador final da forma como trata o Firewall de Aplicações. Os guias de reforço da comunidade que publicam conjuntos de regras pf prontos a usar ou scripts que importam listas de bloqueio de IP de terceiros vão mais longe do que este curso recomenda: essas listas precisam de ser fiáveis e mantidas atualizadas por alguém, e uma atualização quebrada pode quebrar a conectividade sem nenhuma mensagem de erro clara.

Essa lacuna, um firewall incorporado só de entrada sem uma forma simples e suportada de ver ou controlar ligações de saída por app, é exatamente o que a estrutura Network Extension da Apple existe para permitir que programadores de terceiros preencham, com a permissão explícita do utilizador na instalação.

A reter

  • Um firewall com estado acompanha as ligações abertas e permite tráfego de resposta para uma ligação que iniciou, sem inspecionar cada pacote contra uma lista fixa de regras.
  • A filtragem de entrada impede que uma máquina seja alcançada a partir de fora; a filtragem de saída importa assim que algo já está na máquina e a tentar comunicar para fora.
  • O Firewall de Aplicações do macOS filtra ligações de entrada por app; não filtra tráfego de saída.
  • O `pf` é um firewall BSD poderoso, ao nível do kernel, que o macOS usa internamente, mas não é uma definição de reforço suportada e documentada para o utilizador final da forma como o Firewall de Aplicações é.
  • A estrutura Network Extension da Apple é o que permite que apps de terceiros forneçam filtragem de saída por app, a lacuna que o firewall incorporado deixa em aberto.

Teste-se

  1. 1. O que faz um firewall com estado de forma diferente de um filtro de pacotes simples e sem estado?

    • Bloqueia todo o tráfego por defeito sem exceções
    • Acompanha as ligações abertas e usa esse contexto para permitir o tráfego de resposta esperado — Certo.
    • Só funciona em redes Wi-Fi
    • Encripta todo o tráfego de rede

    Os firewalls com estado lembram-se do estado das ligações abertas em vez de julgar cada pacote isoladamente, o que lhes permite permitir com segurança respostas a ligações que iniciou.

  2. 2. Porque importa a filtragem de saída, dado um firewall de entrada forte?

    • Não importa se a filtragem de entrada for forte
    • Porque o software que já está na máquina ainda precisa de uma ligação de saída para enviar dados para fora ou receber instruções — Certo.
    • As ligações de saída são sempre seguras
    • Só importa para servidores web

    A filtragem de entrada impede que ligações não solicitadas cheguem à máquina, mas não faz nada assim que algo já está a correr nela e a tentar comunicar para fora.

  3. 3. O que é que o Firewall de Aplicações do macOS NÃO faz?

    • Decidir se uma app pode aceitar ligações recebidas
    • Filtrar ligações de saída que uma app faz — Certo.
    • Funcionar por app
    • Correr sem software adicional

    O Firewall de Aplicações é só de entrada; controlar o que as apps enviam para fora exige um mecanismo diferente, como um construído sobre a estrutura Network Extension da Apple.

Praticar com o FireAI

Ponha esta lição em prática no seu próprio Mac.

Fontes

Ponha em prática no seu Mac

Experimente todas as funcionalidades grátis durante 17 dias, sem cartão.

Transferir para Mac Docs