Reindirizzare il traffico utilizzando PF insieme a Condivisione Internet


8

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.

Risposte:


6

Ho trovato la risposta

Ho caricato le mie regole come parte dell'ancora com.apple/100.InternetSharing/natpmpche è quella utilizzata per la condivisione di Internet.

Il file mitm.pf.confcontiene le regole:

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`

Caricalo usando l'ancora Condivisione Internet:

sudo pfctl -a com.apple/100.InternetSharing/natpmp -f mitm.pf.conf

0

In una situazione simile ho usato il firewall per reindirizzare il traffico da una scheda NIC al proxy. Puoi usare qualcosa del genere:

$ 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

Se ha funzionato bene per me.

È inoltre possibile utilizzare il programma WaterRoof gratuito come GUI per configurare il firewall. Non aggiunge nulla al comando ipsw, ti dà solo un accesso più facile a tutte le opzioni.

Questa pagina mi ha aiutato molto nell'impostazione della mia configurazione:

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


L'ho provato ma per qualche motivo non ha funzionato. Ha completamente rotto la condivisione di Internet. Inoltre, ho capito che Apple si sta allontanando da ipfw da FreeBSD a favore di pf da OpenBSD.
Christoffer Reijer,

Questa risposta funziona solo per i vecchi Mac. Apple ha abbandonato IPFW.
Brady,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.