reenvío de puerto pfctl en Mac osx?

16
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080
-A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
COMMIT

El código anterior es un código que he usado para reenviar tráfico en Linux.

Ahora necesito hacer lo mismo en Mac OSX. 10.8 si es importante.

Entonces, aquí está el trato.

Antes, estaba usando un proxy para conectarme a la máquina Linux y usando ese proxy pude monitorear el tráfico usando mitmproxy

Ahora, en Mac, estoy usando el uso compartido de Internet incorporado y quiero usar mitmproxy que solo escucha cosas del puerto 8080.

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ac:de:48:81:1d:4a 
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
    Configuration:
        priority 0 hellotime 0 fwddelay 0 maxage 0
        ipfilter disabled flags 0x2
    member: en0 flags=3<LEARNING,DISCOVER>
             port 5 priority 0 path cost 0

Lo anterior es la "conexión compartida" que necesito reenviar, creo.

cripto
fuente

Respuestas:

23

Suponiendo que toda su solicitud de tráfico web provenga de una 192.168.2.0/24interfazbridge0

Agregue las siguientes reglas a /etc/pf.conf

rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port http -> 127.0.0.1 port 8080
rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port https -> 127.0.0.1 port 8080

Consejos rápidos

  1. Probar pf.conf para error de sintaxis

    pfctl -v -n -f /etc/pf.conf
    
  2. Aplicar / recargar las reglas

    pfctl -f /etc/pf.conf
    

Esta es una hoja de trucos para OS X pfctl.

John Siu
fuente
3
pfno parece ser activado por defecto, por lo que puede que tenga que añadir el -eindicador: pfctl -ef /etc/pf.conf.
Webthusiast
44
dice error de sintaxis
Hitesh Joshi
@HiteshJoshi: Tengo el mismo problema. Para mí, mover las líneas entre las líneas con "rdr-anchor" y "dummynet-anchor" lo arregló.
Albin