Um rdr
é apenas um redirecionamento; também pode ser necessário um pass
(ou um clicky apropriado nas Preferências do Sistema) para permitir o acesso a essa porta. Isso funciona para mim (embora eu tenha desativado quase totalmente as regras de firewall da Apple no meu laptop Mac OS X 10.11) em /etc/pf.conf
:
set skip on { lo0, vboxnet0 }
rdr pass inet proto tcp from any to any port 445 -> 127.0.0.1 port 5441
block in
pass in inet proto tcp from any to any port 445
E, em seguida, um sudo pfctl -f /etc/pf.conf
para carregar isso e, em seguida, o teste com nc -l 127.0.0.1 5441
e conexões para a porta 445 de uma máquina remota mostra o acesso.
Hmm! No entanto, localmente para o sistema do Mac OS X telnet 127.0.0.1 445
falha, provavelmente por causa do skip lo0
. Isso pode ser corrigido por não usar skip
se o acesso localhost ao redirecionamento for necessário:
set skip on vboxnet0
rdr pass inet proto tcp from any to any port 445 -> 127.0.0.1 port 5441
block in
pass on lo0
pass in inet proto tcp from any to any port 445
Observe também que locahost
pode significar 127.0.0.1
ou ::1
, portanto, talvez você também precise configurar regras relacionadas inet6
ou garantir que as conexões sejam sempre feitas com IPv4 para que o IPv6 funcione ou não usado.