Redireccionar el tráfico usando PF junto con Internet Sharing

8

La versión corta:

¿Cómo redirijo todo el tráfico desde el puerto en2 80/443 a 127.0.0.1:8080 cuando habilito el uso compartido de Internet en OS X Mountain Lion (10.8)?

Algunos antecedentes:

Estoy haciendo una tesis de maestría donde evaluaré la seguridad de la comunicación para varias aplicaciones de teléfonos inteligentes. Elegí usar mi nuevo MacBook Air como enrutador.

He conectado mi Air a Internet con USB Ethernet y configuro Internet Sharing en mi Wifi. Esto funciona bien Puedo conectar otros dispositivos a mi Air a través de wifi y acceder a Internet. ¡Excelente!

Ahora quiero interceptar este tráfico y modificarlo sobre la marcha. Pensé que necesitaba un proxy para hacer esto, pero necesito uno transparente, donde no tengo que hacer ninguna configuración en el dispositivo. Descubrí que mitmproxy ofrece exactamente estas características. Entonces lo tengo ejecutándose en 127.0.0.1:8080, listo para interceptar el tráfico.

Desafortunadamente, estoy atascado tratando de redirigir mi tráfico que viene del wifi (en2) en el puerto 80 y 443 a 127.0.0.1:8080. Los documentos mitmproxy sugieren una configuración para pfctl pero no funciona. Me di cuenta de que Apple ha proporcionado alguna configuración para compartir en Internet, lo que permite NAT. Entonces, si no uso su configuración, Internet Sharing deja de funcionar. Y cuando intento agregar las líneas rdr a su configuración no tiene efecto (probé varios lugares en el archivo /etc/pf.conf). Mi tráfico simplemente pasa a Internet, sin pasar por el mitmproxy.

Christoffer Reijer
fuente

Respuestas:

6

Encontré la respuesta.

Cargué mis reglas como parte del ancla com.apple/100.InternetSharing/natpmpque es la que se usa para compartir en Internet.

El archivo mitm.pf.confcontiene las reglas:

rdr on bridge0 proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr on bridge0 proto tcp from any to any port 443 -> 127.0.0.1 port 8080`

Cárguelo usando el ancla de Internet Sharing:

sudo pfctl -a com.apple/100.InternetSharing/natpmp -f mitm.pf.conf
Christoffer Reijer
fuente
0

En una situación similar, he usado el firewall para redirigir el tráfico de una NIC al proxy. Podrías usar algo así:

$ sudo ipfw add fwd 127.0.0.1,8080 tcp from not me to any 80 in via en1
$ sudo ipfw add fwd 127.0.0.1,8080 tcp from not me to any 443 in via en1

Si funcionó bien para mí.

También puede usar el programa gratuito WaterRoof como GUI para configurar el firewall. No agrega nada al comando ipsw, solo le brinda un acceso más fácil a todas las opciones.

Esta página me ayudó mucho a configurar mi configuración:

http://lucumr.pocoo.org/2013/1/6/osx-wifi-proxy/

Andrea
fuente
Lo intenté pero por alguna razón no funcionó. Rompió por completo el uso compartido de Internet. Además, tengo entendido que Apple se está alejando de ipfw de FreeBSD a favor de pf de OpenBSD.
Christoffer Reijer
Esta respuesta solo funciona para Mac's viejos. Apple ha caído IPFW.
Brady