MacでWifi共有で透過的にmitmproxy
mitmproxyをWifi共有を使って透過的proxyとして使うための手順メモです。 実施環境は下記の通り。
手順
1.mitmproxyのインストール
$ pip install mitmproxy
2.証明書を端末(iPhone/Android)にインストール
下記に配置されているのでメールなどを使って端末に送る。 添付ファイルをタップすれば自動的にインストールのためのアプリ選択画面が表示される。
$ ~/.mitmproxy/mitmproxy-ca-cert.pem
3.Wifi共有の設定
OS X側で、システム環境設定 -> 共有 -> インターネット共有からWifi共有の設定をする。 端末側はここで設定したWifiポイントにつなぐようにする。
4.Packet forwardingの設定
最後にport80/443に流れてくるパケットをmitmproxyにリダイレクトするようにする。 まずは、Wifi共有に使われているインターフェース名を調べる。
$ ifconfig
(たいてい、bridge0というような名前)
Packet forwardingを有効にする
$ sudo sysctl -w net.inet.ip.forwarding=1
Packet forwardingの設定を下記のような感じにする。
$ sudo vi /private/etc/pf.conf
scrub-anchor "com.apple/*" nat-anchor "com.apple/*" rdr-anchor "com.apple/*" 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 dummynet-anchor "com.apple/*" anchor "com.apple/*" load anchor "com.apple" from "/etc/pf.anchors/com.apple"
pfを有効にする。
$ sudo pfctl -f /private/etc/pf.conf
$ sudo pfctl -e
mitmproxyを透過的プロキシモードで起動する。
$ mitmproxy -T --host
おしまい。