文章目錄
安裝 Mitmproxy
之前筆記 安裝 Squid Proxy 提到為了加強與 Partner 間資料介接交換時的安全性,所以在 server 間會需要互相 trust ip,但這麼一來在業務增長時就會失去彈性,所以打算透過加入 proxy server 來進行 trust,讓後續可能新加入的 server 只要透過該 proxy server 就可以正常運作
嘗試過 Squid
,設定方式可以參考 安裝 Squid Proxy 與 Squid Proxy Https 設定,但因為 Squid
不支援 https 轉發 http,在使用上有限制,所以今天就來試試 Mitmproxy
說到 Mitmproxy
,其實也不算陌生,之前在 讓iOS 裝置可以存取自訂domain - Yowko’s Notes 就是透過這套工具來達成目的,而這次情境比較正式,改用安裝實體服務方式來紀錄
基本環境說明
- Azure VM 標準 B2s (2 vcpu,4 GiB 記憶體)
- CentOS 7.7
- python 3.6.8
- pipx 0.15.4.0
- Mitmproxy v5.1.1
基本安裝
官方建議使用 binary 來安裝,但我到 download 頁面 提到可以用
brew
,pip
,WSL
, orDocker
安裝 python3
python 3.6 以上版本
yum install -y python3
安裝 pipx
python3 -m pip install --user pipx python3 -m pipx ensurepath
個人有重新登入套用新的環境變數
pipx completions
使用 pipx 安裝
pipx install mitmproxy
使用方式
啟動 mitmproxy
預設為
8080
mitmproxy
--listen-port
: 指定 proxy port 為9000
mitmproxy --listen-port 9000
藉由 mitmproxy 存取 web page
curl -x localhost:9000 -k -L
測試結果
心得
Mitmproxy 在設定上比起 Squid 顯得更單純,不過這也不一定是好事,像是
- 預設的 port、mode 都需要查文件才知道,沒辦法從 config file 中看出來
- log 部份雖然比起 Squid 有更好的互動性跟更多資訊,但預設在 console 輸出對於正式服務還是沒那麼方便
- https 驗證上會比嚴格, curl 使用時都需要加上
insecure
log 處理方式請參考 將 Mitmproxy log 存至檔案
https 請參考 Mitmproxy 啟用 Https
參考資訊
文章作者 Yowko Tsai
上次更新 2020-12-11
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。