redirection de port pfctl dans Mac OSX?

16
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080
-A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
COMMIT

Le code ci-dessus est un code que j'ai utilisé pour transférer du trafic sous Linux.

Maintenant, je dois faire la même chose sous Mac OSX. 10.8 si cela est important.

Donc, voici l'affaire.

Avant, j'utilisais un proxy pour me connecter à la machine Linux et en utilisant ce proxy, j'étais en mesure de surveiller le trafic à l'aide de mitmproxy

Maintenant, sur le mac, j'utilise le partage Internet intégré et je veux utiliser mitmproxy qui n'écoute que les choses du port 8080.

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ac:de:48:81:1d:4a 
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
    Configuration:
        priority 0 hellotime 0 fwddelay 0 maxage 0
        ipfilter disabled flags 0x2
    member: en0 flags=3<LEARNING,DISCOVER>
             port 5 priority 0 path cost 0

Ce qui précède est la "connexion partagée" que je dois transmettre, je crois.

cripto
la source

Réponses:

23

En supposant que toute votre demande de trafic Web proviendra de l' 192.168.2.0/24interfacebridge0

Ajoutez les règles suivantes à /etc/pf.conf

rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port http -> 127.0.0.1 port 8080
rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port https -> 127.0.0.1 port 8080

Astuces rapides

  1. Testez pf.conf pour une erreur de syntaxe

    pfctl -v -n -f /etc/pf.conf
    
  2. Appliquer / recharger les règles

    pfctl -f /etc/pf.conf
    

Ceci est une feuille de triche pour OS X pfctl.

John Siu
la source
3
pfne semble pas être activé par défaut, vous pourriez avoir à ajouter le -edrapeau: pfctl -ef /etc/pf.conf.
Webthusiast
4
il dit erreur de syntaxe
Hitesh Joshi
@HiteshJoshi: J'ai eu le même problème. Pour moi, déplacer les lignes entre les lignes avec "rdr-anchor" et "dummynet-anchor" l'a corrigé.
Albin