はじめに
Redis はオープンソースのメモリ内データストアです。高レベルのパフォーマンスを維持する、柔軟で可用性の高いKey-Valueデータベースとして使用されます。
パフォーマンスと柔軟性に加えて、Redisは、幅広い言語サポート、高可用性、自動パーティション化で際立っています。
このチュートリアルでは、Ubuntu 20.04/18.04にRedisをインストールする方法を学びます。
前提条件
- Ubuntu 20.04(またはUbuntu 18.04)を実行しているシステム
- ターミナルウィンドウ/コマンドラインへのアクセス
- 須藤 またはルート ローカル/リモートマシンの特権
UbuntuにRedisをインストールして保護する
次の手順では、Ubuntu20.04にRedisをインストールする方法について説明します。このガイドはUbuntu18.04でも使用できます。
このガイドでは、基本構成のインストールとセットアップの他に、パスワード認証を追加する方法、Redisをローカルホストにバインドする方法、危険なコマンドの名前を変更する方法について説明しています。
ステップ1:Redisをインストールする
以下に概説する手順に従って、UbuntuシステムにRedisをインストールして構成します。
1.パッケージリポジトリを更新することから始めます:
sudo apt update
2.次に、次のコマンドを使用してRedisをインストールします。
sudo apt install redis-server
ステップ2:Redisを構成する
1.インストールが完了したら、Redis構成ファイルを変更します。これを行うには、選択したテキストエディタでファイルを開きます(nanoを使用しています):
sudo nano /etc/redis/redis.conf
2.次に、supervised
を指定する行を見つけます 指令。デフォルトでは、この行は no
に設定されています 。ただし、Redisをサービスとして管理するには、監視対象ディレクティブを systemd
に設定します (Ubuntuのinitシステム)。
3.変更を保存して、ファイルを閉じます。
4.最後に、次のコマンドを実行してRedisサービスを再起動します。
sudo systemctl restart redis.service
ステップ3:Redisのインストールを確認する
Redisが正しく設定されていることを確認するには、サービスが実行されているかどうかをテストします。また、サーバーへの接続をテストし、キーと値のペアを設定できるかどうかをテストします。
ステップ3.1:Redisサービスステータスを確認する
次のコマンドを実行して、Redisサービスのステータスを確認します。
sudo systemctl status redis
出力には、サービスがアクティブ(および実行中)であることが表示されます。 、下の画像のように。
ステップ3.2:Redis接続を確認する
また、 redis-cliを使用してRedisサーバーとの接続を確認する必要があります 道具。このコマンドラインクライアントに接続するには、ターミナルウィンドウに次のように入力します。
redis-cli
これにより、 redis-cliに移動します コマンド・プロンプト。接続をテストするには、次を実行します:
ping
出力は次のように応答する必要があります:
PONG
ステップ3.3:キーと値のペアの設定をテストする
Redisはメモリ内のキー値NoSQLデータベースであるため、指定されたキーに基づいて割り当てられた値を取得するかどうかをテストすることもできます。
まず、setコマンドを使用してキーを設定します。この例では、キーには key1
というラベルが付いています。 "You have successfully set up a key-value pair!"
の値である必要があります。 。
これを行うには、次のコマンドを実行します:
set key1 "You have successfully set up a key-value pair!"
2. Enterを押したら 、プロンプトは OKで応答します 。
3.次に、 get
を使用して、指定された値がキーに正常に割り当てられたかどうかを確認します。 コマンド:
get key1
4.出力は、最初のステップで値として添付したメッセージで応答する必要があります。
5. Redisシェルを終了するには、次のコマンドを実行します。
quit
ステップ4:Redisを保護する
ステップ4.1:Redis認証を設定する
Redisには、追加のセキュリティレイヤーとして認証機能が含まれています。この機能はデフォルトでは有効になっていません。したがって、構成ファイルを変更してアクティブ化する必要があります。
1.開始するには、編集用にRedis構成ファイルを開きます。
sudo nano /etc/redis/redis.conf
2.次に、 requirepass
を見つけます セキュリティの下でのディレクティブ セクションを作成してコメントを解除します( #
を削除して) 。
3.行のコメントを外したら、 foobared
を置き換えます 選択したパスワードを使用します。
4.ファイルを保存して閉じます。
5.Redisサービスを再起動します:
sudo systemctl restart redis.service
認証を要求するようにRedisを構成すると、必要なパスワードを入力するまで、クエリは拒否されます。
たとえば、 redis-cliに切り替えた場合 コマンドプロンプトを表示してpingテストを実行しようとすると、出力に次のメッセージが表示されます: (error) NOAUTH Authentication required.
このような場合にRedisで作業を開始する唯一の方法は、構成ファイルで定義されたパスワードを提供することです。
次のコマンドを使用します:
auth [your_password]
出力がOK
で応答する場合 行ってもいいです。
ステップ4.2:Redisをローカルホストにバインドする
上記の手順に従ってソフトウェアをインストールした場合、Redisはローカルホストからのみアクセス可能である必要があります。このような方法でアクセスを制限することは、ネットワークセキュリティの問題です。
ただし、デフォルト設定を変更したため、ローカルホストへの接続を制限したい場合があります。
これを行うには、編集用にRedis構成ファイルを開きます。
sudo nano /etc/redis/redis.conf
下にスクロールして、ネットワークを見つけます ファイルのセクション。次に、 bind 127.0.0.1 ::1
のコメントを解除します 行( #
を削除する )、下の画像のように。
ファイルを保存して終了したら、必ず次のコマンドでサービスを再起動してください。
sudo systemctl restart redis
これにより、Redisをローカルホストにバインドし、他の接続へのアクセスを制限することができました。
ステップ4.3:危険なコマンドの名前を変更または強制終了する
データを保護するもう1つの方法は、特定のコマンドを無効にするか、名前を変更して、推測できないようにすることです。これは、通常のユーザーがシステムに害を及ぼす可能性のあるコマンドを使用することを制限できる便利なセキュリティ機能です。
このようなコマンドを無効にするか名前を変更するには、Redis構成ファイルを開きます。
sudo nano /etc/redis/redis.conf
セキュリティを見つけます セクションを選択し、 #Command renaming
まで下にスクロールします ライン。コマンドの名前を変更したり、コマンドを強制終了したりする方法の例があります。
たとえば、 CONFIG
の名前を変更するには コマンド、次の行を追加します:
rename-command CONFIG [new_command_name]
この例では、 config
コマンドの名前がsys_admin_config_836
に変更されました (通常のユーザーは推測できないものです。)
特定のコマンドを削除するには、それらを無効化(強制終了)します。これを行うには、危険なコマンドの名前を空の文字列に変更します。
したがって、 config
を無効にする場合 コマンド、次の行を追加します:
rename-command CONFIG ""
これらの変更を行ったら、必ず変更を保存して、Redisサービスを再起動してください。