Tinc Ubuntu の上で VPN をインストールします。 16.04 LTS

 

仮想プライベート ネットワーク (VPN) は、インターネットなどより大きなパブリック ネットワークを介して動作するセキュリティで保護されたプライベート ネットワーク. Vpn は、近年ますます人気となっています。, 彼らは、高価で複雑な新しいハードウェアのセットアップを必要とせずに増加セキュリティとプライバシーを提供する主な理由. 彼らはまた、他のいくつかの利点を提供します, 減少ネットワーキングおよびサポート費用を含みます.

公衆ネットワークを介して暗号化されたトンネルを作成することによってVPNの仕事, これを使用すると、安全にサーバと端末間でデータを送信します. これらの接続は、さまざまな方法で暗号化することができます, そして、あなたのアーキテクチャに合わせて、さまざまなVPNクライアントとデーモンがあります, 予算, そして、経験のレベル.

TINCは、そのような解決策である(1,2). オープンソースのVPNデーモン, それは、幅広いプラットフォームで利用できるようになりました, そして、同様のVPNクライアント上でいくつかの利点を有しています. これは、安全で信頼性の高い暗号化を提供しています, オプションの圧縮, お使いのネット​​ワークの成長に合わせて、容易に拡張可能です. 自動フルメッシュルーティングは、VPNトラフィックは常に(可能な限り)宛先マシンに直接送信されることを意味します, 中間転送を受けることなく, これは大幅データ窃盗(3)の可能性を制限することによってセキュリティを向上します. さらに, TINC VPNは、通常のネットワークデバイスとしてIPレベルのネットワークコードに表示されますので、, TINC VPNを設定した後、既存のソフトウェアを適応させる必要はありません. これはTINC VPNは本質的にスケーラブルになり.

TINCの唯一のマイナーな問題は、何人かの人々が設定することが少しトリッキー発見したということです. それはあなたのように聞こえる場合, 恐れることはありません - 今日私はTINC VPNを取得し、サーバー上で実行されているの(多かれ少なかれ)手間のかからない方法を紹介を取りますよ.

前提条件

完全にこのチュートリアルに従ってください, あなたは、少なくとも3つのUbuntuを必要としています 16.04 サーバー, 各マシン上とrootアクセス. あなたはこれを持っていないか、これが何を意味するのかわからないならば, このチュートリアルでは、あなたのためではない - あなたが最初のUbuntuを使用してサーバを設定する方法をチェックアウトする必要があります(4).

あなたは最初からサーバシステムを構築している場合, まず、あなたのマシンが相互に通信しようとしているかを考える必要があります. このチュートリアルで, 私はほとんどの人が選ぶだろうと思う変数名を使用するつもりです, しかし、あなたはあなた自身の設定に合わせて変数名の一部を適応させる必要があることに注意してください.

あなたはまさにこのチュートリアルをフォローしたい場合, あなたは最初の同じデータセンター内の2つのVPSを設定する必要があるとしています, 次いで第2データセンター内の第三のVPSを行います. 私のデータセンターがNYC2と呼ばれています, これは、2つのVPSを持っています, そして、AMS2, その第三のいずれかを有します. これらのVPSは、次のように呼ばれています。

externalnyc - 私たちのVPNノードのすべてが、このサーバーに接続しようとしています, これは、ネットワーク機能を適切に確保するために接続され、利用可能なままでなければならないことを意味し. あなたは最終的にあなたのセットに余分なサーバを追加する場合, 彼らはexternalnycと同じ方法で設定する必要があります.

internalnyc - このVPSは、プライベート・ネットワーク・インタフェースを使用してexternalnyc VPNノードに接続されています.

AMS1 - これが私たちの公共のVPN接続です. これは、公共のインターネットを使用してexternalnycに接続します.

ゴール

私たちが達成したいことは、次のとおりです。

私たちのプライベートネットワークは、緑の線で表され、, そして、3台のすべてのサーバーを接続します. オレンジは、私たちのプライベートネットワークです, 2台のNYC2サーバを一緒にリンクします. すべての3台のサーバーは、VPNを介して接続することができます, プライベートネットワークは、AMS1にアクセスすることはできませんけれども.

これを行うに, これらの手順に従います。

私は、インストール

最初のアップ, 我々はTINCをインストールする必要があります. 相変わらず, すべてのaptリポジトリを実行することにより、最新であることを確認してください。

sudo 適当です-行きます更新

その後のaptによる標準的な方法でTINCをインストールします。

sudoのIをインストールapt-getを

以上です!あなたのマシンが今TINCをダウンロードします, あなたが必要とするすべての前提条件プラス. 現在の構成を見てする必要があります.

構成

TINCを設定すると、あなたが使用している他のVPNとは少し異なる場合があります. これは、別の1 VPNを区別するために「ネット名」を使用しています, あなたはTINCを通じて実行されている複数のVPNを持っているとき、これは非常に便利になり, しかし、最初は少し反直感的です. これは私たちの最初のTINCネットワークであるので、, それをシンプルに保つと私たちのVPN「ネット名」と呼んでみましょう.

今、私たちのサーバーのそれぞれについて、. それぞれ、3つの構成要素が必要になります。

コンフィギュレーションファイル:tinc.conf, 私のアップ, I-ダウン, その他のファイルのオプションの数.

公開鍵と秘密鍵のペア:これらは、暗号化と認証のためのものです.

設定ファイルをホスト:これらは、公開鍵が含まれています, そして、他のVPN構成要素.

今度は、今度は、私たちのサーバーのそれぞれを設定してみましょう. 最初のアップ, externalnyc.

externalnyc設定

わかりました, 今ナットとボルトへ. externalnycオン, VPNネット名のための構成ディレクトリ構造を作成することから始め. 実行します。

須藤ます。mkdir -pの/ etc / I /ネット名/ホスト

今すぐあなたの選択したテキストエディタで開いてtinc.conf:

sudoのviの/etc/tinc/netname/tinc.conf

あなたは、あなたの前にファイルを持っていたら、, ファイルの末尾に次の行を追加します。

Name = externalnyc
AddressFamily = ipv4
Interface = tun0

あなたはここでやっているすべては、ノードと呼ばexternalnycを設定することです, そして、それのネットワークインターフェイスがIPv4を使用すると「tun0」と呼ばれるサーバーを伝えます. ファイルを保存します。, そして、それを閉じます.

次のアップ, 我々はexternalnycのためのホストの設定ファイルを作成する必要があります. これを行うに, テキストエディタでホストの設定ファイルを開きます。

sudoのviのは/ etc / I /ネット名/ホスト/ externalnyc

もう一度, このファイルの一番下にいくつかの行を追加します。, 最初の行であなたのVPSのパブリックIPアドレスに置き換えてください。

Address = externalnyc_public_IP
Subnet = 10.0.0.1/32

これは、他のサーバーがexternalnycに接続するために使用するファイルです。. アドレスは、このサーバに接続するために、他のノードかと伝えます, そして、サブネットアドレスは、このデーモンが上で動作しますサブネットです. もう一度, このファイルに変更を保存して閉じます.

今、私たちは国民を生成する必要があります / このホストの鍵と秘密鍵のペア. これは十分に簡単です。, だけを実行します。

sudoのtincd -nネット名-K4096

これは、RSA秘密鍵を作ります, そして先ほど作成した設定ファイルの最後に、公開鍵のペアを追加します. あなたはこれが行われていることを確認するためにそれを再度開くことができます, よければ.

今, 我々はTINCアップを行う必要があり, 私たちのVPNが開始されたときに実行される小さなスクリプト. 編集のために次のファイルを開きます。

sudoのviのは/ etc / I /ネット名/私のアップ

そして、追加します。

#!/bin/sh
ifconfig $INTERFACE 10.0.0.1 ネットマスク 255.255.255.0

VPNネット名が開始されるたびに, このスクリプトが実行されます. それは私たちのVPNで使用するネットワークインタフェースを行います, そしてこのVPN externalnyc上のIPを持っています 10.0.0.1.

しかし、VPNが停止したとき, 我々はこのネットワークインターフェースが消えたいです, 私たちは、1つのより多くのスクリプトが必要. これはTINCダウンに追加する必要があります. 開いた:

sudoのviのは/ etc / I /ネット名/ I-ダウン

そして、追加します。

#!/bin/sh
ifconfig $INTERFACE down

そして再び保存して終了. 私たちは、今、私たちのスクリプトを持っています, しかし、それらが動作するためには、彼らが実行可能としてフラグ付けする必要があります. これは十分に簡単です。, コマンドラインを使用しました:

sudo chmod 755 /など/ I /ネット名/ tinc- *

保存して終了, あなたは、このサーバーの設定が完了しています. 次のアップ, internalnycとAMS1.

internalnycを設定し、AMS1

残りの2台のサーバーを構成するには, あなたは、各マシン上で同じコマンドを実行する必要があります. いくつかのマイナーなバリエーションがあります。, 私は指摘しますました, そのプロセスは基本的に同じです.

我々は、上記のexternalnycで行ったように, まず、当社のコンフィギュレーションファイルのディレクトリ構造を作成する必要があります. 各サーバー上で, 次のコマンドを実行します, その後、編集のためTINCの設定ファイルを開きます。

須藤ます。mkdir -pの/ etc / I /ネット名/ホスト
sudoのviの/etc/tinc/netname/tinc.conf

次に、このファイルの最後に数行を追加, 各ノードの名前で「NODE_NAME」を置き換えてください。

Name = node_name
AddressFamily = ipv4
Interface = tun0
ConnectTo = externalnyc

あなたは私たちのサーバーの両方が今externalnycに接続しようとするように設定されていることがわかります. このファイルを保存します, そして、それを閉じます.

今、私たちは、ホスト・コンフィギュレーション・ファイルを作成する必要があります. 実行します。

sudoのviのは/ etc / I /ネット名/ホスト/ NODE_NAME

その後internalnyc用, この行を追加します。

サブネット= 10.0.0.2/32

そしてAMS1用, この行を追加します。

サブネット= 10.0.0.3/32

ここでの唯一の違いは、アドレスが異なることがあります, 私たちは離れて私たちのサーバーを伝えることができます. このファイルを保存します, そして、それを閉じます.

今, ちょうど前のように, 私たちは国民を生成する必要があります / 秘密鍵のペア, ネットワークインタフェースを作成するスクリプトを起動します. 各サーバー上で, 実行します。

sudoのtincd -nネット名-K4096

その後:

sudoのviのは/ etc / I /ネット名/私のアップ

今. 各サーバーの場合, 我々は以前に指定されたアドレスを使用する必要があります. あなたは正確に私を追いかけているのなら, internalnycのためにあなたが追加する必要があります。

ifconfigコマンド$ INTERFACE 10.0.0.2 ネットマスク 255.255.255.0

そしてAMS1用:

ifconfigコマンド$ INTERFACE 10.0.0.3 ネットマスク 255.255.255.0

だがしかし, あなたは上記の異なるアドレスを指定した場合, ここにも、それらを変更します. これらのファイルを保存します, して終了. 私たちは、ほぼ、そこにいる.

私達はちょうどネットワーク・インタフェース・停止スクリプトを作成する必要があります, ちょうど前のように:

sudoのviのは/ etc / I /ネット名/ I-ダウン

そして、両方のサーバー上で次の行を追加します。

ダウンifconfigコマンド$ INTERFACE

そして、コンフィギュレーションの非常に最後のビットは、私たちの新しいスクリプトが実行可能にすることです。

sudo chmod 755 /など/ I /ネット名/ tinc- *

保存して終了. あー. すべてがうまくいった場合には, すべての3台のサーバーが構成されています. 今すぐ暗号化を実装するための.

キーの配布

すでにコンフィグ管理システムを使用している場合, あなたは幸運. 理想的な世界では, 私たちが今行われている各ノードは、公開を使用して別のノードと直接話をすることができるようにする必要があります / 秘密鍵のインタフェース. キー, 我々は、上で見たよう, 各サーバーのホスト設定ファイルに今あります. 単純なネットワークでは、我々はここで作っています, 実際にはexternalnyc他のノードと鍵を交換する必要があります.

そしたら, これを行う最も簡単な方法は、さまざまなノードのすべてのメンバーにそれぞれの公開鍵をコピーするだけです. これは実際にはかなり簡単です。, ちょうどあなたがそれをコピーするときに、それ自身のプライベートIPアドレスにexternalnycの設定ファイル内の「アドレス」の値を変更するように注意してください. そんなふうに, 接続は、プライベートネットワーク上で確立されます.

あなたは私に続き、あなたのVPN「ネット名」と呼ばれる場合, ホストの設定ファイルはここにあります。/ etc / TINC /ネット名/ホスト

externalnycとinternalnyc間の交換キー

これは簡単です. internalnycオン, ホスト・コンフィギュレーション・ファイルを見つけ、externalnycにそれをコピーします。

SCPは/ etc / I /ネット名/ホスト/ internalnyc [電子メールの保護]_private_IP:/ tmpに

そうしたら, externalnyc上, 適切な場所に同じファイルをコピーします。

CDの/ etc / I /ネット名/ホスト。 sudoのcpは/ tmpに/ internalnyc .

今、私たちは逆の手順を実行します. externalnycオン, internalnycにホストの設定ファイルをコピーします。

SCPは/ etc / I /ネット名/ホスト/ externalnyc [電子メールの保護]_private_IP:/ tmpに

それが正しい場所にあるので、その後internalnyc上のファイルをコピーします。

CDの/ etc / I /ネット名/ホスト。 sudoのcpは/ tmpに/ externalnyc .

アドレスが正しいので、今、私たちはinternalnycにexternalnycのhosts設定ファイルを編集する必要があります. ノードがプライベートネットワーク経由でVPNに接続するようにするためです. だから, internalnyc上, externalnycのためのホストの設定ファイルを開きます。

sudoのviのは/ etc / I /ネット名/ホスト/ externalnyc

そしてexternalnycのプライベートIPアドレスへのアドレス値を変更します, このように:

住所= externalnyc_private_IP

ファイルを保存します。, して終了. それは行ってこれら二つの鍵です. 今、私たちは私たちの1つの残りのノードで鍵を交換する必要があります.

externalnycとAMS1間の交換キー

ここでの処理はかなり似ています. AMS1使い方, externalnycにホストの設定ファイルをコピーします。

SCPは/ etc / I /ネット名/ホスト/ AMS1 [電子メールの保護]_public_IP:/ tmpに

そして再び、適切な場所にコピーします, externalnyc使用:

CDの/ etc / I /ネット名/ホスト。 sudoのcpは/ tmpに/ AMS1 .

externalnycに泊まります, ファイルに他の方法をコピーします, AMS1の間:

SCPは/ etc / I /ネット名/ホスト/ externalnyc [電子メールの保護]_public_IP:/ tmpに

そして、もう一度, AMS1であります, それが正しい場所にあるので、このファイルをコピーします。

CDの/ etc / I /ネット名/ホスト。 sudoのcpは/ tmpに/ externalnyc .

そして、あなたは鍵の交換で行われています. 理論的には, あなたは今の作業を持っています, TINCて暗号化されたVPN. あなたは手紙にこのチュートリアルに従った場合, あなたのセットをテストに進むことができます. もし, しかし, あなたも、余分なノードを追加する機会を撮影しました, 今、あなたが必要とするすべてのキーを交換するのに良い時期です.

あなたは中央のノードを使用している場合ことを覚えておいてください, 私はここでやっているように, あなたはすべてのサーバーにすべてのキーをコピーする必要はありません. しかし, あなたはノードが互いに直接話をすることができるようにしたい場合, 彼らは鍵を交換する必要があります。. これを実行するためのプロセスは、私が上記きたものと同じである - あなたがご希望の接続を実現する必要があると同じくらい多くの反復を行います.

テスト

これでテストする準備ができているはずです. これを行うに, それは、デバッグモードでTINCを開始することをお勧めします, 私たちはすべてのエラーをキャッチし、何がうまくいかない場合は、いくつかのより多くの情報を得ることができます. 悪い構成されたVPNは、実際にセキュリティ上のリスクになる可能性がありますことを忘れないでください, あなたが重要な何のためにあなたのVPNの使用を開始する前に、すべてが正常に動作することを確認してください.

デバッグモードでTINCを起動するには, 各ノードで, externalnycで始まります, 実行します。

sudoのtincd -nネット名-D -d3

あなたのVPNの何かが違うと呼ばれてきた場合, もちろんです, 適切な名前に「ネット名」変数を変更.

デーモンは各ノード上で起動した後, 彼らは接続すると、それはあなたに、各ノードの名前を与えて出力を返す必要があります. これが発生しない場合, あなたはどこかでミスを犯しました.

今, 私たちは、VPNをテストすることができます. AMS1上の新しいウィンドウで, そのIPアドレスを使用してinternalnycピング. 私たちは、これを割り当て 10.0.0.2 先ほどの, その入力します。

ping 10.0.0.2

うまくいけば, あなたのpingが動作します. あなたはまた、他のウィンドウにいくつかのデバッグ出力が表示されるはずです, あなただけの作った接続を記述する. AMS1は現在接続されています, あなたの新しいVPN経由, externalnycへ, そしてそれを介してinternalnycに接続することができます. CTRL-Cを押すと、pingが停止します.

今、あなたは安全なVPN接続を持っています, あなたはネットワーク通信の他のタイプのためにそれを使用することができます - アプリケーション接続を, コピーファイル, SSH, または何か他のものが好き.

あなたのpingが機能しなかった場合, しかし、あなたは右のすべてをしたと思います, それは、ファイアウォールが邪魔になっていることかもしれません. ファイアウォールの設定を確認してください, そしてさらに試みる.

どこが起動します

ただ、最後の事. あなたは今、すべてのあなたのネットワーキングのためのあなたのTINC VPNを使用するつもりなら, あなたはそれがブート時に起動するように設定することをお勧めします. あなたは、各ノードでこれを実行する必要があります。, nets.boot設定ファイルを編集することにより、. 使用してファイルを開きます。

sudoのviの/etc/tinc/nets.boot

そして、このファイルに新しいVPNの名前を追加します. あなたは私のような「ネット名」を選択した場合, これは、次のようになります。

# このファイルには、システム起動時に起動するネットワークのすべての名前が含まれています.
ネット名

保存して終了, そして、すれば完了です. TINCは今働いています, そしてブート時に起動します. さてあなたを行って.

あなたはTINCを制御する必要がある場合, あなたは今、そうするために、「サービス」コマンドを実行することができます. 各ノードで, だけを実行します。

私はsudoのサービスを開始します

そして、周りの遊びを持っています. 最も基本的な制御は、このコマンドによって達成することができます.

結論

あなたは今、すべてのマシン上で実行されているTINCを通じてセキュアなVPN接続が必要です. このVPNは、さらにネットワーク機能を構築するためのベースとして使用することができます.

あなたは、将来的にさらにノードを追加する場合, または他のVPNとTINCを組み合わせ, TINCは、あなたがこれを行うことができます. 私が上記しましたよう余分な各ノードのためのプロセスは同じです, そして、あなたは簡単に変数やアドレスが変化する必要があるか見ることができるはずです. ちょうどあなたがしたい場合は、ノードが相互に直接接続できるようにすることを覚えておいてください, あなたは直接それらの間の鍵を交換する必要があります。. このような, TINCはメッシュVPNとして動作します, もう少し安全な私のアプローチよりもある(3). それ以外の場合, 私が行っているようにあなたは自分のネットワークを設定することができます, そして中央のノードを経由するすべてのものを持っています.

どちらにしても, あなたは今の周りのアイテム課金あり. がんばって!

リソース

(1) https://www.tinc-vpn.org/

(2) https://www.linux.com/news/creating-vpn-tinc

(3) https://thebestvpn.com/cryptography/

(4) https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04

ソース