Web開発チーム用にVPNを設定する方法

公開: 2021-10-11

現代のインターネットの主な特徴は、その一定の可用性です。 データをローカルに保存する必要はなく、ネットワーク経由ですばやくアクセスできます。 このデータが予測できない瞬間に突然利用できなくなった場合、さらに問題が発生します。 ほとんどの開発者はリモートで作業し、特定の部分から来た場合はリソースが不足する可能性があります。 この記事では、Web開発チーム用にVPNを設定する方法について説明します。

一般的なインターネットの問題

インターネットリソースにアクセスできないとは、実際にはどういう意味ですか?

-一部のライブラリはダウンロードされません-プロジェクトの開発環境は発生しません。 これが主な最大の問題です!

-ズーム、スラック、またはテレグラムが機能しません-同僚に連絡することはできません。

-GitHubなど、一部のサイトは利用できません-作品を公開することはできません。

これらはすべて可能な例ではありませんが、それでもチームの生産性を大幅に低下させる可能性があります。

有罪は誰ですか?

実際には、上記の制限は通常、インターネットプロバイダーによって実装されます。 そして、制限が州の行政行為によって導入されたので、彼らのためにプロバイダーを非難することは意味がありません。 プロバイダーは、政治的闘争ではなく、ビジネスに従事する必要があります。

しかし、時には、プロバイダーが悪役であることが判明します。 たとえば、なんらかの理由で、特定のTCPポートのトラフィックをブロックしたり、暗号化されていないhttpトラフィックを変更したり、ページのhtmlコードを変更したり、広告を追加したりできます。 これは一部の詐欺師に期待することですが、確かに大企業からではないため、二重に不快です(興味がある場合は、「他の人のサイトを宣伝する」グーグル)。

何をすべきか?

問題の規模から、問題を会社レベルで解決する必要があり、チームメンバーに任せてはならないことが明らかになった場合は、VPNテクノロジを使用できます。

VPNは仮想プライベートネットワークです。 これは、既存の物理コンピューターネットワークに基づいて、仮想の存在しない物理(オーバーレイ)コンピューターネットワークを作成できるようにするテクノロジのグループの名前です。

これにより、プライバシーを強化するための追加の機会が提供されます。 物理ネットワークでは、最初の概算として、トラフィックはネットワーク交換のすべての参加者、すべてのルーターなどで利用できます。仮想ネットワークには追加の参加者はなく、あなたとあなたが接続するポイントだけが利用できます。 Web開発チーム用にセットアップする場合、これはVPNサーバーです。 暗号化されたトンネルが2人の間に敷設されています。

TUN仮想ネットワークインターフェイスは、クライアントマシンとサーバー上に作成されます。 暗号化されたデータ交換は、それらの間で直接行われます。 データは中間者(MITM)攻撃から効果的に保護されます。 あなたのトラフィックが通過する機器に物理的にアクセスできる人は誰もあなたの情報を傍受したり置き換えたりすることはできません。

また、ホームネットワークでは利用できないが、VPNサーバーからは利用できるリソースにアクセスすることもできます。

VPNテクノロジーを使用すると、クライアントはサーバーが含まれるサブネットの一部になります。 そして、このサブネットのリソースにアクセスできます。 これを使用して、制限を回避し、サブネットへのリモートで安全な接続を必要とするその他の問題を解決できます。

VPN実装の選択

決めることはしないことです。 いくつかの一般的な無料のVPNテクノロジーの実装があります。 このSurfsharkVPNの無料トライアルを試して、何が得られるかを体験してください。

適切なVPNを取得した後、他に何を選択できますか

IPsecは、安全なデータ送信のための一連のプロトコルです。 90年代半ばに登場しました。 大きくて柔軟性がありますが、構成が難しく、低レベルです。 目的によっては複雑すぎます。

WireGuardは、作業の迅速な準備を目的とした若いプロジェクト(2015)です。 さまざまなVPNよりもデータ転送が高速である可能性があり、すべての主要システムで利用可能なクロスプラットフォームの最新の暗号化プロトコルを使用します。 短所は長所と同じです。 迅速で簡単なインストールを確実にするために、プログラムのコアで多くの低レベルの決定が行われます。 たとえば、UDPプロトコルの使用。これはすべての人に効果があるとは限りません。

開始および使用方法の選択

手動で

最も明白な方法は、VPSをレンタルし、SSH経由で接続し、ガイドに従ってサーバーを作成することです。 多くのコマンドとファイルを手動で移動する必要があるため、これはかなり長いプロセスです。

この方法では、新しいサーバーを作成するたびに、再度作成する必要があります。 時間を節約するために、構成管理システムまたはコンテナ化システムを使用できます。

構成管理システムは、リモートサーバー(puppet、ansibleなど)の構成を自動化できるソフトウェアです。 このアプローチの利点は、いくつかのコマンドでリモートVPNサーバーを構成できることです。 また、すべての構成、構成テンプレートは、制御マシンにテキスト形式で明示的に配置されます。 デプロイスクリプトは自分で作成することも、GitHubなどで既製のスクリプトを作成することもできます。

コンテナ化システムでは、わずかに異なるアプローチが採用されています。 最も一般的なそのような仮想コンテナ化システムはdockerです。 VPNを使用してDockerコンテナーをリモートサーバーにインストールする方が、ansibleを介してサーバーをインストールするよりもさらに高速になる可能性があります。これはプラスです。 ただし、使用可能な構成のリストは、イメージ開発者によって制限される場合があります。 画像はバイナリファイルであるため、エキゾチックな設定を修正する必要がある場合は機能しない可能性があります。

サーバーアーキテクチャ

まず、すでに述べたように、VPNテクノロジーを使用して、たとえば、このサブネットの一部であるコンピューターとVPNサーバーを介して閉じたサブネットに接続できます。 サブネット上に貴重なリソースがある場合は、VPNサーバーに誰も接続しないようにします。 これを行うために、ほとんどのVPNは通常、それを別のマシンにし、ネットワークにまったくリンクせず、おそらく安全な場所に置きます(冗談ではありません)。 また、署名および署名された証明書の要求は、リムーバブルメディアに転送されます。

サーバースタート

ansibleスクリプトを実行するには、コンピューターにansibleをインストールし、Debian / Ubuntuで仮想サーバーをレンタルし、SSH経由でサーバーへのアクセスを構成する必要があります。 サーバーをレンタルする場合、一部のサービスではtunインターフェイスの作成やパケット転送の実行が許可されていないことに注意してください。 ご購入前にご確認ください。

サーバーとのすべての対話は、次の3つのコマンドによって実行されます。

1.サーバーと認証局を作成するためのスクリプトを実行します。

2.新規ユーザーの登録。

3.クライアント名で証明書を取り消します。

閉塞を回避する方法の開発は、多くの点で、自然界の捕食者と被食者の関係に似ています。 新しい動きごとに、反対の動きがあります。 VPN接続も例外ではありません。

VPNを使用する場合、さまざまなネットワークリソースを使用できます。 ただし、すべてのデータはVPNサーバーからトンネルを介して送信されるため、プロバイダーにとっては、1つのIPアドレスのみでデータを交換しているように見えます。