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

Aula 2 de 4 · 9 min

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

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

A função de um firewall parece simples: deixar passar o tráfego bom, manter fora o tráfego ruim. A parte interessante é como ele decide, e em que nível. Esta aula cobre a filtragem com estado como conceito, e depois as ferramentas específicas e separadas que o macOS oferece, cada uma trabalhando em uma camada diferente.

Filtragem com estado: lembrando a conversa

Um firewall antigo, "sem estado", inspeciona cada pacote isoladamente contra um conjunto fixo de regras. Um firewall com estado, em vez disso, acompanha as conexões abertas, e, como descreve o glossário de rede da Cloudflare, "guarda informações sobre conexões abertas e usa essas informações para analisar o tráfego de entrada e saída", em vez de inspecionar cada pacote do zero. Na prática, isso significa que um firewall com estado consegue manter as portas efetivamente fechadas até que uma conexão que você iniciou peça uma resposta, e então deixar essa resposta específica voltar, sem abrir a porta para mais nada. Praticamente todo firewall de consumidor e de sistema operacional em uso hoje, incluindo o do macOS, tem estado.

Filtragem de entrada versus de saída

A filtragem de entrada controla conexões chegando à máquina, sem convite, vindas de fora: alguém ou algo tentando alcançar um serviço rodando nela. A filtragem de saída (egress) controla conexões que a própria máquina, ou um aplicativo nela, tenta fazer para fora. As duas importam por motivos diferentes. A filtragem de entrada impede que uma máquina seja alcançada e sondada em primeiro lugar. A filtragem de saída importa depois que algo já deu errado: software prejudicial que consegue entrar em uma máquina ainda precisa "ligar para casa", receber instruções, ou enviar dados para fora, e cada uma dessas ações precisa de uma conexã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 conexão de saída de cada vez.

O que o macOS realmente oferece

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çãoObservações
Firewall de AplicativosPor aplicativo, em Ajustes do Sistema → Rede → FirewallEntradaDecide se cada aplicativo pode aceitar conexões de entrada de forma alguma; não filtra o que os aplicativos enviam para fora. Abordado com comandos de verificação no curso de fortalecimento do macOS deste site.
pf (packet filter)Filtragem de pacotes no nível do kernel, herdada do BSDAmbas, baseada em regrasUm firewall poderoso e de uso geral que a Apple usa internamente (por exemplo, para o Compartilhamento de Internet), documentado para administradores nas páginas de manual pfctl e pf.conf, em vez de em um painel gráfico de configurações. Regras pf escritas à mão são um firewall BSD legado, não um produto da Apple com uma página de suporte, e o macOS não documenta oficialmente editá-las para o fortalecimento por usuários finais.
Filtros de conteúdo Network ExtensionNo nível do aplicativo, via framework NetworkExtension da AppleSaída (e entrada para os fluxos que um filtro recebe)O framework que aplicativos de terceiros usam para inspecionar ou bloquear tráfego de rede por aplicativo ou por domínio, com a permissão do usuário; é o que torna possível, de forma alguma, um firewall de saída por aplicativo no macOS, em vez de só de entrada.

A leitura prática dessa tabela é que o firewall nativo e suportado do macOS (o Firewall de Aplicativos) cobre bem as conexões de entrada, mas não diz nada sobre o que sai da máquina. O pf tecnicamente consegue fazer as duas coisas, mas é uma ferramenta de baixo nível, baseada em scripts, voltada a administradores confortáveis editando arquivos de configuração e raciocinando sobre a ordem das regras, não algo que este curso vai ensinar a configurar, já que um erro em um conjunto de regras escrito à mão pode falhar silenciosamente de forma aberta ou bloquear totalmente o acesso à rede, e a Apple não o trata como uma configuração de primeira classe e suportada para o usuário final, da forma como trata o Firewall de Aplicativos. Guias de fortalecimento da comunidade que publicam conjuntos de regras pf prontos ou scripts que importam listas de bloqueio de IP de terceiros vão além do que este curso recomenda: essas listas precisam ser confiá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 nativo só de entrada sem uma forma simples e suportada de ver ou controlar conexões de saída por aplicativo, é exatamente o que o framework Network Extension da Apple existe para permitir que desenvolvedores terceiros preencham, com a permissão explícita do usuário na instalação.

Para lembrar

  • Um firewall com estado acompanha conexões abertas e permite tráfego de retorno para uma conexão que você iniciou, sem inspecionar todo pacote contra uma lista fixa de regras.
  • A filtragem de entrada impede que uma máquina seja alcançada de fora; a filtragem de saída importa depois que algo já está na máquina e tentando se comunicar para fora.
  • O Firewall de Aplicativos do macOS filtra conexões de entrada por aplicativo; ele não filtra tráfego de saída.
  • O `pf` é um firewall BSD poderoso, no nível do kernel, que o macOS usa internamente, mas não é uma configuração de fortalecimento suportada e documentada para o usuário final, da forma como é o Firewall de Aplicativos.
  • O framework Network Extension da Apple é o que permite que aplicativos de terceiros ofereçam filtragem de saída por aplicativo, a lacuna que o firewall nativo deixa aberta.

Teste seus conhecimentos

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

    • Ele bloqueia todo o tráfego por padrão, sem exceções
    • Ele acompanha conexões abertas e usa esse contexto para permitir o tráfego de retorno esperado — Certo.
    • Ele só funciona em redes Wi-Fi
    • Ele criptografa todo o tráfego de rede

    Firewalls com estado lembram o estado das conexões abertas em vez de julgar cada pacote isoladamente, o que permite que eles autorizem com segurança respostas a conexões que você iniciou.

  2. 2. Por que a filtragem de saída importa, mesmo com um firewall de entrada forte?

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

    A filtragem de entrada impede que conexões não solicitadas alcancem a máquina, mas não faz nada depois que algo já está rodando nela e tentando se comunicar para fora.

  3. 3. O que o Firewall de Aplicativos do macOS NÃO faz?

    • Decidir se um aplicativo pode aceitar conexões de entrada
    • Filtrar conexões de saída que um aplicativo faz — Certo.
    • Funcionar por aplicativo
    • Rodar sem nenhum software adicional

    O Firewall de Aplicativos é só de entrada; controlar o que os aplicativos enviam para fora exige um mecanismo diferente, como um construído sobre o framework Network Extension da Apple.

Praticar com o FireAI

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

Fontes

Coloque em prática no seu Mac

Teste todos os recursos grátis por 17 dias, sem cartão.

Baixar para Mac Docs