Ellingwood]によって作成されました前書きRedisは、柔軟性、パフォーマンス、幅広い言語サポートで知られているメモリ内のキーと値のストアです。18.04サーバーでRedisをインストール、構成、および保護する方法を示します。18.04サーバーにアクセスする必要があります。[初期サーバーセットアップガイド]に従って設定できます。18.04サーバーにログインし、以下に進みます。+`を使用して公式のUbuntuリポジトリからインストールします。+`パッケージキャッシュを更新し、次のように入力してRedisをインストールします。redis-serverこれにより、Redisとその依存関係がダウンロードおよびインストールされます。これに続いて、Redis構成ファイルで行う重要な構成変更が1つあります。これは、インストール中に自動的に生成されました。任意のテキストエディターでこのファイルを開きます。`ディレクティブを見つけます。このディレクティブを使用すると、Redisをサービスとして管理するinitシステムを宣言でき、その操作をより詳細に制御できます。`に設定されています。.この時点でRedis構成ファイルに加える必要があるのはこれだけなので、完了したら保存して閉じます。次に、Redisサービスを再起動して、構成ファイルに加えた変更を反映します。redis.serviceこれで、Redisをインストールして設定し、マシンで実行しています。使用を開始する前に、Redisが正しく機能しているかどうかを最初に確認することをお勧めします。ステップ2-Redisのテスト新しくインストールされたソフトウェアの場合と同様に、Redisが構成をさらに変更する前に、Redisが期待どおりに機能していることを確認することをお勧めします。このステップでRedisが正常に動作していることを確認する方法をいくつか見ていきます。Redisサービスが実行されていることを確認することから始めます。redisエラーなしで実行されている場合、このコマンドは次のような出力を生成します。.ここでは、Redisが実行されており、既に有効になっていることがわかります。サーバーが起動するたびに起動するように設定されています。Redisが正しく機能していることをテストするには、コマンドラインクライアントを使用してサーバーに接続します。+`コマンドを使用して接続をテストします。pingOutputPONGこの出力は、サーバー接続がまだ生きていることを確認します。次に、次を実行してキーを設定できることを確認します。working!"OutputOK次のように入力して値を取得します。testすべてが機能していると仮定すると、保存した値を取得できます。working!"値を取得できることを確認したら、Redisプロンプトを終了してシェルに戻ります。exit最終テストとして、Redisが停止または再起動した後でもデータを保持できるかどうかを確認します。これを行うには、まずRedisインスタンスを再起動します。redis次に、コマンドラインクライアントにもう一度接続し、テスト値がまだ利用可能であることを確認します。testキーの値には引き続きアクセスできる必要があります。working!"終了したら、シェルを再度終了します。exitこれにより、Redisインストールが完全に機能し、使用できる状態になります。デフォルトの構成設定の一部は安全ではないため、悪意のあるアクターがサーバーとそのデータに攻撃してアクセスする機会を提供します。[Redisの公式Webサイト]で規定されているこれらの脆弱性を軽減する方法について説明します。これらの手順はオプションであり、従わないことを選択した場合でもRedisは引き続き機能しますが、システムのセキュリティを強化するためにこれらを完了することを強くお勧めします。これとは異なるチュートリアルに従ってRedisをインストールおよび構成した場合は、どこからでも接続できるように構成ファイルを更新した可能性があります。*へのバインドほど安全ではありません。これを修正するには、Redis構成ファイルを開いて編集します。/etc/redis/redis.confこの行を見つけて、コメントが解除されていることを確認します(存在する場合は「#」を削除します)。次に、サービスを再起動して、systemdが変更を読み取ることを確認します。+`コマンドを実行します。+)にバインドされていることを示しており、設定ファイルに加えた変更を反映しています。+)、正しい行のコメントを外したことを再確認し、Redisサービスを再起動する必要があります。*でのみリッスンするようになったため、悪意のあるアクターがサーバーにリクエストを送信したり、サーバーにアクセスしたりすることはさらに困難になります。Redisは現在、ユーザーが自身の構成または保持しているデータを変更する前に自分自身を認証することを要求するように設定されていません。`コマンドが有効になります。これは、クライアントがデータベースにアクセスするために認証する必要があります。+`で直接設定されるため、好みのエディターでそのファイルを再度開きます。+`を安全なパスワードに変更します。パスワードを設定したら、ファイルを保存して閉じ、Redisを再起動します。redis.serviceパスワードが機能することをテストするには、Redisコマンドラインにアクセスします。redis-cli以下は、Redisパスワードが機能するかどうかをテストするために使用される一連のコマンドを示しています。最初のコマンドは、認証前にキーを値に設定しようとします。10認証されなかったため機能しません。そのため、Redisはエラーを返します。required.次のコマンドは、Redis構成ファイルで指定されたパスワードで認証します。+`はRedisに新しいキーの値を問い合わせます。quit次に、Redisコマンドの名前の変更について説明します。Redisコマンドは、誤って入力した場合や悪意のあるアクターによって入力された場合、マシンに重大な損傷を与える可能性があります。ステップ5-危険なコマンドの名前変更Redisに組み込まれている他のセキュリティ機能には、危険と見なされる特定のコマンドの名前変更または完全な無効化が含まれます。権限のないユーザーが実行すると、そのようなコマンドを使用してデータを再構成、破棄、または消去することができます。+`セクションで設定されます。これは包括的なリストではありませんが、そのリスト内のすべてのコマンドの名前を変更または無効にすることは、Redisサーバーのセキュリティを強化するための良い出発点です。コマンドを無効にするか名前を変更するかは、特定のニーズまたはサイトのニーズによって異なります。悪用される可能性のあるコマンドを使用しないことがわかっている場合は、無効にすることができます。それ以外の場合は、名前を変更することをお勧めします。Redisコマンドを有効または無効にするには、構成ファイルをもう一度開きます。/etc/redis/redis.confコマンドを無効にするには、以下に示すように、空の文字列(間に文字を含まない引用符のペアで指定)に名前を変更するだけです。.コマンドの名前を変更するには、次の例に示すように別の名前を付けます。名前が変更されたコマンドは、他の人が推測するのは難しいはずですが、覚えやすくする必要があります。.変更を保存してファイルを閉じます。コマンドの名前を変更した後、Redisを再起動して変更を適用します。redis.service新しいコマンドをテストするには、Redisコマンドラインを入力します。redis-cli次に、認証します。`に変更したと仮定します。+`コマンドを使用してみてください。名前を変更したため、失敗するはずです。'config'ただし、名前を変更したコマンドの呼び出しは成功します。大文字と小文字は区別されません。redis-cli`を終了できます:exit既にRedisコマンドラインを使用していて、Redisを再起動する場合は、再認証する必要があることに注意してください。それ以外の場合、コマンドを入力するとこのエラーが発生します。required.結論このチュートリアルでは、Redisをインストールして構成し、Redisインストールが正しく機能していることを検証し、組み込みのセキュリティ機能を使用して悪意のある攻撃者からの攻撃に対する脆弱性を減らしました。サーバーに誰かがログインすると、導入したRedis固有のセキュリティ機能を簡単に回避できることに注意してください。Setup]チュートリアル)。これにより、悪意のあるアクターがそのフェンスを飛び越えることが非常に難しくなります。