PFとインターネット共有を使用してトラフィックをリダイレクトする


8

ショートバージョン:

OS X Mountain Lion(10.8)でインターネット共有を有効にした場合、すべてのトラフィックをen2ポート80/443から127.0.0.1:8080にリダイレクトするにはどうすればよいですか?

背景:

様々なスマートフォンアプリの通信セキュリティを評価する修士論文を作成しています。新しいMacBook Airをルーターとして使用することにしました。

AirをUSBイーサネットでインターネットに接続し、インターネット共有をWifiにセットアップしました。これは正常に動作します。Wi-Fiを介して他のデバイスをAirに接続し、インターネットにアクセスできます。すごい!

次に、このトラフィックをインターセプトして、オンザフライで変更したいと思います。これを行うにはプロキシが必要だと考えましたが、デバイスで構成を行う必要がない透過的なプロキシが必要です。mitmproxyがまさにこれらの機能を提供していることがわかりました。したがって、127.0.0.1:8080で実行して、トラフィックをインターセプトする準備ができています。

残念ながら、ポート80と443のwifi(en2)から入ってくるトラフィックを127.0.0.1:8080にリダイレクトしようとしてスタックしました。mitmproxy docsはpfctlの設定を提案していますが、機能しません。Appleがインターネット共有用の設定をいくつか提供し、NATを有効にしていることに気づきました。したがって、これらの設定を使用しないと、インターネット共有が機能しなくなります。そして、それらの設定にrdr行を追加しようとしても、効果がありません(/etc/pf.confファイルのいくつかの場所を試しました)。私のトラフィックはmitmproxyをバイパスして、インターネットに転送されます。

回答:


6

答えを見つけました。

com.apple/100.InternetSharing/natpmpインターネット共有に使用されるアンカーの一部としてルールをロードしました。

ファイルmitm.pf.confにはルールが含まれています。

rdr on bridge0 proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr on bridge0 proto tcp from any to any port 443 -> 127.0.0.1 port 8080`

インターネット共有アンカーを使用してロードします。

sudo pfctl -a com.apple/100.InternetSharing/natpmp -f mitm.pf.conf

0

同様の状況で、ファイアウォールを使用して、1つのNICからプロキシにトラフィックをリダイレクトしました。あなたはそのようなものを使うことができます:

$ sudo ipfw add fwd 127.0.0.1,8080 tcp from not me to any 80 in via en1
$ sudo ipfw add fwd 127.0.0.1,8080 tcp from not me to any 443 in via en1

私のためにうまくいったなら。

ファイアウォールを構成するためのGUIとして無料のWaterRoofプログラムを使用することもできます。ipswコマンドには何も追加されず、すべてのオプションに簡単にアクセスできるようになります。

このページは私の設定をセットアップするのに大いに役立ちました:

http://lucumr.pocoo.org/2013/1/6/osx-wifi-proxy/


試してみましたが、どういうわけかうまくいきませんでした。それはインターネット共有を完全に壊しました。また、AppleがOpenBSDのpfを支持してFreeBSDのipfwから遠ざかっているというのも私の理解です。
Christoffer Reijer 2013

この回答は古いMacでのみ機能します。AppleはIPFWを削除しました。
Brady
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.