Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
How to make the Groovebox
asonas
2
1.8k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
38
Mobile First: as difficult as doing things right
swwweet
225
10k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
2
2.8k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
90
The Limits of Empathy - UXLibs8
cassininazir
1
190
Ethics towards AI in product and experience design
skipperchong
1
140
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に対応する ← 通話など ほんとにおわり