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
47
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
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Writing Fast Ruby
sferik
628
61k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
How to Ace a Technical Interview
jacobian
277
23k
GraphQLとの向き合い方2022年版
quramy
48
14k
Fireside Chat
paigeccino
37
3.5k
What's in a price? How to price your products and services
michaelherold
246
12k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Agile that works and the tools we love
rasmusluckow
329
21k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
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に対応する ← 通話など ほんとにおわり