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á
| Ferramenta | Camada | Direção | Notas |
|---|---|---|---|
| Firewall de Aplicações | Por app, em Definições do Sistema → Rede → Firewall | Entrada | Decide 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 BSD | Ambas, baseada em regras | Um 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 Extension | Ao nível da app, através da estrutura NetworkExtension da Apple | Saí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. 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. 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. 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.
- Regras: app, sítio, domínio, IP ou um intervalo, para sempre ou até reiniciar — Escreva uma regra tão precisa como um único endereço ou tão ampla como um domínio inteiro.
- O corte de emergência — Corte o seu Mac da internet com um clique quando algo parecer errado.
- Investigue uma ligação — Decida com os factos à sua frente, não com um aviso vago.
- Atividade: todas as apps que se ligaram, com uma pesquisa de histórico em linguagem simples — Veja todas as apps que se ligaram hoje, e aja sobre qualquer uma delas com um clique.
Fontes
- Cloudflare Learning: What is a firewall?
- Apple Support: Block connections to your Mac with a firewall
- Apple Developer: Network Extension framework
Ponha em prática no seu Mac
Experimente todas as funcionalidades grátis durante 17 dias, sem cartão.