2014年11月11日 星期二

在 CentOS 下安裝 mitmproxy...

「Charles Proxy」是一套很好用的 MITM 工具,但它是收費的。雖然是很值得,但總想試試其他免費的方案。「mitmproxy」就是其中一個。

試過幾次失敗後,最終都能成功安裝在 CentOS 6。問題是出在 Python 2.6 及 Python 3.4。原來「mitmproxy」在 Python 2.7 才能順利安裝。要是使用 CentOS 7 的話,隨機附送的就是 Python 2.7。安裝「mitmproxy」的步驟如下:

1. 下載 Python 的 PIP 工具
    wget https://bootstrap.pypa.io/get-pip.py

2. 安裝 Python 2.7 的 PIP
    python get-pip.py

3. 下載 Python 的 EZ Setup
    wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

4. 安裝 Python 2.7 的 EZ Setup
    python ez_setup.py

5. 安裝需要的封包
    yum -y install python-pyasn1 python-flask python-urwid readline-devel gdbm-devel bzip2-devel ncurses-devel sqlite-devel tk-devel gcc python-setuptools python-pip python27-pip newt-python python-devel python27-devel python-pyasn1 pyOpenSSL gcc libxml2-devel libxslt-devel libffi-devel openssl-devel

6. 安裝 pyOpenSSL 0.14
    easy_install http://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.12.tar.gz

7. 啟動 IP 地址及接口轉發
    sysctl -w net.ipv4.ip_forward=1
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080

8. 生成自簽的 CA 證書給 SSL 監聽之用
    openssl genrsa -out ca.key 2048
    openssl req -new -x509 -key ca.key -out ca.crt

    ... No need to fill out optional fields ...
    Common Name (eg, YOUR name) []:*.google.com (domain you want to MITM here)
    ...

    cat ca.key ca.crt < ca.pem

9. 執行 mitmproxy
    mitmproxy --cert=ca.pem -T --host

沒有留言: