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

Kode di atas adalah kode Ive digunakan untuk meneruskan lalu lintas di linux.

Sekarang saya perlu melakukan hal yang sama di Mac OSX. 10.8 jika itu penting.

Jadi, ini kesepakatannya.

Sebelumnya, saya menggunakan proxy untuk terhubung ke mesin linux dan menggunakan proxy itu saya bisa memonitor lalu lintas menggunakan mitmproxy

Sekarang, di mac, saya menggunakan built in internet sharing dan ingin menggunakan mitmproxy yang hanya mendengarkan barang dari 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

Di atas adalah "koneksi bersama" yang saya butuhkan untuk meneruskan saya percaya.

cripto
sumber

Jawaban:

23

Dengan asumsi semua permintaan lalu lintas web Anda akan dari 192.168.2.0/24dan antarmukabridge0

Tambahkan aturan berikut ke /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

Kiat Cepat

  1. Uji pf.conf untuk kesalahan sintaksis

    pfctl -v -n -f /etc/pf.conf
    
  2. Terapkan / Muat ulang aturan

    pfctl -f /etc/pf.conf
    

Ini adalah cheat-sheet untuk OS X pfctl.

John Siu
sumber
3
pftampaknya tidak diaktifkan secara default, sehingga Anda mungkin harus menambahkan -eflag: pfctl -ef /etc/pf.conf.
Webthusiast
4
katanya kesalahan sintaks
Hitesh Joshi
@HiteshJoshi: Saya mendapat masalah yang sama. Bagi saya, memindahkan garis di antara garis dengan "rdr-anchor" dan "dummynet-anchor" memperbaikinya.
Albin