La versión corta:
¿Cómo redirecciono todo el tráfico del puerto en2 80/443 a 127.0.0.1:8080 cuando habilito Conexión compartida en OS X Mountain Lion (10.8)?
Algunos antecedentes:
Estoy realizando una tesis de maestría en la que evaluaré la seguridad de la comunicación para varias aplicaciones de teléfonos inteligentes. He elegido usar mi nuevo MacBook Air como enrutador.
He conectado mi Air a Internet con USB Ethernet y he configurado Internet Sharing a mi Wifi. Esto funciona bien. Puedo conectar otros dispositivos a mi Air a través de wifi y acceder a Internet. ¡Genial!
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. Encontré que mitmproxy ofrece exactamente estas características. Así que lo tengo funcionando en 127.0.0.1:8080, listo para interceptar el tráfico.
Lamentablemente, estoy atascado tratando de redirigir el tráfico que ingresa desde 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 algunas configuraciones para compartir Internet, habilitando NAT. Entonces, si no uso su configuración, entonces el uso compartido de Internet deja de funcionar. Y cuando intento agregar las líneas rdr a su configuración no surte efecto (probé varios lugares en el archivo /etc/pf.conf). Mi tráfico simplemente pasa a Internet, sin pasar por el mitmproxy.