8 votes

Redirection du trafic à l'aide de PF et du partage d'Internet

La version courte :

Comment rediriger tout le trafic du port 80/443 de en2 vers 127.0.0.1:8080 lorsque j'ai activé le partage Internet dans OS X Mountain Lion (10.8) ?

Un peu d'histoire :

Je prépare un mémoire de maîtrise dans lequel j'évalue la sécurité de la communication pour diverses applications pour smartphone. J'ai choisi d'utiliser mon nouveau Macbook Air comme routeur.

J'ai connecté mon Air à Internet par USB Ethernet et j'ai configuré le partage Internet sur mon Wifi. Cela fonctionne bien. Je peux connecter d'autres appareils à mon Air via wifi et accéder à Internet. C'est génial !

Je veux maintenant intercepter ce trafic et le modifier à la volée. Je me suis dit que j'avais besoin d'un proxy pour faire cela, mais j'ai besoin d'un proxy transparent, où je n'ai pas besoin de faire de configuration sur l'appareil. J'ai trouvé que mitmproxy offrait exactement ces fonctionnalités. Je l'ai donc lancé sur 127.0.0.1:8080, prêt à intercepter le trafic.

Malheureusement, je suis bloqué en essayant de rediriger mon trafic venant du wifi (en2) sur les ports 80 et 443 vers 127.0.0.1:8080. La documentation de mitmproxy suggère une configuration pour pfctl mais cela ne fonctionne pas. J'ai remarqué qu'Apple a fourni une configuration pour le partage d'Internet, activant le NAT. Si je n'utilise pas cette configuration, le partage d'Internet ne fonctionne plus. Et lorsque j'essaie d'ajouter les lignes rdr à leur configuration, cela ne prend pas effet (j'ai essayé à plusieurs endroits dans le fichier /etc/pf.conf). Mon trafic passe simplement sur Internet, en contournant le mitmproxy.

7voto

J'ai trouvé la réponse.

J'ai chargé mes règles dans le cadre de l'ancrage com.apple/100.InternetSharing/natpmp qui est celle utilisée pour le partage de l'Internet.

Le dossier mitm.pf.conf contient les règles :

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`

Chargez-la à l'aide de l'ancre de partage Internet :

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

-1voto

ak11234 Points 161

Dans une situation similaire, j'ai utilisé le pare-feu pour rediriger le trafic d'un NIC vers le proxy. Vous pourriez utiliser quelque chose de ce genre :

$ 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

Cela a bien fonctionné pour moi.

Vous pouvez également utiliser le logiciel gratuit EauToit comme interface graphique pour configurer le pare-feu. Il n'ajoute rien à la commande ipsw, il vous permet simplement d'accéder plus facilement à toutes les options.

Cette page m'a beaucoup aidé à mettre en place ma configuration :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X