みなさんこんにちは。私は次男です。 トンネルは中国語に翻訳されています。日々の開発の中で、私たちは多かれ少なかれこの言葉に遭遇するでしょう。 まず、実際の例を参考にしてトンネルの役割を見てみましょう。 西安・成都高速鉄道は北は西安から始まり、南は成都で終わります。路線の全長は643キロメートルで、設計速度は時速250キロメートルです。古代から、豊穣の地に入ることは極めて困難な仕事でした。四川省は山々に囲まれており、どの方向からも入るのが困難です。西安と成都の間には秦嶺山脈という自然の障壁があることは知られています。高速鉄道は飛行機のようにその上を飛ぶことはできません。速度と対気速度の両方を達成する唯一の方法は、秦嶺山脈の間にトンネルを掘り、そのトンネルを通じて高速鉄道を秦嶺山脈を通過させることです。 私たちのオンラインの世界に来てください。リモート サーバーにアクセスしたいのですが、残念ながら、リモート サーバーとの間にファイアウォールが存在します。このファイアウォールは、国中に広がる秦嶺山脈のようなものです。それを避ける方法はありません。それで、私たちに何ができるでしょうか? このとき、トンネルを使用する必要があります。トンネルの概念を理解するのは難しくありません。注目すべき 2 つの特徴があります。
これまで頻繁に使用してきたトンネルを見てみましょう。
一つずつ見ていきましょう。 HTTPS プロキシ トンネルHTTPS プロキシについて話すときは、まず HTTP プロキシについて言及する必要があります。図 1 に示すように、HTTP プロキシは仲介者のようなものです。
上記のプロセスでは、HTTP プロキシは 2 つの TCP 接続を同時に維持します。クライアントとサーバー間の会話の内容を非常に明確に把握しているため、セキュリティ上のリスクが生じます。さらに、悪質なプロキシの中には、サーバーから返される HTML ページに迷惑な広告を追加するものもあります。 図1: HTTPプロキシ 時代は変わり、技術は変わり、そして需要も変わります。現在、ほとんどのウェブサイトは HTTPS を使用しています。この時点で HTTP プロキシを使用すると、プロキシのみが Web サービス証明書を表示でき、クライアントはプロキシ証明書しか受信できないという問題が発生します。明らかに、プロキシ証明書内の名前は、クライアントがアクセスしようとするアドレスとはまったく異なります。このとき、ブラウザは容赦なく警告を発し、TLS ハンドシェイクは成功しません。 この問題を解決するために、HTTPS プロキシが誕生しました。図 2 にそのワークフローを示します。 ① クライアントブラウザは最初にHTTPSプロキシへのTCP接続を開始しますが、HTTPリクエストではCONNECTメソッドが使用されます。 ② この接続を受信すると、HTTPS プロキシは CONNECT リクエストのデータを使用して google.com への TCP 接続を開始します。 ③ 今後、HTTPS プロキシはクライアントと google.com 間のデータの中継のみを担当します。 TLS ハンドシェイク プロセスにまったく参加しないため、解析は行われず、解析する方法もありません。中継されるデータには、TLS ハンドシェイク データ パケット (証明書、暗号化アルゴリズム、暗号化キーなど) と暗号化された HTTP ペイロードが含まれます。 ステップ ③ では、HTTPS プロキシはクライアントとサーバーのセッション データを透過的に転送することでトンネル効果を実現します。 上記のプロセスでは、ブラウザが最初から最後まで google.com と直接 TCP 接続を開始することはなく、通信する 2 つの当事者間のすべてのデータは HTTPS プロキシを介して転送されたことを強調しておく必要があります。 図2: HTTPSプロキシを介してクライアントとサーバーが直接トンネルを作成する 図 3 と 4 は、クライアントと HTTPS プロキシが CONNECT メソッドを通じて TLS トンネルを作成するプロセスを明確に示しています。 図3: CONNECTメソッドによるTLSトンネルの作成 図4: CONNECTメソッドを使用してTLSトンネルを作成するパケットキャプチャ SSHトンネル調査の結果、ファイアウォールのせいでクライアントとサーバーは直接通信できないものの、ファイアウォールはポート 22 に対して開いているという朗報があることがわかりました。 ポート 22 にアクセスするネットワーク パケットにペイロードとしてリクエストを配置すると、このファイアウォールを通過できなくなりますか? 図 5 に示すように、これはファイアウォールからトンネルを掘るようなものです。写真の中に、SSH トンネルを通過している長い赤い帯が見えますか?秦嶺トンネルを通過する高速列車のように見えますか? もちろん、このネットワーク パケットの受信側は、ポート 22 でリッスンしている SSH サーバーです。ネットワーク パケットを受信した後に何を実行するかは問題ではありません。重要なのは、リクエストがファイアウォールを正常に通過し、配信されたことです。それだけでなく、SSH に組み込まれたセキュア サポートのおかげで、データは暗号化された形式で配信されます。 1つ買うと1つ無料という感じでしょうか? 図5: SSHトンネルを使用してファイアウォールを介してデータを渡す図 さて、SSH サーバーがデータを受信した後に何を行うかを知ることも重要です。図5は単なる概略図である。私はいつもその背景にある詳細を皆さんに説明したいと思っています。この例では、ローカル クライアントは実際にサービス 192.168.4.23:32020 にアクセスしようとしています。もちろん直接アクセスすることはできません。
図6: SSHトンネル経由でファイアウォールを通過するリクエストの詳細 私の2番目の兄は、「Podコンテナをリモートデバッグする方法」という記事で、SSHトンネルの使用シナリオを詳しく説明しました。 仮想プライベートネットワーク「TUN デバイスの魔法のような使用 - VPN」および「TUN デバイスの魔法のような使用 - OpenVPN の完全なプロセス補足」という記事で、私の次男は、VPN の動作原理と、クライアントが VPN を介して企業の内部サービスに要求を開始するときに必要な特定のプロセスを詳しく説明しました。添付写真は以下の通りです、詳細は省略します。 図7: ブラウザがVPN経由で社内の企業サービスにアクセスする フランネルVXLAN私は冷酷な人間なので多くは語りませんが、「tun デバイスの素晴らしい使用法 - Flannel UDP モード」という記事を添付します。 比較の概要HTTPS プロキシ トンネルと SSH トンネルは、比較的制限された方法でクライアントとサーバー間の方向性のあるトンネルのみを確立しますが、VPN トンネルは企業内のドアを直接開きます。理論上は、クライアント側で VPN が DNS キャッシュへのアクセスとアプリケーションのルーティングを許可するように構成されている限り、クライアントは社内にいる場合と同じように自由に企業の内部サービスにアクセスできます。 図8: VPNトンネルと他の2つのトンネルでアクセス可能なサービスの粒度の比較 使いやすさの観点から言えば、もちろん VPN が最適です。 VPN 認証に合格すれば、クライアントから社内ネットワークへの扉を完全に開くことに相当します。企業のセキュリティの観点から見ると、VPN は最も粒度が粗く、安全性の低い方法です。 |
<<: リサーチ・インスティテュート:クラウド市場の価値は2028年に8,520億ドルに達する
>>: エッジコンピューティングシステムの論理アーキテクチャの詳細説明:クラウド、エッジ、エンドコラボレーション
[[380736]]この記事はWeChatの公開アカウント「Full-Stack Coder Por...
まず、ユーザーの検索直帰率を知る必要があります。これは、検索エンジンを通じてウェブサイトの特定のペー...
先週、Cloud Native Computing Foundation(CNCF)は、Cilium...
ちょうど今、アリババが2018年度第2四半期の財務報告書を発表し、国中が歓喜しました。ヨーロッパとア...
北京時間1月24日、外国メディアの報道によると、米国のフラッシュセールサイトGilt Groupeの...
検索エンジン最適化は、ウェブマスターにとって常に永遠のテーマです。多くのウェブマスターは、検索エンジ...
iniz はバレンタインデー前に VPS プロモーションを開始しました。iniz はまだ新製品を発表...
遠い場所を選んだからには、風雨に耐えなければならない。これは私がこの業界に入ったばかりの頃に聞いた最...
以下は、いくつかの海外 SEO フォーラムで多くのクリックと返信があった小さな質問です。参考までにご...
「あなたの言ったことは、すべて(空虚な)原理だと私はまだ感じています、ハハ!まったく実用的な応用があ...
みなさんこんにちは。私は徐子宇です。誰もが良い映画が好きで、Youku、Tudou、iQiyiなどの...
成功しているビジネスには必ず類似点があり、成功していないビジネスには必ず同じ失敗がある、という格言が...
異なるシナリオで必要なフロー制御アルゴリズムは同じではありません。では、適切なフロー制御ソリューショ...
Baidu Leeは、外部リンク判定の議論の中で、「フォーラム内の個人署名にハイパーリンクを追加し、...
1. 概要 Prometheus 監視アラート ルールを作成することで、特定の Prometheus...