O problema aqui é que /etc/rc.d/pf
é executado antes de /usr/local/etc/rc.d/ezjail
, portanto, o kernel não configurou a rede presa no momento em que tenta carregar as regras de firewall. Você pode ficar tentado a alterar o script pf
para iniciar após ezjail
, mas isso não é uma boa ideia - você quer que seu firewall inicie no início do processo de inicialização, mas as cadeias começam bem tarde. service -r
mostra em qual ordem seus scripts rc serão executados.
Você não mostra nenhuma das suas regras pf.conf
, mas meu palpite é que elas usam a configuração da interface estática. Normalmente, pesquisas de nome de host e nome de interface para conversão de endereços são realizadas quando as regras são carregadas. Se um nome de host ou endereço IP for alterado, as regras precisam ser recarregadas para atualizar o kernel. No entanto, você pode alterar esse comportamento cercando os nomes de interface (e quaisquer modificadores opcionais) entre parênteses, o que fará com que as regras sejam atualizadas automaticamente se o endereço da interface mudar. Como um exemplo simples (e não muito útil):
ext_if="em0"
pass in log on $ext_if to ($ext_if) keep state
A% man_de% manpage é muito completa. Em particular, a seção "PARÂMETROS" é relevante aqui.