przekierowanie portów pfctl w 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

Powyższy kod jest kodem używanym do przekazywania ruchu w systemie Linux.

Teraz muszę zrobić to samo w Mac OSX. 10,8, jeśli ma to znaczenie.

Oto oferta.

Wcześniej korzystałem z serwera proxy, aby połączyć się z maszyną z systemem Linux i używając tego serwera proxy byłem w stanie monitorować ruch za pomocą mitmproxy

Teraz na komputerze Mac używam wbudowanego udostępniania internetowego i chcę używać mitmproxy, który słucha tylko rzeczy z portu 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

Powyżej jest „wspólne połączenie”, które muszę przekazać, wierzę.

Cripto
źródło

Odpowiedzi:

23

Zakładając, że wszystkie żądania ruchu sieciowego będą pochodzić z 192.168.2.0/24interfejsubridge0

Dodaj następujące reguły do /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

Szybkie porady

  1. Przetestuj pf.conf pod kątem błędu składniowego

    pfctl -v -n -f /etc/pf.conf
    
  2. Zastosuj / przeładuj reguły

    pfctl -f /etc/pf.conf
    

To jest ściągawka dla OS X pfctl.

John Siu
źródło
3
pfnie wydaje się być domyślnie włączone, więc może trzeba dodać -eflagę: pfctl -ef /etc/pf.conf.
Webthusiast
4
mówi błąd składniowy
Hitesh Joshi
@HiteshJoshi: Mam ten sam problem. Dla mnie przesuwanie linii między liniami za pomocą „rdr-anchor” i „dummynet-anchor” naprawiło to.
Albin