web-dev-qa-db-ja.com

Mac OSXでのpfctlポート転送?

-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

上記のコードは、Linuxでトラフィックを転送するために使用したコードです。

Mac OSXでも同じことをする必要があります。重要な場合は10.8。

それで、これが取引です。

以前は、プロキシを使用してLinuxマシンに接続していましたが、そのプロキシを使用して、mitmproxyを使用してトラフィックを監視できました

今、Macでは、組み込みのインターネット共有を使用していて、ポート8080からのもののみをリッスンするmitmproxyを使用したいと考えています。

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

上記は、私が信じて転送する必要のある「共有接続」です。

16
cripto

すべてのWebトラフィック要求が192.168.2.0/24およびインターフェースbridge0

/ 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

クイックヒント

  1. Pf.confの構文エラーをテストします

    pfctl -v -n -f /etc/pf.conf
    
  2. ルールを適用/再読み込み

    pfctl -f /etc/pf.conf
    

これはOS X pfctlの チートシート です。

24
John Siu