VPN前書きこのチュートリアルでは、オープンソースの仮想プライベートネットワーク(VPN)デーモンであるTincを使用して、サーバーがローカルネットワーク上にあるかのように通信できる安全なVPNを作成する方法について説明します。Tincを使用してプライベートネットワークへの安全なトンネルをセットアップする方法も示します。14.04サーバーを使用しますが、構成は他のOSでの使用に適合させることができます。Tincの便利な機能には、暗号化、オプションの圧縮、自動メッシュルーティング(可能な場合、VPNトラフィックが通信サーバー間で直接ルーティングされる)、簡単な拡張などがあります。これらの機能は、TincをOpenVPNなどの他のVPNソリューションと区別し、地理的に分散している多くの小規模ネットワークからVPNを作成するための優れたソリューションにします。Xなどの多くのオペレーティングシステムでサポートされています。14.04サーバーでルートアクセスが必要です。ルートアクセスをセットアップする手順は、こちら(ステップ3および4)にあります:https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04[Ubuntuでの初期サーバーセットアップ14.04]。独自の環境でこれを使用することを計画している場合は、サーバーが相互にアクセスする方法を計画し、このチュートリアルに示されている例を独自のニーズに合わせて調整する必要があります。これを独自の設定に適応させる場合は、例で強調表示されている値を独自の値に置き換えてください。このチュートリアルを正確に実行する場合は、プライベートネットワーキングを使用して同じデータセンターに2つのVPSを作成し、別のデータセンターに別のVPSを作成します。NYC2データセンターに2つのVPSを作成し、AMS2データセンターに1つのVPSを次の名前で作成します。*:すべてのVPNノードがこのサーバーに接続し、適切なVPN機能のために接続を維持する必要があります。必要に応じて、追加のサーバーをこのサーバーと同様に構成して、冗長性を提供できます。設定するVPNの図を次に示します(前提条件で説明)。Setup]緑はVPNを表し、灰色はパブリックインターネットを表し、オレンジはプライベートネットワークを表します。ams1がプライベートネットワークにアクセスできない場合でも、3つのサーバーはすべてVPNで通信できます。Tincをインストールして始めましょう!Tincをインストールプライベートネットワークに参加する各VPSで、Tincをインストールします。aptの更新から始めましょう。update次に、aptを介してTincをインストールします。tincTincがインストールされたので、Tincの構成を見てみましょう。VPNを別のものと区別します(複数のVPNの場合)。1つのVPNの構成のみを計画している場合でも、ネット名を使用することをお勧めします。簡単にするために、VPNを「」と呼びます。VPNの一部となるすべてのサーバーには、次の3つの構成コンポーネントが必要です。構成ファイル:tinc.conf、tinc-up、tinc-downなど。公開/秘密キーペア:暗号化およびノー​​ド認証用ホスト構成ファイル:公開鍵およびその他のVPN構成が含まれています_externalnyc_ノードを構成することから始めましょう。*で、「netname」というVPNの構成ディレクトリ構造を作成します。/etc/tinc//hosts編集用にtinc.confを開きます。/etc/tinc//tinc.conf次の行を追加します。tun0これは、「tun0」と呼ばれるIPv4を使用するネットワークインターフェイスで、というノードを構成するだけです。10.0.0.1/32最終的に、このファイルは、このサーバーと通信するために他のサーバーで使用されます。アドレスは他のノードがこのサーバーに接続する方法を指定し、サブネットはこのデーモンがサービスを提供するサブネットを指定します。次のコマンドを使用して、このホストの公開/秘密キーペアを生成します。externalnyc)に追加されます。+`を作成する必要があります。今すぐ編集用にファイルを開きます。/etc/tinc//tinc-up次の行を追加します。255.255.255.0VPNを起動すると、このスクリプトが実行され、VPNが使用するネットワークインターフェイスが作成されます。VPNでは、このサーバーのIPアドレスは10.0.0.1になります。VPNが停止したときにネットワークインターフェイスを削除するスクリプトも作成します。/etc/tinc//tinc-down次の行を追加します。down保存して終了します。最後に、tincネットワークスクリプトを実行可能にします。/etc/tinc//tinc-*保存して終了します。他のノードに進みましょう。internalnycとams1を構成するこれらの手順は、_internalnyc_と_ams1_の両方で必要になりますが、わずかな違いがあります。*で、「netname」というVPNの構成ディレクトリ構造を作成し、Tinc構成ファイルを編集します。/etc/tinc//tinc.conf次の行を追加します(名前をノード名に置き換えます)。=これらのノードは、「externalnyc」(この前に作成したノード)への接続を試行するように構成されています。次に、ホスト構成ファイルを作成しましょう。*の場合、次の行を追加します。*の場合、次の行を追加します。10.0.0./32数字が異なることに注意してください。次に、キーペアを生成します。-K4096そして、ネットワークインターフェイス起動スクリプトを作成します。*の場合、次の行を追加します。*の場合、次の行を追加します。255.255.255.0これらのIPアドレスは、VPNでこれらのノードにアクセスする方法です。次に、ネットワークインターフェイス停止スクリプトを作成します。/etc/tinc/netname/tinc-downそして、次の行を追加します。down保存して終了します。最後に、tincネットワークスクリプトを実行可能にします。/etc/tinc//tinc-*保存して終了します。次に、各ノードにホスト構成ファイルを配布する必要があります。キーを配布するたまたま構成管理システムを使用している場合は、こちらが適切なアプリケーションです。少なくとも、別のノードと直接通信したい各ノードは、ホスト構成ファイル内にある公開鍵を交換している必要があります。この例では、たとえば、_externalnyc_のみが他のノードと公開鍵を交換する必要があります。各公開鍵をノードのすべてのメンバーにコピーするだけで管理が容易になります。_externalnyc_のホスト構成ファイルの「アドレス」値を_internalnyc_にコピーするときにプライベートIPアドレスに変更して、接続がプライベートネットワークで確立されるようにすることに注意してください。*で、ホスト構成ファイルを_externalnyc_にコピーします。*で、_internalnyc_のファイルを適切な場所にコピーします。*で、そのホスト構成ファイルを_internalnyc_にコピーします。*で、_externalnyc_のファイルを適切な場所にコピーします。*では、_externalnyc_のホスト設定ファイルを編集して、「アドレス」フィールドを_externalnyc_のプライベートIPアドレスに設定します(したがって、internalnycはプライベートネットワーク経由でVPNに接続します)。_externalnyc_のホスト設定ファイルを編集します。/etc/tinc/netname/hosts/externalnyc「アドレス」の値を_externalnyc_のプライベートIPアドレスに変更します。=保存して終了します。それでは、残りのノードams1に進みましょう。*で、そのホスト構成ファイルを_externalnyc_にコピーします。’のファイルを適切な場所にコピーします。*で、そのホスト構成ファイルを_ams1_にコピーします。*で、_externalnyc_のファイルを適切な場所にコピーします。.追加のノード間でキーを交換する大規模なVPNを作成している場合は、これらの他のノード間でキーを交換する良い機会です。2つのノードが(転送サーバーを介さずに)直接通信するようにするには、キー/ホスト構成ファイルを交換する必要があり、互いの実際のネットワークインターフェースにアクセスできる必要があることに注意してください。各ホスト構成をVPN内のすべてのノードにコピーするだけでも問題ありません。-d3各ノードでデーモンを起動すると、各ノードがexternalnycに接続するときに、各ノードの名前を含む出力が表示されます。次に、VPNを介した接続をテストします。IPアドレス(以前に10.0.0.2に割り当てた)をpingします:pingpingは正常に動作し、VPN上の接続に関するデバッグ出力が他のウィンドウに表示されるはずです。これは、ams1がexternalnycからinternalnycへのVPNを介して通信できることを示しています。CTRL-Cを押して、pingを終了します。VPNインターフェイスを使用して、アプリケーション接続、ファイルのコピー、SSHなどの他のネットワーク通信を行うこともできます。各Tincデーモンデバッグウィンドウで、CTRL-を押してデーモンを終了します。注:接続が機能しない場合は、ファイアウォールが接続をブロックまたは転送していないことを確認してください。+`設定ファイルに入れる必要があります。*各ノード*で、nets.bootを編集します。/etc/tinc/nets.bootVPNの名前をこのファイルに追加します。私たちのものは「ネット名」です。startup.netname保存して終了します。+`コマンドで制御できます。開始する場合は、各ノードで次のコマンドを実行します。startおめでとうございます。VPNがセットアップされました。結論このチュートリアルを完了したので、ニーズに合わせてVPNを構築するための優れた基盤が必要です。Tincは非常に柔軟で、どのノードも他のノード(ネットワーク経由でアクセスできる)に接続するように構成できるため、単一のノードに依存せずにメッシュVPNとして機能できます。