ネットワーク通信を監視したかったが出来なかった。
前回
参考
- mitmproxyで端末の通信内容を見る - phicdy devlog
- https://cloud.google.com/translate/pricing?hl=ja
- http://phicdy.hatenablog.com/entry/2015/02/27/mitmproxy%25E3%2581%25A7%25E7%25AB%25AF%25E6%259C%25AB%25E3%2581%25AE%25E9%2580%259A%25E4%25BF%25A1%25E5%2586%2585%25E5%25AE%25B9%25E3%2582%2592%25E8%25A6%258B%25E3%2582%258B
インストール
$ pip install mitmproxy Collecting mitmproxy Downloading mitmproxy-2.0.2-py3-none-any.whl (1.4MB) 100% |████████████████████████████████| 1.4MB 235kB/s Collecting blinker<1.5,>=1.4 (from mitmproxy) Using cached blinker-1.4.tar.gz Collecting urwid<1.4,>=1.3.1 (from mitmproxy) Downloading urwid-1.3.1.tar.gz (588kB) 100% |████████████████████████████████| 593kB 492kB/s Collecting certifi>=2015.11.20.1 (from mitmproxy) Downloading certifi-2017.7.27.1-py2.py3-none-any.whl (349kB) 100% |████████████████████████████████| 358kB 671kB/s Collecting watchdog<0.9,>=0.8.3 (from mitmproxy) Downloading watchdog-0.8.3.tar.gz (83kB) 100% |████████████████████████████████| 92kB 1.4MB/s Collecting pyasn1<0.3,>=0.1.9 (from mitmproxy) Downloading pyasn1-0.2.3-py2.py3-none-any.whl (53kB) 100% |████████████████████████████████| 61kB 1.3MB/s Collecting sortedcontainers<1.6,>=1.5.4 (from mitmproxy) Downloading sortedcontainers-1.5.7-py2.py3-none-any.whl Collecting requests<3,>=2.9.1 (from mitmproxy) Downloading requests-2.18.4-py2.py3-none-any.whl (88kB) 100% |████████████████████████████████| 92kB 843kB/s Collecting cryptography<1.9,>=1.3 (from mitmproxy) Downloading cryptography-1.8.2.tar.gz (423kB) 100% |████████████████████████████████| 430kB 637kB/s Collecting jsbeautifier<1.7,>=1.6.3 (from mitmproxy) Downloading jsbeautifier-1.6.14.tar.gz (55kB) 100% |████████████████████████████████| 61kB 1.2MB/s Requirement already satisfied: setuptools!=29.0.0,>=11.3 in /media/mint/85f78c06-a96e-4020-ac36-9419b7e456db/mint/root/tools/pyenv/3.6.1/venv/game/lib/python3.6/site-packages (from mitmproxy) Collecting h2<3,>=2.5.1 (from mitmproxy) Downloading h2-2.6.2-py2.py3-none-any.whl (71kB) 100% |████████████████████████████████| 81kB 1.2MB/s Collecting html2text<=2016.9.19,>=2016.1.8 (from mitmproxy) Downloading html2text-2016.9.19.tar.gz (47kB) 100% |████████████████████████████████| 51kB 1.5MB/s Collecting click<7,>=6.2 (from mitmproxy) Using cached click-6.7-py2.py3-none-any.whl Collecting tornado<4.5,>=4.3 (from mitmproxy) Downloading tornado-4.4.3.tar.gz (463kB) 100% |████████████████████████████████| 471kB 588kB/s Collecting cssutils<1.1,>=1.0.1 (from mitmproxy) Downloading cssutils-1.0.2-py3-none-any.whl (406kB) 100% |████████████████████████████████| 409kB 529kB/s Collecting pyOpenSSL<17.0,>=16.0 (from mitmproxy) Downloading pyOpenSSL-16.2.0-py2.py3-none-any.whl (43kB) 100% |████████████████████████████████| 51kB 1.2MB/s Collecting hyperframe<5,>=4.0.1 (from mitmproxy) Downloading hyperframe-4.0.2-py2.py3-none-any.whl Collecting construct<2.9,>=2.8 (from mitmproxy) Downloading construct-2.8.14.tar.gz (63kB) 100% |████████████████████████████████| 71kB 1.2MB/s Collecting brotlipy<0.7,>=0.5.1 (from mitmproxy) Downloading brotlipy-0.6.0-cp36-cp36m-manylinux1_i686.whl (787kB) 100% |████████████████████████████████| 788kB 355kB/s Collecting pyperclip<1.6,>=1.5.22 (from mitmproxy) Downloading pyperclip-1.5.27.zip Collecting kaitaistruct<0.7,>=0.6 (from mitmproxy) Downloading kaitaistruct-0.6.tar.gz Collecting passlib<1.8,>=1.6.5 (from mitmproxy) Downloading passlib-1.7.1-py2.py3-none-any.whl (498kB) 100% |████████████████████████████████| 501kB 548kB/s Collecting ruamel.yaml<0.14,>=0.13.2 (from mitmproxy) Downloading ruamel.yaml-0.13.14.tar.gz (235kB) 100% |████████████████████████████████| 245kB 837kB/s Requirement already satisfied: pyparsing<2.3,>=2.1.3 in /media/mint/85f78c06-a96e-4020-ac36-9419b7e456db/mint/root/tools/pyenv/3.6.1/venv/game/lib/python3.6/site-packages (from mitmproxy) Collecting PyYAML>=3.10 (from watchdog<0.9,>=0.8.3->mitmproxy) Using cached PyYAML-3.12.tar.gz Collecting argh>=0.24.1 (from watchdog<0.9,>=0.8.3->mitmproxy) Downloading argh-0.26.2-py2.py3-none-any.whl Collecting pathtools>=0.1.1 (from watchdog<0.9,>=0.8.3->mitmproxy) Downloading pathtools-0.1.2.tar.gz Collecting chardet<3.1.0,>=3.0.2 (from requests<3,>=2.9.1->mitmproxy) Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB) 100% |████████████████████████████████| 143kB 907kB/s Collecting idna<2.7,>=2.5 (from requests<3,>=2.9.1->mitmproxy) Downloading idna-2.6-py2.py3-none-any.whl (56kB) 100% |████████████████████████████████| 61kB 927kB/s Collecting urllib3<1.23,>=1.21.1 (from requests<3,>=2.9.1->mitmproxy) Downloading urllib3-1.22-py2.py3-none-any.whl (132kB) 100% |████████████████████████████████| 133kB 953kB/s Collecting asn1crypto>=0.21.0 (from cryptography<1.9,>=1.3->mitmproxy) Downloading asn1crypto-0.22.0-py2.py3-none-any.whl (97kB) 100% |████████████████████████████████| 102kB 954kB/s Collecting packaging (from cryptography<1.9,>=1.3->mitmproxy) Downloading packaging-16.8-py2.py3-none-any.whl Requirement already satisfied: six>=1.4.1 in /media/mint/85f78c06-a96e-4020-ac36-9419b7e456db/mint/root/tools/pyenv/3.6.1/venv/game/lib/python3.6/site-packages (from cryptography<1.9,>=1.3->mitmproxy) Collecting cffi>=1.4.1 (from cryptography<1.9,>=1.3->mitmproxy) Downloading cffi-1.10.0-cp36-cp36m-manylinux1_i686.whl (384kB) 100% |████████████████████████████████| 389kB 638kB/s Collecting editorconfig>=0.12.0 (from jsbeautifier<1.7,>=1.6.3->mitmproxy) Downloading EditorConfig-0.12.1-py3-none-any.whl Collecting hpack<4,>=2.2 (from h2<3,>=2.5.1->mitmproxy) Downloading hpack-3.0.0-py2.py3-none-any.whl Collecting pycparser (from cffi>=1.4.1->cryptography<1.9,>=1.3->mitmproxy) Downloading pycparser-2.18.tar.gz (245kB) 100% |████████████████████████████████| 256kB 840kB/s Installing collected packages: blinker, urwid, certifi, PyYAML, argh, pathtools, watchdog, pyasn1, sortedcontainers, chardet, idna, urllib3, requests, asn1crypto, packaging, pycparser, cffi, cryptography, editorconfig, jsbeautifier, hyperframe, hpack, h2, html2text, click, tornado, cssutils, pyOpenSSL, construct, brotlipy, pyperclip, kaitaistruct, passlib, ruamel.yaml, mitmproxy Running setup.py install for blinker ... done Running setup.py install for urwid ... done Running setup.py install for PyYAML ... done Running setup.py install for pathtools ... done Running setup.py install for watchdog ... done Running setup.py install for pycparser ... done Running setup.py install for cryptography ... done Running setup.py install for jsbeautifier ... done Running setup.py install for html2text ... done Running setup.py install for tornado ... done Running setup.py install for construct ... done Running setup.py install for pyperclip ... done Running setup.py install for kaitaistruct ... done Running setup.py install for ruamel.yaml ... done Successfully installed PyYAML-3.12 argh-0.26.2 asn1crypto-0.22.0 blinker-1.4 brotlipy-0.6.0 certifi-2017.7.27.1 cffi-1.10.0 chardet-3.0.4 click-6.7 construct-2.8.14 cryptography-1.8.2 cssutils-1.0.2 editorconfig-0.12.1 h2-2.6.2 hpack-3.0.0 html2text-2016.9.19 hyperframe-4.0.2 idna-2.6 jsbeautifier-1.6.14 kaitaistruct-0.6 mitmproxy-2.0.2 packaging-16.8 passlib-1.7.1 pathtools-0.1.2 pyOpenSSL-16.2.0 pyasn1-0.2.3 pycparser-2.18 pyperclip-1.5.27 requests-2.18.4 ruamel.yaml-0.13.14 sortedcontainers-1.5.7 tornado-4.4.3 urllib3-1.22 urwid-1.3.1 watchdog-0.8.3
起動
プロキシサーバを起動する。(ポート番号8001。デフォルトは8080)
$ mitmproxy -p 8001
ローカルからみたプロキシサーバはhttp://127.0.0.1:8001
。たぶんこれをブラウザのプロキシサーバとして設定すれば、ブラウザで閲覧したサイトとの通信が見れるはず。
help
hキー押下+Enterでヘルプ表示。
quit
qキー押下+Enterで終了表示。
yキー押下+Enterで終了。
プロキシサーバ設定
- ブラウザ(ここではFirefox)を起動する。
- メニュー→
編集
→設定
詳細
→ネットワーク
→接続設定
手動でプロキシを設定する
を選択するhttp://127.0.0.1
,8001
を入力する
OK
ボタン押下する
証明書の取得
mitmproxy
を起動させたまま、ブラウザでhttp://mitm.it/にアクセスする/home/mint/.mitmproxy/
配下にmitmproxy-ca-cert.cer
ファイルができる(証明書)
インストール
OS?
これがよくわからなかった。Firefoxで使うためにはどうすればいいのか。
とりあえずOS(LinuxMint17.3)で該当ファイルを開くとダイアログが表示され、「インポート」することはできた。
パスワードは適当にシステムのを入れた。
Firefoxでインポートできなかった
その後、Firefoxでサイト閲覧しても、mitmproxyを起動したターミナルに変化なし。
所感
他のサイトではPCをmitmproxyサーバにし、スマホなどの別端末からアクセスする例だったのも気になる。mitmproxyサーバ自身では使えないのか?
ネットワークの基礎知識が必要そう。一旦諦める。