Redis juga dikenal sebagai "Server Kamus Jarak Jauh" adalah basis data sumber terbuka dan dalam memori yang dapat digunakan sebagai basis data, cache, dan perantara pesan. Redis mendukung berbagai struktur data, seperti string, hash, daftar, set, dan banyak lagi. Redis ditulis dalam bahasa pemrograman C dan bekerja di sebagian besar sistem POSIX seperti Linux, Free BSD dan OS X. Redis mampu menjalankan ribuan perintah per detik. Redis hadir dengan serangkaian fitur yang kaya termasuk, Replikasi, Kegagalan otomatis, skrip Lua, penghapusan kunci LRU, Transaksi, dan banyak lagi.
Dalam tutorial ini, kita akan mempelajari cara menginstal dan mengamankan Redis di server Debian 10.
Persyaratan
- Server yang menjalankan Debian 10.
- Kata sandi root disiapkan untuk server Anda.
Memulai
Sebelum memulai, Anda perlu memperbarui sistem Anda dengan versi terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:
apt-get update -y
apt-get upgrade -y
Setelah server Anda diperbarui, mulai ulang server Anda untuk menerapkan perubahan.
Instal Redis
Secara default, Redis tersedia di repositori Debian 10. Anda dapat menginstalnya hanya dengan menjalankan perintah berikut:
apt-get install redis-server -y
Setelah menginstal Redis, mulai layanan Redis dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start redis-server
systemctl enable redis-server
Anda juga dapat memverifikasi status server Redis dengan perintah berikut:
systemctl status redis-server
Anda akan mendapatkan output berikut:
? redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2019-09-06 05:57:45 EDT; 4s ago Docs: http://redis.io/documentation, man:redis-server(1) Process: 2284 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS) Main PID: 2285 (redis-server) Tasks: 4 (limit: 1138) Memory: 6.8M CGroup: /system.slice/redis-server.service ??2285 /usr/bin/redis-server 127.0.0.1:6379 Sep 06 05:57:45 debian systemd[1]: Starting Advanced key-value store... Sep 06 05:57:45 debian systemd[1]: redis-server.service: Can't open PID file /run/redis/redis-server.pid (yet?) after start: No such file or di Sep 06 05:57:45 debian systemd[1]: Started Advanced key-value store.
Secara default, Redis mendengarkan di localhost pada port 6379. Anda dapat memeriksanya dengan perintah berikut:
ps -ef | grep redis
Anda akan melihat output berikut:
redis 2285 1 0 05:57 ? 00:00:00 /usr/bin/redis-server 127.0.0.1:6379 root 2294 706 0 05:59 pts/0 00:00:00 grep redis
Selanjutnya, uji konektivitas Redis dengan perintah berikut:
redis-cli
Anda akan melihat output berikut:
127.0.0.1:6379>
Sekarang, periksa konektivitas Redis dengan perintah ping:
127.0.0.1:6379> ping
Jika semuanya baik-baik saja, Anda akan melihat output berikut:
PONG
Setelah Anda selesai. Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasikan Redis sebagai Cache
Anda dapat mengkonfigurasi Redis sebagai Cache dengan mengedit file /etc/redis/redis.conf:
nano /etc/redis/redis.conf
Tambahkan baris berikut di akhir file:
maxmemory 64mb maxmemory-policy allkeys-lru
Ketika memori maksimal 64mb tercapai. Redis akan menghapus kunci apa pun sesuai dengan algoritma LRU. Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan Redis dengan perintah berikut:
systemctl restart redis-server
Setelah Anda selesai. Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasikan Otentikasi Redis
Secara default, Anda dapat menjalankan perintah apa pun di shell Redis. Jadi, disarankan untuk mengonfigurasi Otentikasi Redis agar klien memerlukan kata sandi sebelum menjalankan perintah apa pun. Anda dapat mengonfigurasi otentikasi kata sandi secara langsung di file konfigurasi Redis. Untuk melakukannya, buka file /etc/redis/redis.conf dengan editor pilihan Anda:
nano /etc/redis/redis.conf
Di bawah bagian KEAMANAN temukan baris berikut:
# requirepass foobared
Batalkan komentar dan ganti dengan kata sandi yang Anda inginkan seperti yang ditunjukkan di bawah ini:
requirepass AlsW34%#df
Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan Redis untuk menerapkan perubahan konfigurasi:
systemctl restart redis-server
Sekarang, akses shell Redis dengan perintah berikut:
redis-cli
Sekarang, jalankan perintah berikut tanpa mengautentikasi:
127.0.0.1:6379> INFO server
Ini tidak akan berfungsi karena Anda tidak mengautentikasi. Anda akan mendapatkan kesalahan berikut:
NOAUTH Authentication required.
Selanjutnya, jalankan perintah berikut untuk mengautentikasi dengan kata sandi yang ditentukan dalam file konfigurasi Redis:
127.0.0.1:6379> AUTH AlsW34%#df
Anda akan mendapatkan output berikut:
OK
Sekarang, jalankan kembali perintah sebelumnya:
127.0.0.1:6379> INFO server
Ini akan berjalan dengan sukses dan Anda akan melihat output berikut:
# Server redis_version:5.0.3 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:afa0decbb6de285f redis_mode:standalone os:Linux 4.19.0-5-amd64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:8.3.0 process_id:2308 run_id:2cf0470a9492deddf98bcc72fa9ec94e941edf6c tcp_port:6379 uptime_in_seconds:50 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:7483371 executable:/usr/bin/redis-server config_file:/etc/redis/redis.conf
Setelah Anda selesai. Anda dapat melanjutkan ke langkah berikutnya.
Ganti Nama Perintah Tertentu
Demi keamanan, disarankan untuk mengganti nama perintah tertentu yang dianggap berbahaya.
Di sini kita akan mengganti nama perintah "config". Perintah config digunakan untuk mengambil kata sandi Redis. Mari kita lihat dengan sebuah contoh:
Pertama, sambungkan dan autentikasi Redis shell dengan perintah berikut:
redis-cli
127.0.0.1:6379> AUTH AlsW34%#df
Selanjutnya, ambil kata sandi Redis dengan perintah berikut:
127.0.0.1:6379> config get requirepass
Anda akan mendapatkan output berikut:
1) "requirepass" 2) "AlsW34%#df" 127.0.0.1:6379>
Anda dapat mengganti nama perintah config dengan mengedit file /etc/redis/redis.conf:
nano /etc/redis/redis.conf
Temukan baris berikut:
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
Batalkan komentar dan ganti dengan string yang Anda inginkan:
rename-command CONFIG H2sW_Config
Simpan dan tutup file. Kemudian, restart layanan Redis dengan perintah berikut:
systemctl restart redis-server
Selanjutnya, sambungkan dan autentikasi Redis shell dengan perintah berikut:
redis-cli
127.0.0.1:6379> AUTH AlsW34%#df
Selanjutnya, ambil kata sandi Redis dengan perintah config:
127.0.0.1:6379> config get requirepass
Kami mengganti nama perintah ini sehingga Anda akan mendapatkan kesalahan berikut:
(error) ERR unknown command `config`, with args beginning with: `get`, `requirepass`,
Sekarang, jalankan perintah yang diubah namanya seperti yang ditunjukkan di bawah ini:
127.0.0.1:6379> H2sW_Config get requirepass
Anda akan mendapatkan output berikut:
1) "requirepass" 2) "AlsW34%#df"
Terakhir, keluar dari shell Redis dengan perintah berikut:
127.0.0.1:6379> exit
Kesimpulan
Selamat! Anda telah berhasil menginstal dan mengamankan server Redis di Debian 10. Saya harap Anda sekarang memiliki pengetahuan yang cukup untuk mengamankan server Redis Anda dengan otentikasi kata sandi. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.