Mac OSXでのpfctlポート転送?


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

上記のコードは、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

上記は、転送する必要がある「共有接続」であると考えています。

回答:


23

すべてのあなたの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のチートシートです。


3
pfデフォルトでは有効になっていないようですので、次の-eフラグを追加する必要がありますpfctl -ef /etc/pf.conf
Webthusiast 14

4
構文エラー
Hitesh Joshi

@HiteshJoshi:同じ問題がありました。私にとっては、「rdr-anchor」と「dummynet-anchor」を使用して行間で行を移動すると修正されました。
アルビン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.