La versione breve:
Come faccio a reindirizzare tutto il traffico dalla porta en2 da 80/443 a 127.0.0.1:8080 quando ho abilitato la Condivisione Internet in OS X Mountain Lion (10.8)?
Alcuni background:
Sto facendo una tesi di master in cui valuterò la sicurezza delle comunicazioni per varie app per smartphone. Ho scelto di utilizzare il mio nuovo MacBook Air come router.
Ho collegato il mio Air a Internet con USB Ethernet e ho configurato la condivisione Internet sul mio Wifi. Questo funziona bene. Posso collegare altri dispositivi al mio Air tramite Wi-Fi e accedere a Internet. Grande!
Ora voglio intercettare questo traffico e modificarlo al volo. Ho pensato che ho bisogno di un proxy per farlo, ma ho bisogno di un trasparente, in cui non devo fare alcuna configurazione sul dispositivo. Ho trovato che mitmproxy offre esattamente queste funzionalità. Quindi l'ho in esecuzione su 127.0.0.1:8080, pronto per intercettare il traffico.
Purtroppo non riesco a reindirizzare il traffico proveniente dal wifi (en2) sulla porta 80 e da 443 a 127.0.0.1:8080. I documenti mitmproxy suggeriscono una configurazione per pfctl ma non funziona. Ho notato che Apple ha fornito alcuni config per la condivisione di Internet, abilitando NAT. Quindi, se non utilizzo la loro configurazione, Internet Sharing smette di funzionare. E quando provo ad aggiungere le linee rdr alla loro configurazione non ha effetto (ho provato diverse posizioni nel file /etc/pf.conf). Il mio traffico passa semplicemente a Internet, ignorando il mitmproxy.