La versión corta:
¿Cómo puedo redirigir todo el tráfico del puerto 80/443 de en2 a 127.0.0.1:8080 cuando he habilitado Compartir Internet en OS X Mountain Lion (10.8)?
Algunos antecedentes:
Estoy realizando una tesis de máster en la que evaluaré la seguridad de las comunicaciones de varias aplicaciones para teléfonos inteligentes. He decidido utilizar mi nuevo Macbook Air como router.
He conectado mi Air a Internet con USB Ethernet y he configurado el uso compartido de Internet a mi Wifi. Esto funciona bien. Puedo conectar otros dispositivos a mi Air por wifi y acceder a Internet. Muy bien.
Ahora quiero interceptar este tráfico y modificarlo sobre la marcha. Me imagino que necesito un proxy para hacer esto, pero necesito uno transparente, en el que no tenga que hacer ninguna configuración en el dispositivo. Encontré que mitmproxy ofrece exactamente estas características. Así que lo tengo corriendo en 127.0.0.1:8080, listo para interceptar el tráfico.
Desgraciadamente estoy atascado intentando redirigir el tráfico que entra desde la wifi (en2) por los puertos 80 y 443 a 127.0.0.1:8080. Los documentos de mitmproxy sugieren una configuración para pfctl pero no funciona. Me he dado cuenta de que Apple ha proporcionado una configuración para compartir Internet, habilitando el NAT. Así que si no utilizo su configuración entonces el Internet Sharing deja de funcionar. Y cuando intento añadir las líneas rdr a su configuración no surte efecto (he probado en varios lugares del archivo /etc/pf.conf). Mi tráfico simplemente pasa a Internet, saltándose el mitmproxy.