Redisは、「リモートディクショナリサーバー」としても知られています。これは、データベース、キャッシュ、およびメッセージブローカーとして使用できるオープンソースのインメモリデータベースです。 Redisは、文字列、ハッシュ、リスト、セットなど、さまざまなデータ構造をサポートしています。 RedisはCプログラミング言語で記述されており、Linux、Free BSD、OS XなどのほとんどのPOSIXシステムで動作します。Redisは、1秒間に数千のコマンドを実行できます。 Redisには、レプリケーション、自動フェイルオーバー、Luaスクリプト、キーのLRU排除、トランザクションなどの豊富な機能セットが付属しています。
このチュートリアルでは、Debian10サーバーにRedisをインストールして保護する方法を学びます。
- Debian10を実行しているサーバー。
- サーバーにルートパスワードが設定されています。
開始する前に、システムを最新バージョンに更新する必要があります。これを行うには、次のコマンドを実行します。
apt-get update -y
apt-get upgrade -y
サーバーが更新されたら、サーバーを再起動して変更を適用します。
デフォルトでは、RedisはDebian10リポジトリで利用できます。次のコマンドを実行するだけでインストールできます:
apt-get install redis-server -y
Redisをインストールした後、Redisサービスを開始し、次のコマンドを使用してシステムの再起動後にサービスを開始できるようにします。
systemctl start redis-server
systemctl enable redis-server
次のコマンドを使用して、Redisサーバーのステータスを確認することもできます。
systemctl status redis-server
次の出力が得られるはずです:
? redis-server.service-高度なKey-Valueストアロード済み:ロード済み(/lib/systemd/system/redis-server.service;有効;ベンダープリセット:有効)アクティブ:アクティブ(実行中)金2019-09-06 05: 57:45 EDT; 4秒前ドキュメント:http://redis.io/documentation、man:redis-server(1)プロセス:2284 ExecStart =/ usr / bin / redis-server /etc/redis/redis.conf(code =exited、status =0 / SUCCESS)メインPID:2285(redis-server)タスク:4(制限:1138)メモリ:6.8M CGroup:/system.slice/redis-server.service ?? 2285 / usr / bin /redis-server127.0。 0.1:6379Sep 06 05:57:45 debian systemd [1]:高度なキー値ストアを開始しています... Sep 06 05:57:45 debian systemd [1]:redis-server.service:PIDファイルを開くことができません/ run / redis / redis-server.pid(まだ?)開始後:そのようなファイルはありませんまたはdiSep 06 05:57:45 debian systemd [1]:高度なキー値ストアを開始しました。
デフォルトでは、Redisはポート6379でローカルホストをリッスンしています。次のコマンドで確認できます:
ps -ef | grep redis
次の出力が表示されます。
redis 2285 1 0 05:57? 00:00:00 / usr / bin / redis-server 127.0.0.1:6379root 2294 706 0 05:59 pts / 0 00:00:00 grep redis
次に、次のコマンドを使用してRedis接続をテストします。
redis-cli
次の出力が表示されます。
127.0.0.1:6379>
次に、pingコマンドを使用してRedisの接続を確認します。
127.0.0.1:6379> ping
すべてが正常であれば、次の出力が表示されます。
PONG
終わったら。次のステップに進むことができます。
/etc/redis/redis.confファイルを編集してRedisをキャッシュとして設定できます:
nano /etc/redis/redis.conf
ファイルの最後に次の行を追加します。
maxmemory 64mbmaxmemory-policy allkeys-lru
最大メモリが64mbに達したとき。 Redisは、LRUアルゴリズムに従ってすべてのキーを削除します。終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用してRedisサービスを再起動します。
systemctl restart redis-server
終わったら。次のステップに進むことができます。
デフォルトでは、Redisシェルで任意のコマンドを実行できます。そのため、コマンドを実行する前にパスワードを要求するようにクライアントのRedis認証を構成することをお勧めします。パスワード認証は、Redisの構成ファイルで直接構成できます。これを行うには、ファイル/etc/redis/redis.confを好みのエディターで開きます:
nano /etc/redis/redis.conf
[セキュリティ]セクションで、次の行を見つけます。
#requirepass foobared
コメントを外して、以下に示すように目的のパスワードに置き換えます。
requirepass AlsW34%#df
終了したら、ファイルを保存して閉じます。次に、Redisサービスを再起動して、構成の変更を適用します。
systemctl restart redis-server
次に、次のコマンドを使用してRedisシェルにアクセスします。
redis-cli
ここで、認証せずに次のコマンドを実行します。
127.0.0.1:6379>INFOサーバー
認証しないため、これは機能しません。次のエラーが発生するはずです:
NOAUTH認証が必要です。
次に、次のコマンドを実行して、Redis構成ファイルで指定されたパスワードで認証します。
127.0.0.1:6379> AUTH AlsW34%#df
次の出力が得られるはずです:
OK
ここで、前のコマンドをもう一度実行します:
127.0.0.1:6379>INFOサーバー
これは正常に実行され、次の出力が表示されます。
<前>#Serverredis_version:5.0.3redis_git_sha1:00000000redis_git_dirty:0redis_build_id:afa0decbb6de285fredis_mode:standaloneos:Linuxの4.19.0-5-AMD64 x86_64arch_bits:64multiplexing_api:epollatomicvar_api:原子-builtingcc_version:8.3.0process_id:2308run_id:2cf0470a9492deddf98bcc72fa9ec94e941edf6ctcp_port:6379uptime_in_seconds:50uptime_in_days:0Hzから: 10configured_hz:10lru_clock:7483371executable:/usr/bin/redis-serverconfig_file:/etc/redis/redis.conf終わったら。次のステップに進むことができます。
セキュリティ上の理由から、危険と見なされる特定のコマンドの名前を変更することをお勧めします。
ここでは、「config」コマンドの名前を変更します。 configコマンドは、Redisパスワードを取得するために使用されます。例を見てみましょう:
まず、次のコマンドを使用してRedisシェルに接続して認証します。
redis-cli
127.0.0.1:6379> AUTH AlsW34%#df
次に、次のコマンドを使用してRedisパスワードを取得します。
127.0.0.1:6379> config get requirepass
次の出力が得られるはずです:
1) "requirepass" 2) "AlsW34%#df" 127.0.0.1:6379>
/etc/redis/redis.confファイルを編集してconfigコマンドの名前を変更できます:
nano /etc/redis/redis.conf
次の行を見つけます:
#rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
コメントを外して、目的の文字列に置き換えます:
名前の変更-コマンドCONFIGH2sW_Config
ファイルを保存して閉じます。次に、次のコマンドを使用してRedisサービスを再起動します。
systemctl restart redis-server
次に、次のコマンドを使用してRedisシェルに接続して認証します。
redis-cli
127.0.0.1:6379> AUTH AlsW34%#df
次に、configコマンドを使用してRedisパスワードを取得します。
127.0.0.1:6379> config get requirepass
このコマンドの名前を変更したため、次のエラーが発生するはずです:
(エラー)ERR不明なコマンド `config`、引数は` get`、 `requirepass`、で始まります
次に、以下に示すように、名前を変更したコマンドを実行します。
127.0.0.1:6379> H2sW_Config get requirepass
次の出力が得られるはずです:
1) "requirepass" 2) "AlsW34%#df"
最後に、次のコマンドを使用してRedisシェルを終了します。
127.0.0.1:6379>終了
おめでとう!これで、Debian 10にRedisサーバーが正常にインストールされ、保護されました。パスワード認証を使用してRedisサーバーを保護するための十分な知識が得られたことを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。