「リモートディクショナリサーバー」の略であるRedisは、データをキーと値のペアとして格納するキーと値のストアです。 RedisはNoSQLデータベースです。つまり、MySQLやOracleデータベースのようなテーブル、行、列はありません。 INSERT、SELECT、UPDATE、およびDELETEは使用しません。これの代わりに、Redisはデータ構造を使用してデータを保存します。文字列、リスト、セット、並べ替えられたセット、ハッシュを含む5つの主要なデータ構造と、ビットマップ、ハイパーログログ、地理空間インデックスを含む3つの追加のデータ構造を使用します。 Redisの最も重要な機能の1つは、インメモリデータベースであるということです。つまり、データをメモリに保持し、超高速にします。ただし、Redisにはデータをディスクに書き込むオプションもあります。
このチュートリアルでは、Ubuntu18.04にRedisをインストールして保護する方法を紹介します。
前提条件
- Atlantic.netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
- サーバーで構成されているrootパスワード。
Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
Redisサーバーのインストール
apt-get install redis-server php-redis -y
Redisサーバーをインストールした後、Redisをサービスとして管理するためにinitシステムを使用するようにRedisサーバーを構成する必要があります。 redis.confファイルを編集して設定できます:
nano /etc/redis/redis.conf
次の行を見つけます:
supervised no
次の行に置き換えます:
supervised systemd
ファイルを保存して閉じます。次に、Redisサービスを再起動して、変更を適用します。
systemctl restart redis
次のコマンドを使用して、Redisサービスのステータスを確認することもできます。
systemctl status redis
次の出力が得られるはずです:
Redisサーバーを確認する
Redisサーバーが期待どおりに機能しているかどうかをテストすることをお勧めします。
redis-cliコマンドラインユーティリティを使用してテストできます:
redis-cli 127.0.0.1:6379> ping
すべてが正常であれば、次の出力が得られるはずです:
PONG
これで、次のコマンドを使用してRedisシェルを終了できます。
exit
次のコマンドを使用して、Redisのバージョンを確認することもできます。
redis-cli -v
出力:
redis-cli 4.0.9
Redisの詳細については、次のコマンドを実行してください:
redis-cli info
次の画面が表示されます。
次のコマンドを使用して、Redisリスニングポートを確認することもできます。
netstat -lnp | grep redis
Redisサーバーがポート6379のローカルホストでリッスンしていることがわかります。
パスワードでRedisを保護する
まず、以下に示すように、OpenSSLコマンドを使用して強力なパスワードを生成します。
openssl rand 60 | openssl base64 -A
次の出力(このようなパスワード)が表示されます。
MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR
次に、パスワードをRedis構成ファイル/etc/redis/redis.confに貼り付けます:
nano /etc/redis/redis.conf
次の行を見つけます:
# requirepass foobared
次の行に置き換えます:
requirepass MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR
ファイルを保存して閉じます。次に、Redisサービスを再起動して、変更を適用します。
systemctl restart redis
次に、次のコマンドを使用してRedisコマンドラインに接続します。
redis-cli 127.0.0.1:6379>
次に、次のコマンドを実行して、Redisパスワードが機能するかどうかをテストします。
127.0.0.1:6379> set test "How Are You"
認証されなかったため、次のエラーが発生します:
(error) NOAUTH Authentication required.
次に、以下に示すように、パスワードを使用してRedisを認証します。
127.0.0.1:6379> auth MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR
次の出力が得られるはずです:
OK
ここで、前のコマンドをもう一度実行します:
127.0.0.1:6379> set test "How Are You"
出力:
OK
次に、テストの値を取得します。
127.0.0.1:6379> get test
次の出力が表示されます。
"How Are You"
テストに成功したら、次のコマンドを使用してRedisコマンドラインを終了します。
127.0.0.1:6379> exit
危険なコマンドの名前を変更する
config、shutdown、flushdb、flushall、renameなどの危険なコマンドの名前を変更することをお勧めします。これらのコマンドを誤って実行すると、データが破壊または消去される可能性があります。
/etc/redis/redis.confファイルを編集してこれらのコマンドの名前を変更できます:
nano /etc/redis/redis.conf
ファイルの最後に次の行を追加します。
rename-command CONFIG ATLANTICCONFIG rename-command FLUSHDB ATLANTICFLUSHDB rename-command SHUTDOWN ATLANTICSHUTDOWN rename-command FLUSHALL ATLANTICFLUSHALL
ファイルを保存して閉じてから、Redisサービスを再起動して変更を実装します。
systemctl restart redis
上記のコマンドをテストするには、Redisコマンドラインを入力します。
redis-cli
次に、以下に示すように、パスワードを使用してRedisを認証します。
127.0.0.1:6379> auth MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR
次の出力が得られるはずです:
OK
次に、以下に示すように、元のCONFIGコマンドを実行してみてください。
127.0.0.1:6379> config get requirepass
次のエラーが発生するはずです:
(error) ERR unknown command 'config'
ここで、名前を変更したコマンドで再試行します:
127.0.0.1:6379> atlanticconfig get requirepass
次の出力が表示されます。
1) "requirepass" 2) "MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR"
結論
おめでとう!これで、Redisサーバーがインストールされて保護されました。この方法は、Atlantic.NetVPSホスティングと互換性があります。詳細については、Redisのドキュメントページにアクセスしてください。