Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Proxyと仲良くなろう.pdf
Search
yangniao23
January 27, 2021
0
49
Proxyと仲良くなろう.pdf
1. 多段ProxyでProxy認証をバイパスする
2. SSH ポートフォワーディングで外部のProxyを使う
3. 透過Proxyで幸せになる
yangniao23
January 27, 2021
Tweet
Share
More Decks by yangniao23
See All by yangniao23
KLab
yangniao23
0
28
KLab Expert Camp #6 に参加して
yangniao23
0
140
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
100
Ethics towards AI in product and experience design
skipperchong
2
200
Code Reviewing Like a Champion
maltzj
527
40k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
150
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Designing Experiences People Love
moore
144
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
Transcript
Proxyと仲良くなろう Ec1 ヤン
おしながき 1. 自己紹介 2. 寮のネット環境 3. ローカル環境に自前Proxyサーバを建てる 4. Proxy非対応アプリでProxyを使う 5.
自由に通信したい!! 6. まとめ
1. 自己紹介 Name : ヤン Grade : Electronic Control 1st
Recent News : 入寮した Twitter/GitHub: @yangniao23
2. 寮のネット環境 - 100Mbpsの有線LAN - 認証付きのHTTP Proxyが必須 - 時間帯によってアクセスできるサイトに差があり -
開放済みのポートはTCP22(SSH), UDP53(DNS) - ⇧想定よりもいい状況 - 無線LANが使いたい場合は各自で用意する
~話は変わりますが~ Proxyサーバ必須の環境ってつらいですよね? しかも認証付きなんて嫌ですよね?
3. ローカル環境に自前Proxyサーバを建てる 今回はフリーのHTTP Proxyサーバソフト Squid(スクウィッド)を使用し た。 自前のProxyサーバで親Proxyへの接続を代理し,認証をバイバスす る ローカル環境にあるので簡単に設定ができる
もう少し具体的な話をしようや Squidのcache_peer機能を使って多段プロキシを実現している # 設定例 /etc/squid/squid.conf cache_peer [親ProxyのIP] [ポート] [オプション・・・] login=ユーザ名:パスワード
ここで認証付きProxyへの接続を代理で行えるよう設定をしている
5. 自由に通信したい!! - 外部に適当なサーバーを借りてSquidをインストールする - SSH ポートフォワーディングで0.0.0.0へ持ってくる - 端末からポートフォワーディングしてきたマシンにアクセスすると外部のProxy経由 で通信ができる
外部サーバ SSH ローカルサーバ 端末
まとめると ローカルにSquidを使ってProxyを構築し,時間帯・アクセス先のサイトに応じて代理接 続するProxyサーバ先を選択できる 詳細な設定はQiitaの記事を読んでください My Qiita
おしまい ?
透過Proxy Proxyサーバ側でHTTP(S) リクエストヘッダを書き換えることで,端末側に特別な設定 なしにProxyを適用できるもの。 ⇨HTTPSの通信を一旦復号化する必要があるので,オレオレ証明書を端末にインストー ルしなければならない オレオレ証明書をインストール⇒端末のRootが必要 なので避けてきた
盗聴しない透過Proxy Squid3.5より追加されたSslPeekAndSpliceを使う TCP three-way handshake及びTLS handshakeの 情報を利用してCONNECTメソッドを作成する Proxyサーバには名前解決されたホスト名が送信され る(google.com ではなく,172.217.175.14のような形)
透過Proxyの利点 LINE, Discord, Instagramといった通常のProxyに対応していないスマホアプリを動作さ せることに成功 Proxyがあることを意識させずに動かせる
透過Proxyの欠点 - 名前解決された状態でProxyサーバに渡るため,ドメイン単位のルールが設定不 可 ⇒ 内容を盗聴すると証明書エラーが発生する - 環境構築が手間 ⇒ 簡易なスクリプトを作成する ドメイン単位のルールを適応させるため,明示的にProxyの設定も同時に行い,Proxyに 対応しているアプリは直接Proxy経由で通信させる
今後の展望 - 上位ProxyにHTTP Proxy/Socks Proxy両対応の透過Proxyソフトを開発する - 名前解決されたIPを逆引きしてドメイン形式のCONNECTメソッドを叩けるようにす る - HTTP(S)通信以外も流せるようにする
主にTCP通信全般 - WebRTCに対応する ← 通話など ほんとにおわり