Usando o PacketFilter para proxy de pacotes transparentes no OS X
Existe um utilitário legal por aí chamadosshuttle. Dependeu deipfw
encaminhar pacotes no passado. Parece queipfw
está quebrado principalmente no Mavericks e o conselho é usar o PacketFilter para isso agora.
Passei a maior parte do dia olhando para PacketFilter e pareceipfw
possui um recurso que o PacketFilter não suporta (espero que eu esteja errado sobre isso).
A seguinte regra:
ipfw -q add 12300 fwd 127.0.0.1,12300 tcp from any to any not ipttl 42 keep-state setup
encaminhará todo o tráfego para a porta 12300.0.0.1 (localhost) 12300. No entanto, não altera o IP ou a porta de destino no pacote TCP. Isso é importante para interromper o uso, pois ele usa as informações sobre o destino original para encaminhar o pacote para outra rede.
A regra mais próxima que posso encontrar no mundo do PacketFilter é:
rdr pass proto tcp from any to any -> 127.0.0.1 port 12300
Essa regra envia o tráfego para a porta 12300.0.0.1 (localhost) 12300, mas também reescreve o endereço de destino como 127.0.0.1.
Alguma idéia de como obter o comportamento que o sshuttle precisa no OS X?