Cara Mengamankan Database Redis

Cara Mengamankan Instalasi Redis di Ubuntu Linux - Setelah kita menginstall Redis, ada beberapa yang harus di tweak terutama masalah security. Kita harus mengubah beberapa konfigurasi default, setidaknya mengikuti standar keamanan redis server. Nah di tutorial ini saya akan sharing langkah langkah yang harus dilakukan untuk mengamankan redis setelah instalasi.



Untuk proses instalasi redis saya anggap sudah selesai ya. Jadi disini saya fokus bahas apa yang akan dilakukan setelah proses instalasi.
Baca juga:
Pertama, kita set password untuk redis, dan pastikan juga redis di bind ke localhost. Secara default perintah perintah di redis server bisa dijalankan tanpa autentifikasi. Jadi siapapun yang sudah masuk ke redis tidak perlu password untuk menjalankan perintah yang ada. Begitu pula redis server ini kadang tidak di bind ke localhost sehingga bisa diakses diluar jaringan. Nah kita set agar redis hanya bisa diakses dari localhost saja.
sudo nano /etc/redis/redis.conf
Lalu cari
# requirepass foobared
dan hapus tanda # nya. Selanjutnya ganti foobared dengan password yang kalian kehendaki. Perhatikan peringatan yang ada di direktif requirepass.
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
Sangat jelas. Jadi jika kalian mengunakan password yang lemah, password kalian akan mudah untuk dicrack. Daripada bingung menentukan password yang kuat, kalian bisa meng-generate random password dengan openssl. Contoh perintah:
openssl rand 66 | openssl base64 -A
Contoh output:
Vk6OEWmDWmR5OCMt56rygp5WKrze14yDEZn0GiaUoXAVlaWKLc3QA9ujRpnCKSiGenX5/BjZPbuctXX4Il6cI01h

Jadi di konfigurasinya menjadi:
requirepass Vk6OEWmDWmR5OCMt56rygp5WKrze14yDEZn0GiaUoXAVlaWKLc3QA9ujRpnCKSiGenX5/BjZPbuctXX4Il6cI01h
Masih di /etc/redis/redis.conf, selanjutnya cari
# bind 127.0.0.1
Hapus comment atau tanda #. Atau jika memang sudah tidak ada dari awal, tidak perlu diapa apakan.

Oke save. Sekarang restart redis.
sudo service resdis restart
Selanjutnya cek dengan netstat apakalh local address nya sudah benar 127.0.0.1.
 sudo netstat -plant | grep redis
Jika outputnya seperti dibawah ini berarti konfigurasi sudah benar
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      8152/redis-server 1

Jika lain, perlu di cek ulang apakah bind nya sudah benar mengarah ke localhost.

Selanjutnya login ke redis-cli.
redis-cli
Lalu test apakah kita bisa menjalankan perintah tanpa password.
127.0.0.1:6379> set key1 10(error) NOAUTH Authentication required.
Sip, error karena kita belum memasukkan password. Sekarang kita coba lagi.
127.0.0.1:6379> auth Vk6OEWmDWmR5OCMt56rygp5WKrze14yDEZn0GiaUoXAVlaWKLc3QA9ujRpnCKSiGenX5/BjZPbuctXX4Il6cI01h
OK
127.0.0.1:6379> set key1 10
OK
127.0.0.1:6379>
Untuk password nya sesuaikan sendiri ya.

Oke langkah selanjutnya adalah menghapus atau merename beberapa perintah berbahaya sehingga tidak menggunakan perintah default. Perintah berbahaya sendiri meliputi perintah berikut:
FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME, dan DEBUG

sudo nano /etc/redis/redis.conf
Lalu untuk rename tinggal ubah ke perintah baru. Sementara untuk menghapus atau mendisable cukup ubah ke empty string yang ditandai dengan tanda petik dua sebanyak dua kali. Kalo bingung lihat contoh berikut:
. . .
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
. . .
. . .
rename-command CONFIG ""
rename-command SHUTDOWN shutd0wn
rename-command CONFIG c0nf1g
. . .
Sesuaikan sendiri ya untuk perintah mana yang akan dihapus maupun direname. Selanjutnya restart redis.
sudo service redis restart
Sekarang kita test.
127.0.0.1:6379> config get requirepass
output
(error) ERR unknown command 'config'
Yep, karena sudah kita rename. Sekarang coba lagi dengan perintah yang baru:
127.0.0.1:6379> c0nf1g get requirepass
output
1) "requirepass"
2) "Vk6OEWmDWmR5OCMt56rygp5WKrze14yDE..."
Oke mungkin sekian tutorial kali ini, jika ada yang ingin ditanyakan silahkan komentar.

Referensi:
https://www.digitalocean.com/community/tutorials/how-to-secure-your-redis-installation-on-ubuntu-18-04

Posting Komentar untuk "Cara Mengamankan Database Redis"