Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> LinuxシステムFAQ >> LinuxでピアツーピアVPN

LinuxでピアツーピアVPN

  
を設定する方法従来のVPN(OpenVPN、PPTPなど)は、VPNサーバーとこのサーバーに接続された1つ以上のクライアントで構成されています。任意の2つのVPNクライアントが互いに通信するとき、VPNサーバーはそれらの間でVPNデータトラフィックを中継する必要があります。このようなハブアンドスポークVPNトポロジの問題は、接続されているクライアントの数が増えると、VPNサーバーがパフォーマンスのボトルネックになりやすいことです。ある意味では、集中型VPNサーバーは単一障害点の原因でもあります。つまり、VPNサーバーに障害が発生した場合、VPN全体にはどのVPNクライアントからもアクセスできなくなります。ポイントツーポイントVPN(P2P VPNとも呼ばれます)は、従来のサーバークライアントモデルベースのVPNでこれらの問題に対処するもう1つのVPNモデルです。 P2P VPNにはもう中央のVPNサーバーはなく、パブリックIPアドレスを持つノードは他のノードをVPNに向けることができます。 VPNに接続すると、各ノードは中間サーバーノードを経由せずに、VPN内の他のノードと直接通信できます。もちろん、いずれかのノードに障害が発生しても、VPN内の残りのノードは影響を受けません。ノードの遅延、帯域幅、およびVPNスケーラビリティは、そのような設定で自然に向上します。これは、マルチプレイヤーゲームにVPNを使用したり、多くの友達とファイルを共有したりする場合に理想的です。 Tinc、peerVPN、およびn2nなど、いくつかのオープンソースP2P VPN実装があります。このチュートリアルでは、Linux上でn2nを使ってピアツーピアVPNを構成する方法を紹介します。 N2nは、ユーザー間で暗号化された2/3層のピアツーピアVPNを構築できるようにするオープンソース(GPLv3)ソフトウェアです。 n2nによって構築されたVPNは、「NATに優しいNA」、つまり、異なるNATルーターの背後にいる2人のユーザーがVPNを介して互いに直接通信できるということです。 N2nは対称NATタイプをサポートします。これはNATで最も制限的なタイプです。したがって、n2nのVPNデータトラフィックはUDPにカプセル化されています。 n2n VPNは、エッジノードとスーパーノードの2種類のノードで構成されています。エッジノードは、NATルーターの背後にある可能性があるVPNに接続されたコンピューターです。スーパーノードは、NATの背後にあるエッジノードが最初に通信するのに役立つ、公的にアクセス可能なIPアドレスを持つコンピュータです。ユーザー間でP2P VPNを作成するには、少なくとも1つのスーパーノードが必要です。準備このチュートリアルでは、1つのスーパーノードと2つのエッジノードの3つのノードを持つP2P VPNを作成します。唯一の要件は、エッジノードがスーパーノードのIPアドレスをpingできる必要があることです。そして、それらがNATルーターの背後にあるかどうかは関係ありません。 Linuxにn2nをインストールする
n2nを使ってP2P VPNを構築するには、スーパーノードを含む各ノードにn2nをインストールする必要があります。依存関係が非常に少ないため、n2nはほとんどのLinuxプラットフォームで簡単にコンパイルできます。 Debianベースのシステムにn2nをインストールします。
 $ sudo apt-get subversionビルド必須libssl-dev $ svn co https://svn.ntop.org/svn/ntop/trunk/n2n $ cd n2n /n2n_v2 Red Hatベースのシステムに$ make $ sudo make install install n2n:
 $ sudo yum install subversion gcc-c ++ openssl-devel $ svn co https://svn.ntop.org/svn/ntop/trunk/n2n $ cd n2n /n2n_v2 $ make $ sudo make install n2nでP2P VPNを構成する
前述のように、少なくとも1つのスーパーノードが必要です。これは初期ブートサーバーとして機能します。このスーパーノードのIPアドレスは1.1.1.1であるとします。スーパーノード:
スーパーノードとして機能するコンピューターで次のコマンドを実行します。 ' -l< port>'はスーパーノードのリスニングポートを指定します。実行ルートにはroot権限は必要ありません。
 $ supernode -l 5000エッジノード:
各エッジノードで、次のコマンドを使用してP2P VPNに接続します。エッジデーモンはバックグラウンドで実行されます。エッジノード#1:
 $ sudo edge -d edge0 -a 10.0.0.10 -c mynetwork -u 1000 -g 1000 -kパスワード-l 1.1.1.1:5000 -m ae:e0:4f:e7:47: 5bエッジノード#2:
 $ sudo edge -d edge0 -a 10.0.0.11 -c mynetwork -u 1000 -g 1000 -kパスワード-l 1.1.1.1:5000 -m ae:e0:4f:e7:47 :5c以下は、コマンドラインの説明です。' -d< interface name>'オプションは、edgeコマンドによって作成されたTAPインターフェイスの名前を指定します。 < -a< IPアドレス>>'オプションは、(静的に)TAPインターフェイスに割り当てられたVPNのIPアドレスを指定します。 DHCPを使用する場合は、いずれかのエッジノードにDHCPサーバーを構成してから、代わりに' -a dhcp:0.0.0.0'オプションを使用する必要があります。 ' -c< group name>'オプションは、VPNグループの名前を指定します(最大長は16バイト)。このオプションは、同じノードセットに複数のVPNを作成するために使用できます。 TAPインターフェイスを作成した後、ルート特権を削除するには、-l -uオプションと-gオプションを使用します。エッジデーモンは、指定されたユーザー/グループIDとして実行されます。 ' -k< key>'オプションは、twofishで暗号化されたキーを指定します。コマンドラインからキーを隠したい場合は、N2N_KEY環境変数を使用できます。 &l-l< IPアドレス:ポート>'オプションは、スーパーノードのリスニングIPアドレスとポート番号を指定します。冗長性を確保するために、最大2つの異なるスーパーノード(-l<スーパーノードA> -l<スーパーノードB>など)を指定できます。 ' -m' TAPインターフェイスに静的MACアドレスを割り当てます。このパラメータがないと、edgeコマンドはランダムにMACアドレスを生成します。実際、VPNインターフェイスには静的MACアドレスを強制することを強くお勧めします。それ以外の場合、たとえば、あるノードでエッジデーモンを再起動すると、他のノードのARPキャッシュは新しく生成されたMACアドレスによって汚染され、汚染されたARPレコードが送信されるまでこのノードにデータを送信できません。排除されました。 


この時点で、あるエッジノードからのVPN IPアドレスを使って別のエッジノードにpingを送信できるはずです。
トラブルシューティング

エッジデーモンの呼び出し中に次のエラーが発生しました。

n2n [4405]:エラー:ioctl()[操作は許可されていません] [ - 1]

注TAPインターフェースを作成するには、エッジデーモンにスーパーユーザー特権が必要です。そのため、root権限で実行するか、またはedgeコマンドにSUIDを設定する必要があります。その後、' -u'および' -g'オプションを使用して、root権限を拒否することができます。
まとめ

n2nは無料のVPNソリューションで、あなたにはとても便利です。自分のホームネットワークを使用しているか、クラウドホスティングプロバイダから公的にアクセス可能なVPSインスタンスを使用しているかにかかわらず、スーパーノードを簡単に設定できます。機密の認証情報や鍵をサードパーティのVPNプロバイダの手に委ねる必要はもうありませんn2nを使用すると、友人同士で低遅延、高帯域幅、スケーラブルなP2P VPNを設定できます。

Copyright © Windowsの知識 All Rights Reserved