A partir do 10.7, a Apple mudou para o Packet Filter (PF) do projeto OpenBSD.
A filtragem de pacotes com o PF é documentada pelo projeto OpenBSD .
A capacidade do PF para manter o estado se destina a fazer exatamente o que você deseja: permitir o tráfego iniciado pelo host para passar, enquanto bloqueia o resto. "Ao armazenar informações sobre cada conexão em uma tabela de estados, o PF pode determinar rapidamente se um pacote passando pelo firewall pertence a uma conexão já estabelecida. Se isso ocorrer, ele será passado pelo firewall sem passar pela avaliação do conjunto de regras". / p>
Então, você pode começar com um conjunto de regras como
block all
pass out from any to any
para que tudo, exceto o tráfego de saída, seja banido. As entradas de estado são criadas para o tráfego de saída, o que permite retornar o tráfego ao longo dessa conexão, já que ele ignora completamente o conjunto de regras.