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
43
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
25
KLab Expert Camp #6 に参加して
yangniao23
0
120
Featured
See All Featured
Code Review Best Practice
trishagee
64
17k
How to Ace a Technical Interview
jacobian
276
23k
Navigating Team Friction
lara
183
14k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Fireside Chat
paigeccino
34
3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Unsuck your backbone
ammeep
668
57k
A Philosophy of Restraint
colly
203
16k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Site-Speed That Sticks
csswizardry
0
36
Thoughts on Productivity
jonyablonski
67
4.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に対応する ← 通話など ほんとにおわり