pfctl port forwarding in 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

Il codice sopra è un codice che ho usato per inoltrare il traffico in Linux.

Ora devo fare la stessa cosa in Mac OSX. 10.8 se è importante.

Quindi, ecco l'affare.

Prima, stavo usando un proxy per connettermi alla macchina linux e usando quel proxy ero in grado di monitorare il traffico usando mitmproxy

Ora, sul Mac, sto usando la condivisione Internet integrata e voglio usare mitmproxy che ascolta solo cose dalla porta 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

Quanto sopra è la "connessione condivisa" che devo inoltrare credo.

Risposte:


23

Supponendo che tutta la tua richiesta di traffico web provenga da 192.168.2.0/24e interfacciabridge0

Aggiungi le seguenti regole a /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

Consigli veloci

  1. Test pf.conf per errore di sintassi

    pfctl -v -n -f /etc/pf.conf
    
  2. Applica / Ricarica le regole

    pfctl -f /etc/pf.conf
    

Questo è un cheat-sheet per OS X pfctl.


3
pfnon sembra essere abilitato per impostazione predefinita, per cui si potrebbe essere necessario aggiungere la -ebandiera: pfctl -ef /etc/pf.conf.
Webthusiast,

4
dice errore di sintassi
Hitesh Joshi

@HiteshJoshi: ho avuto lo stesso problema. Per me, spostando le linee tra le linee con "rdr-anchor" e "dummynet-anchor" è stato risolto.
Albin,
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.