16.04前書きRedisはオープンソースのキーと値のデータストアであり、永続化のためにオプションのディスク書き込みを伴うメモリ内ストレージモデルを使用します。subメッセージングパターン、および他の機能の中での自動フェールオーバーを備えています。[彼らのウェブサイト]で紹介されています。Redisは、独自の暗号化機能を提供しません。信頼できる関係者のみがアクセスできる隔離されたプライベートネットワークに展開されているという前提の下で動作します。ご使用の環境がその仮定と一致しない場合、Redisトラフィックを暗号化で個別にラップする必要があります。+`と呼ばれる安全なトンネリングプログラムを使用してRedisトラフィックを暗号化する方法を示します。Redisクライアントとサーバー間のトラフィックは、専用のSSL暗号化トンネルを介してルーティングされます。16.04サーバーを使用してデモを行います。+`権限が設定された非rootユーザーが必要です。このガイドでは、基本的なファイアウォールが設定されていることを前提としています。16.04初期サーバーセットアップガイドに従ってこれらの要件を満たすことができます。続行する準備ができたら、以下に従ってください。`ユーティリティのインストールと設定は簡単です。2台のマシン間で暗号化された転送を可能にします。」で暗号化してラップします。+`は設定されたポートでリッスンし、ローカルポート(この場合、Redisサーバーがリッスンするポート)に転送する前にトラフィックを復号化します。+`を使用する利点は次のとおりです。+`のパッケージを管理していますUbuntuには、ブート時にプロセスを自動的に開始するinitスクリプトが含まれています設定は簡単で直感的です目的ごとに新しいトンネルが使用されます。これは状況によっては不利かもしれませんが、アクセスをきめ細かく制御できます。欠点は次のとおりです。クライアントは、デフォルトではないローカルポートに接続することでリモートマシンに接続しますが、これは最初は直感的ではないかもしれません。レプリケーションまたはクラスタリングのために2つのRedisサーバーを接続する場合、サーバー間通信用に各マシンで2つのトンネルを構成する必要があります(1つは送信トラフィック用、もう1つは受信トラフィック用)。これらの特性を念頭に置いて、始めましょう。Redisサーバーおよびクライアントパッケージをインストールする始める前に、1台のマシンにRedisサーバーをインストールし、もう1台のマシンにクライアントパッケージを用意する必要があります。これらのいずれかまたは両方がすでに設定されている場合は、お気軽にスキップしてください。PPAを使用して、Redisの最新バージョンをインストールします。サードパーティのリポジトリを使用する場合は、常に注意してください。Leaは信頼できるパッケージャーであり、いくつかの人気のあるオープンソースプロジェクトの高品質で最新のパッケージを維持しています。次のように入力して、PPAを追加し、最初のマシンにRedisサーバーソフトウェアをインストールします。*と入力して、このプロセス中にプロンプ​​トを受け入れます。インストールが完了したら、次のように入力して、Redisサービスにローカルに接続できることをテストします。pingソフトウェアがインストールされて実行されている場合、次のように表示されます。outputPONG後で使用できるキーを設定しましょう。+`を設定した後、クライアントマシンからこのキーにアクセスしようとします。16.04マシンはクライアントとして機能します。redis-toolsリモートRedisサーバーのデフォルト構成とファイアウォールがアクティブになっているため、現在、テストするためにリモートRedisインスタンスに接続することはできません。`をインストールする必要があります。`と呼ばれるバージョン4のユーティリティが含まれています。`サービスは、systemdで管理できる古いSysVinitスクリプトを使用して起動します。+`ファイルを変更する必要があります。+`オプションを「1」に設定して、起動時にサービスを開始できるようにします。.各サーバーでファイルを保存して閉じます。次に、通信の暗号化に使用される自己署名SSL証明書とキーを作成します。`ディレクトリに自己署名SSL証明書とキーを作成します。`の2つのインスタンス間の接続を暗号化するために使用されます。+」という名前を使用して、証明書とキーファイルを参照します。/etc/stunnel/.crt作成する証明書に関する情報の入力を求められます。これは内部でのみ使用されるため、値はそれほど重要ではないので、好きなものを入力してください。+`ファイルへのアクセスを制限します。stunnel`設定ファイルを作成できます。+`で終わるファイルを開き、開始します。/etc/stunnel/.conf内部では、メインセクションでPIDファイルを書き込む場所を指定します。+`ディレクトリはこれらのタイプのファイルを保存するように設計されているため、以下を使用します。/run/stunnel-redis.pid次に、Redisサービスへのアクセスを構成するセクションを作成します。redis-server`と呼びます)。このセクションでは、この構成を、後でこのマシンで構成する必要がある他のトンネルから分離します。+`ディレクティブをそれぞれ使用して、Redisサーバー自身の証明書とキーの場所を指定する必要があります。ここでは、着信データのトンネルも定義します。次に、_local_インターフェースのデフォルトのRedisポートへのトラフィックを「+接続」して、復号化されたトラフィックをデポジットします。これは、Redisサービスが実際にリッスンしている場所です。127.0.0.1:6379終了したら、ファイルを保存して閉じます。+`が設定されたので、次のように入力してサービスを再起動できます。Redisがローカルインターフェイス上の同じポートをリッスンしていることも確認してください。+`はパブリックインターフェイスでリッスンしていますが、ファイアウォールはまだトラフィックを通過させるように設定されていない可能性があります。ポート6379へのすべてのトラフィックを許可するには、次を入力します。`がリッスンしているパブリックインターフェイスのポート6379へのアクセスが開かれます。+`ポートは暗号化されたトラフィックのみを受け入れます。証明書をクライアントに配布する各Redisクライアントには、Redisサーバーの証明書ファイルのコピーが必要です。+`ファイルを配布する最も簡単な方法は、サーバー上のファイルの内容を単純に出力し、その内容を接続マシン上の対応するファイルにコピーすることです。+`ファイルの内容を出力します。*とマークされた行を含めてクリップボードにコピーします。/etc/stunnel/.crtRedisサーバーからコピーしたコンテンツを貼り付けます。完了したら、ファイルを保存して閉じます。+`設定のクライアント側を設定できます。`で終わるファイルを開きます。/etc/stunnel/.conf内部では、サービスがプロセスIDを再度保存するPIDファイルを指定します。/run/stunnel-redis.pid次に、送信データ用のトンネルを構成するセクションを追加します。redis-client`と呼びます)。このセクションでは、この構成を、後でこのマシンで構成する必要がある他のトンネルから分離します。`ディレクティブを使用して、このセクションをクライアント設定として明示的にマークする必要があります。`ディレクティブを設定して、ローカルインターフェースの未使用ポートでリッスンし、ローカルRedisクライアントからの接続を処理します(この例ではポート8000​​を使用します)。+`ディレクティブをRedisサーバーのパブリックIPアドレスと開いたポートに設定します。`を使用して、Redisサーバーの証明書のコピーをポイントします。`を4に設定する必要があります。+`は証明書チェーンに関係なく証明書のみをチェックします(証明書に自己署名したため)。4完了したら、ファイルを保存して閉じます。+`サービスを再起動して、変更を実装します。stunnel4.serviceクライアントのトンネルが適切にセットアップされたことを確認します。+`はローカルポート8000​​で接続を待機しています。これで、クライアントがローカルインターフェースのポート8000​​を指すようにすることで、リモートRedisインスタンスに接続できるようになります。outputPONGこのガイドの冒頭で設定したテストキーを照会します。output"success"これにより、リモートデータベースに正常にアクセスできることが確認されます。トンネルを使用せずにリモートRedisサーバーと通信できないことを確認するには、リモートポートに直接接続してみます。peerご覧のとおり、トラフィックは、トンネルを介して正しく暗号化されている場合にのみ、リモートRedisポートで受け入れられます。マルチクライアントおよびサーバー間通信の上記の例を拡張する上記で概説した例では、単一のRedisサーバーと単一のクライアントの簡単な例を使用しました。これらの同じ方法は、より複雑な相互作用に適用できます。この例を拡張して複数のクライアントを処理するのは簡単です。上記の以下のアクションを実行する必要があります。+`サービスを再起動します安全なサーバー間通信をセットアップするには(たとえば、レプリケーションまたはクラスタリング用)、2つの並列トンネルをセットアップする必要があります。+`構成ファイルを編集または作成して、以下が含まれるようにします。外部ポートをローカルRedisにマッピングするサーバーセクションローカルポートをリモートサーバーの公開ポートにマッピングするクライアントセクション新しいRedisサーバーのファイアウォールで外部ポートを開きますRedis構成ファイルを調整して、各Redisインスタンスがローカルにマッピングされたポートに接続してリモートサーバーにアクセスするように構成します(必要なディレクティブはサーバーの関係によって異なります。詳細については、Redisのドキュメントを参照してください。+`設定ファイルは次のようになります。4必要に応じて、各マシンで複数のクライアントセクションを構成して、ローカルポートをリモートサーバーにマップできます。+`ディレクティブを使用して、異なる未使用のローカルポートを選択してください。結論Redisは強力で柔軟なツールであり、多くの展開にとって非常に貴重です。Redisを安全でない環境で運用することは、サーバーやデータを攻撃や盗難に対して脆弱なままにする大きな問題です。信頼できる関係者のみが存在する分離されたネットワークがない場合は、他の手段でトラフィックを保護することが不可欠です。このガイドで概説されている方法は、Redisパーティ間の通信を保護するための1つの方法にすぎません。spiped]またはhttps://が含まれます。www.digitalocean.com/community/tutorials/how-to-encrypt-traffic-to-redis-with-peervpn-on-ubuntu-16-04[VPNのセットアップ]。