Você pode fazer isso:
rdr pass quick on $ext_inf inet proto tcp from any to any port 1394 -> $target port 1394
Estou executando o MacOS (realmente BSD) e quero redirecionar determinado tráfego em um túnel ssh usando um encaminhamento local. Parece bastante fácil, mas estou repetidamente bloqueado pela mensagem ambígua "/etc/pf.conf:29: syntax error" em cada turno. Eu devo ter passado por 30 iterações da regra até agora. Além disso, eu li as informações relevantes sobre o filtro de pacote do OpenBSD sobre sintaxe e redirecionamento. Estou em silêncio a perda, e procurar a ajuda de alguém mais inteligente do que eu sobre o filtro de pacotes BSD.
O objetivo é levar qualquer fonte de tráfego da minha máquina local destinada a uma máquina na Internet para a porta 1234 e redirecionar o tráfego para 127.0.0.1:1234. Meu sistema operacional específico é o OS X 10.10.2 Yosemite.
Aqui está a última iteração da regra que faz com que o pfctl retorne "erro de sintaxe"
pass out quick on en6 from any to en6 port 1234 rdr-to 127.0.0.1 port 1234
Com base na documentação e em outros blogs aleatórios na Internet, essa regra parece correta; pfctl no entanto, discorda.
A análise com base no meu entendimento da documentação é:
pass
- a ação para passar o tráfego
out
- a direção do fluxo de tráfego
quick
- se o pacote corresponder a essa regra, considere a última regra na cadeia
on en6
- a interface na qual aplicar a regra
from any
- a origem do pacote (sempre deve ser minha máquina)
to en6 port 1234
- para qualquer coisa na interface destinada à porta 1234
rdr-to 127.0.0.1 port 1234
- redireciona o pacote para essa interface