LoginSignup
2
2

More than 5 years have passed since last update.

【mitmproxy構築】CentOS7+L2TP/IPSec+unbound+mitmproxyでiphoneのギガ不足を解消する

Last updated at Posted at 2019-02-26

<<unbound構築 | 目次>>

mitmproxy

mitmproxy構築

mitmproxyでhttps対応Data Compression Proxyを作るを参考に構築

構築履歴

Python3.6インストール

yum install -y https://centos7.iuscommunity.org/ius-release.rpm
yum install git vim gcc libxml2-devel libxslt-devel zlib-devel libjpeg-turbo-devel openssl openssl-devel python-devel \
               python36u python36u-libs python36u-devel python36u-pip

mitmproxyインストール

pip3.6 install mitmproxy pillow-simd brotli

mitmproxy ユーザー作成

useradd -s /sbin/nologin -m -d /etc/mitmproxy mitmproxy
touch /etc/mitmproxy/mitmdump_daemon.sh
chmod 700 /etc/mitmproxy/mitmdump_daemon.sh
touch /etc/mitmproxy/flows.py
chmod 700 /etc/mitmproxy/flows.py
touch /etc/mitmproxy/mitmproxy-iptables-start.sh
chmod 700 /etc/mitmproxy/mitmproxy-iptables-start.sh
chown -R mitmproxy:mitmproxy /etc/mitmproxy

flows.py

/etc/mitmproxy/flows.py
vi /etc/mitmproxy/flows.py

mitmproxy起動スクリプトの作成

/etc/mitmproxy/mitmdump_daemon.sh
#!/bin/bash
/bin/mitmdump \
    --mode transparent \
    --listen-port 3126 \
    --ssl-insecure \
    -s /etc/mitmproxy/flows.py \
    --set stream_large_bodies=10m \
    --ignore-hosts '(mzstatic.com|apple.com|icloud.com|mobilesuica.com|crashlytics.com|google-analytics.com|.*\.line-scdn.net|.*\.line.naver.jp|.*\.twitter.com)' \
    --anticomp \
    --set block_global=false \
    --set flow_detail=2

mitmproxy Systemd Unit ファイルの作成

/usr/lib/systemd/system/mitmdump.service
Description=mitmdump service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/etc/mitmproxy/mitmdump_daemon.sh
Restart=always
RestartSec=1
User=mitmproxy
Group=mitmproxy
[Install]
WantedBy=multi-user.target

mitmproxy Firewall設定

firewall-cmd --permanent --new-zone=mitmproxy
firewall-cmd --permanent --zone=mitmproxy --add-port=3126/tcp
firewall-cmd --permanent --zone=mitmproxy --add-source=192.168.0.0/24
firewall-cmd --reload
firewall-cmd --list-all --zone=mitmproxy

VPN経由の80/443宛ての接続をmitmproxyに向ける

firewall-cmdでのコマンド投入方法がわからないのでiptablesで登録する

/etc/mitmproxy/mitmproxy-iptables-start.sh
#!/bin/bash

firewall-cmd --reload
sleep 3
iptables  -t nat -A PREROUTING -i ppp+ -p tcp --dport  80 -j REDIRECT --to-port 3126
iptables  -t nat -A PREROUTING -i ppp+ -p tcp --dport 443 -j REDIRECT --to-port 3126
ip6tables -t nat -A PREROUTING -i ppp+ -p tcp --dport  80 -j REDIRECT --to-port 3126
ip6tables -t nat -A PREROUTING -i ppp+ -p tcp --dport 443 -j REDIRECT --to-port 3126

OS起動時に実行されるようにする

cp -av /etc/rc.d/rc.local /root/rc.local.backup
echo '/etc/mitmproxy/mitmproxy-iptables-start.sh' >> /etc/rc.d/rc.local
/etc/mitmproxy/mitmproxy-iptables-start.sh

mitmproxyの起動

systemctl daemon-reload
systemctl start mitmdump.service
systemctl enable mitmdump.service

iphone設定(危険なので自己責任で)

https://docs.mitmproxy.org/stable/concepts-certificates/
1. /etc/mitmproxy/.mitmproxy/mitmproxy-ca-cert.pemをiphoneにインストール
2. 設定 -> 一般 -> 情報 -> 証明書信頼設定 -> mitmproxy をONにして証明書を有効にする

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2