RaspberryPiで、旧ブラウザ用プロキシを作る
古いデバイスでTLS3.0とかに対応させたい
自宅にある旧環境、例えばMacOS10.6.8だとか、iOS5で止まっているiPadだとかは、最近のWEBサイトにアクセスすることができない。
これは、近年のページは、ブラウザに対してTLS2.0ないし、3.0に対応することを求めているからである。例えば、初代iPadでヤフオクはできなくなっている。
しかし、squidをSSLに対応するようビルドし、プロキシしてやれば、これらを回避することが可能になる。ただし、やり方は中間者攻撃そのものであるから、十分注意が必要である。自身が管理するネットワーク上で行わなければいけない。
参考
squidのビルド方法に関しては、
https://webnetforce.net/squid-ssl-bump/を参照した。
証明書の作成方法に関しては
http://kikumoto.hatenablog.com/entry/2016/06/04/124922を参考にした。
※というより、ほぼパクリ。
ビルド
依存関係
まず、aptよりソースをダウンロードできるように設定する。
sudo nano /etc/apt/sources.list
で、ソースリストを開き、
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
の行をコメントアウトする。保存して、sudo apt update
依存関係を入れていく。
sudo apt install devscripts build-essential fakeroot libssl-dev libldap2-dev libpam0g-dev libdb-dev cdbs libsasl2-dev debhelper libcppunit-dev libkrb5-dev comerr-dev libcap2-dev libecap3-dev
これだけだとまだ足りないらしいので
sudo apt install libexpat1-dev libxml2-dev libnetfilter-conntrack-dev nettle-dev libgnutls28-dev
まだ足りないらしいので
apt install libssl1.0-dev
※これはビルドしないとわからなかった
http://thr3a.hatenablog.com/entry/20180722/1532225975
make
sudo debuild -us -uc -b -j8
※-j8がないととても遅い。入れても遅い。-j4くらいでもいいかも?
インストール
一つ上の階層に.debファイルができていると思うので
sudo dpkg -i squid※.deb
何やら依存関係で言ってくる場合は
sudo dpkg -i –force-depends squid※armhf.deb
※はアスタリスクに置き換えて実行
squid設定
cd /etc/squid
sudo mkdir ssl_cert
sudo chown proxy:proxy ssl_cert
sudo chmod 700 ssl_cert
sudo su
cd ssl_cert
openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 -keyout myCA.pem -out myCA.pem
sudo nano /etc/squid/squid.conf
http://kikumoto.hatenablog.com/entry/2016/06/04/124922を丸写しで、squid.confを作成する。
sudo /usr/lib/squid/ssl_crtd -c -s /var/lib/ssl_db
※lib64は、raspbianにはない
sudo chown proxy:proxy -R /var/lib/ssl_db
※debianではproxyユーザー
sudo systemctl start squid
クライアントの設定
MacOS 10.6.8のSafariを例にとる。まず、オレオレ証明書をインストールする。
キーチェーンアクセスを開いて、横のペインから証明書をクリック。オレオレ証明書をドラッグ&ドロップする。