Redisは、NoSQL Key-Valueデータベース、メッセージブローカー、およびキャッシングソリューションとして使用できる人気のあるメモリ内Key-Valueストアです。 柔軟性、スケーラビリティ、シームレスなレプリケーション、シンプルさ、使いやすさで有名です。 Redisは、機械学習、リアルタイム分析、チャット、メッセージング、ゲームリーダーボードなどのさまざまな分野で広く使用されています。
Redis自体には堅牢な機能はありませんが、Redisを微調整してセキュリティを強化し、権限のないユーザーを防ぐことができます。
このチュートリアルでは、 Redisをインストールして保護する の上 Rocky Linux 8 また AlmaLinux 8。
ステップ1:RockyLinuxまたはAlmaLinux8にRedisをインストールする
RedisはAppStreamリポジトリで利用できます。DNFパッケージマネージャーを使用してインストールできます。
次のDNFコマンドを実行してRedisをインストールします。
$ sudo dnf install redis
インストールしたら、Redisの実行方法を変更するために、構成ファイルにわずかな変更を加える必要があります。 Redis構成ファイルにアクセスします。
$ sudo vim /etc/redis.conf
スクロールして見つけます 監視あり 指令。 これにより、initシステムを活用して、Redisを実行および効果的に管理できます。 デフォルトでは、これはに設定されています いいえ。 Rocky / AlmaLinuxはsystemdinitシステムで実行されるため、値を次のように設定します。 システム 示されるように。
以上です。 したがって、変更を保存してテキストエディタを終了します。 デフォルトでは、Redisは自動的に起動しないため、次のように起動する必要があります。
$ sudo systemctl start redis
さらに、システムの電源をオンにするか再起動するたびにサービスを開始できるようにします。
$ sudo systemctl enable redis
Redisが実行されていることを確認するには、次のコマンドを実行します。
$ sudo systemctl status redis

Redisが正常にインストールされたことをテストするために、pingメッセージを送信します。ポン‘返信として。

ステップ2:パスワードを使用してRedisを保護する
セキュリティはどのデータベースシステムにとっても優先度が高く、Redisも例外ではありません。 このステップでは、さらに一歩進んで、認証を有効にしてRedisを保護し、許可されていないパーティを回避します。
もう一度、構成ファイルにアクセスします。
$ sudo vim /etc/redis.conf
を見つけます requirepass 指令。 これは、データベースにアクセスする前にクライアントに認証を要求するように構成するディレクティブです。
ディレクティブのコメントを解除し、独自のパスワードを指定します。
requirepass strong_password

変更を適用するには、Redisデータベースを再起動します。
$ sudo systemctl restart redis
認証が有効になっているかどうかをテストするには、Redisクライアントにアクセスします。
$ redis-cli
次に、キーを値に設定してみます。
$ set keystudent Mike
これにより、示されたエラーが発生します。 これは、認証が必要であることを示しています。
(error) NOAUTH Authentication required.

認証するには、 auth キーワードの後にパスワードが続きます。 Redisはパスワードを確認し、続行できるようにします。

認証されると、setコマンドを使用してキーと値のペアの指定に進むことができます。 キーに割り当てられた値を取得するには、次のコマンドを呼び出します。
get keystudent

Redisを終了するには、quitと入力してEnterキーを押します。
quit
手順3:適切なデータディレクトリの所有権と権限を設定する
考慮すべきもう1つの重要な側面は、Redisのインストールが堅牢であることを確認するために覚えておく必要のある所有権と権限です。 これには、Redisへのアクセスを必要とするユーザーのみがそのデータを読み取る権限を持っていることを確認することが含まれます。この場合、そのユーザーは 繰り返す ユーザー。
まず、Redisデータディレクトリに適切なディレクトリの所有権と権限があることを確認します。
$ ls -l /var/lib | grep redis

出力から、RedisデータディレクトリがRedisユーザーによって所有されており、アクセスがRedisグループに付与されていることがわかります。 さらに、ディレクトリのアクセス許可は750の8進表記に設定されています。これらはRedisフォルダーの所有権とアクセス許可の推奨設定です。
たとえば、Redisデータディレクトリに安全でないアクセス許可がある場合、グローバルユーザーが読み取り可能である場合は、Redisユーザーとグループのみがフォルダーとそのコンテンツにアクセスできるようにする必要があります。
これを行うには、次のコマンドを実行します。
$ sudo chmod 750 /var/lib/redis
さらに、Redis構成ファイルが 繰り返す ルートのセカンダリグループを持つユーザー。 また、8進数の権限があることを確認してください 640 示されるように。
$ ls -l /etc/redis.conf
640の8進表記は、 繰り返す と 根 ユーザーは構成ファイルを読み取ることができます。 手順2で暗号化されたパスワードを構成したため、これは非常に重要です。 requirepass 指令。 これは、RedisユーザーとRootユーザー以外のユーザーは、ファイルを読み取ってパスワードにアクセスできないことを意味します。

セキュリティをさらに強化するには、構成ファイルがRedisユーザーとグループによって所有されていることを確認してください。
$ sudo chown redis:redis /etc/redis.conf
また、Redisの所有者のみが読み取りと書き込みを行えるように、構成ファイルのアクセス許可を設定します。
$ sudo chmod 600 /etc/redis.conf
行った変更を適用するには、Redisサーバーを再起動します。
$ sudo systemctl restart redis
ステップ4:リモートアクセス用にRedisを設定する
場合によっては、別のシステムからリモートでRedisインスタンスにアクセスする必要があります。 これを行うには、構成ファイルに移動します。
$ sudo vim /etc/redis.conf
を見つけます 練る 指令。 デフォルトでは、これはlocalhostをリッスンするように設定されています。
bind 127.0.0.1
コメントして、リモートサーバーのプライベートIPを指定します。
bind private_ip
パブリックインターネット経由でアクセスしている場合は、次のように設定できます。 0.0.0.0 パブリックIPアドレスにバインドします。
bind 0.0.0.0
次に、変更します protected-mode yes
に protected-mode no
protected-mode no
次に、Redisサーバーを再起動して変更を適用します。
$ sudo systemctl restart redis
残りのもう1つの手順は、Redisサーバーへのアクセスを許可するようにファイアウォールを構成することです。
ステップ5:Redis用のファイアウォールを構成する
Firewalldをアクティブにして実行している場合は、Redisがリッスンするポートであるポート6379を許可するように設定することを検討してください。
$ sudo firewall-cmd --add-port=6379/tcp --permanent
$ sudo firewall-cmd --reload
完全! ここで、Redisインスタンスにリモートでアクセスできるかどうかをテストするには、-hオプションに続けてRedisサーバーのIPアドレスを使用します
$ redis-cli -h server_IP
この場合:
$ redis-cli -h 10.128.0.44

結論
これで、Rocky Linux8またはAlmaLinux8にRedisを正常にインストールして保護できました。このガイドに関するフィードバックを歓迎します。