La versione corta:
Come reindirizzare tutto il traffico dalla porta en2 80/443 a 127.0.0.1:8080 quando ho abilitato la condivisione Internet in OS X Mountain Lion (10.8)?
Alcuni retroscena:
Sto facendo una tesi di laurea in cui valuterò la sicurezza della comunicazione per varie app per smartphone. Ho scelto di utilizzare il mio nuovo MacBook Air come router.
Ho collegato Air a Internet con USB Ethernet e ho impostato la condivisione Internet su Wifi. Funziona benissimo. Posso connettere altri dispositivi alla mia Air tramite Wi-Fi e accedere a Internet. Grande!
Ora voglio intercettare questo traffico e modificarlo al volo. Ho pensato di aver bisogno di un proxy per farlo, ma ne ho bisogno di uno trasparente, in cui non devo fare alcuna configurazione sul dispositivo. Ho scoperto che mitmproxy offre esattamente queste caratteristiche. Quindi l'ho in esecuzione su 127.0.0.1:8080, pronto per intercettare il traffico.
Purtroppo sono bloccato nel tentativo di reindirizzare il mio traffico proveniente dal wifi (en2) sulla porta 80 e 443 a 127.0.0.1:8080. I documenti mitmproxy suggeriscono una configurazione per pfctl ma non funziona. Ho notato che Apple ha fornito alcune configurazioni per la condivisione di Internet, abilitando NAT. Quindi, se non utilizzo la loro configurazione, la condivisione di Internet smette di funzionare. E quando provo ad aggiungere le righe rdr alla loro configurazione non ha effetto (ho provato diverse posizioni nel file /etc/pf.conf). Il mio traffico passa a Internet, bypassando il mitmproxy.