Eu também estava enfrentando esse problema e levou um pouco de teste e tcpdump
para descobrir tudo.
Para responder a sua primeira pergunta, qual é a rule 7/0(match)
: é a regra "Generic_blocks_ (IPv4)" adicionada automaticamente pelo IceFloor para bloquear e registrar todo o tráfego não explicitamente autorizado. Você pode confirmar o número dessa regra executando pfctl -gsr
como root.
Sobre o motivo pelo qual ele está bloqueado. A conexão de entrada é o que está bloqueado. Não tem nada a ver com o não-roteamento ou qualquer coisa no conjunto de regras visível . Tem a ver com a forma como o seu nome DNS é tratado localmente. A tabela de roteamento da sua máquina ( netstat -r
) tem uma entrada para o seu nome DNS que aponta para localhost
na interface lo0
.
A entrada de log contém algumas informações intrigantes, especificamente a block in on en0
, que leva você a acreditar que algo está acontecendo na interface en0
. No entanto, fazer um tcpdump -nvvvi en0 tcp and port 80
mostrou que nenhum pacote estava realmente viajando em en0
. No entanto, os pacotes foram encontrados com tcpdump -nvvvi lo0 tcp and port 80
, confirmando assim que o tráfego estava (como esperado) acontecendo em lo0
.
A configuração padrão do IceFloor ( /Library/IceFloor/icefloor.conf
) é gerada com uma linha que possui set skip on lo0
. No começo, isso parece ser uma linha muito bem-vinda e bem-vinda (veja link ). Todos os outros pedaços de lo0
apareceram desimpedidos pelas regras pf. Em um palpite, decidi comentar essa linha e adicionar uma nova regra (logo após a inclusão da tabela): pass quick on lo0
. Depois de recarregar com essa configuração modificada, consegui acessar meu servidor da web por meio do meu nome DNS (problema resolvido). Então, parece que a linha set skip on lo0
tem alguns problemas.
O recuo com a modificação manual do arquivo icefloor.conf
é que ele impede que você use a guia Firewall na interface do IceFloor. Como salvar uma nova configuração substituiria qualquer edição manual.