GNU/Linux >> Belajar Linux >  >> Linux

Cara Melakukan Instalasi Redis Aman di Linux

Redis bermanfaat untuk banyak hal, salah satunya adalah caching. Anda juga dapat menggunakan Redis sebagai penyimpanan data utama atau bahkan sebagai pengganti database. Tetapi bagaimana Anda menjalankan instalasi Redis yang aman? Menginstal Redis bisa merepotkan, dan jika Anda tidak hati-hati, Anda bisa berakhir dengan banyak kesalahan. Beruntung bagi Anda, tutorial ini telah membantu Anda.

Dalam tutorial ini, Anda akan mempelajari cara menginstal Redis dengan aman di sistem Linux Anda, bersama dengan beberapa tips untuk menghindari kesalahan umum.

Baca terus dan selamatkan diri Anda dari sakit kepala dari pemecahan masalah kesalahan penginstalan Redis!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut:

  • Mesin Ubuntu 20.04 LTS – Tutorial ini menggunakan Ubuntu 20.04 LTS, tetapi instruksinya serupa untuk sebagian besar distribusi Linux.
  • Hak istimewa root atau pengguna non-root dengan sudo hak istimewa

Instal Ulang dengan Pengelola Paket APT

Ada beberapa cara untuk menginstal Redis di Ubuntu, tetapi untuk tutorial ini, Anda akan menggunakan manajer paket APT untuk menginstal Redis.

Redis ditulis dalam C, jadi Anda perlu mengkompilasi Redis dari kode sumbernya secara manual. Beberapa dependensi perlu dipasang, dan proses pembuatannya tidak sepenuhnya mudah.

Mengkompilasi Redis dari sumber tidak disarankan, tetapi keuntungannya adalah Anda dapat menyesuaikan instalasi jika Anda mau. Anda mengunduh kode sumber, lalu mengkonfigurasinya secara manual.

Buka terminal Anda dan jalankan apt update perintah di bawah ini untuk memastikan Anda memiliki daftar paket terbaru.

sudo apt update -y

Sekarang, jalankan apt install perintah di bawah ini untuk menginstal Redis di mesin Anda.

Perintah di bawah ini menggunakan apt manajer paket untuk mengunduh dan menginstal redis-server paket dari repositori Ubuntu ke mesin Anda. -y bendera memberitahu apt untuk menerima perintah selama proses instalasi secara otomatis.

sudo apt install redis-server -y

Mengonfigurasi File Redis.conf untuk Menjalankan Redis sebagai Layanan

Anda baru saja menginstal Redis, tetapi belum siap digunakan. Sebelum Anda dapat mulai menggunakan Redis, Anda harus terlebih dahulu mengonfigurasi redis.conf berkas.

redis.conf file konfigurasi disertakan dengan paket Redis yang Anda instal dan disimpan di /etc/redis/ direktori secara default. File ini berisi semua opsi konfigurasi untuk Redis.

Ekstensi file .conf adalah logis, karena mengikuti pola konvensional. Banyak program lain menggunakan gaya yang sama. Server web Apache, misalnya, menggunakan ekstensi file .conf untuk file konfigurasi utamanya.

1. Jalankan systemctl berikut ini perintah ke stop redis-server melayani. Menghentikan layanan Redis agar tidak berjalan adalah praktik yang disarankan saat Anda pertama kali memulai Redis.

sudo systemctl stop redis.service

2. Selanjutnya, buka /etc/redis/redis.conf file di editor teks pilihan Anda.

Temukan diawasi direktif, lalu setel ke systemd , seperti yang ditunjukkan di bawah ini, dan simpan perubahannya. Melakukannya akan memberi tahu sistem operasi untuk menjalankan Redis sebagai layanan.

3. Sekarang, jalankan systemctl restart perintah di bawah ini untuk memulai ulang layanan Redis (redis.service ) karena layanan Redis belum mengetahui tentang perubahan tersebut.

sudo systemctl restart redis.service

4. Terakhir, jalankan systemctl status perintah di bawah ini untuk melihat apakah Redis sedang berjalan.

sudo systemctl status redis.service

Seperti yang Anda lihat di bawah, output menunjukkan bahwa layanan Redis sedang berjalan.

Menguji apakah Server Redis Berfungsi dengan Benar

Anda telah mengonfigurasi dan memverifikasi bahwa layanan Redis aktif berjalan, tetapi itu tidak berarti server Redis berfungsi. Bagaimana cara menguji apakah server Redis berfungsi dengan baik? Sambungkan ke server Redis dan kirim perintah untuk melihat apakah server merespons.

1. Jalankan redis-cli perintah di bawah ini untuk terhubung ke server Redis. redis-cli adalah antarmuka baris perintah untuk Redis, yang memungkinkan Anda mengirim perintah ke server dan memeriksa statusnya.

redis-cli

Di bawah, Anda dapat mengetahui bahwa Anda berada di perintah server Redis (127.0.0.1:6379> ). redis-cli perintah mencoba menyambung ke server Redis di 127.0.0.1:6379 secara default.

2. Selanjutnya, jalankan ping perintah di bawah ini untuk memeriksa apakah server Redis dapat dijangkau.

ping

Seperti yang Anda lihat, server mengembalikan PONG , yang menunjukkan server Redis dapat dijangkau dan sekarang berhasil berkomunikasi dengan layanan.

Mungkin Anda masih ragu; jalankan set perintah di bawah. set perintah adalah perintah Redis yang menetapkan pasangan kunci-nilai dalam database.

set test "This is a test"

Seperti yang Anda lihat, perintah set mengembalikan “OK ,” yang menunjukkan bahwa layanan Redis berfungsi dengan benar.

3. Jalankan exit perintah di bawah ini untuk keluar dari redis-cli . Setelah itu, koneksi ke server Redis akan ditutup.

exit

Mengikat Server Redis ke Localhost

Anda baru saja menguji bahwa server Redis berfungsi dengan baik, tetapi mungkin juga dapat diakses dari perangkat lain di jaringan Anda. Perilaku ini tidak diinginkan, dan Anda biasanya ingin melindungi server Redis Anda dari orang asing.

Mengikat server Redis ke localhost menetapkan perilaku bahwa hanya mesin tempat Anda menginstal Redis yang dapat mengakses server Redis.

1. Buka /etc/redis/redis.conf file di editor teks Anda.

2. Cari baris yang bertuliskan bind 127.0.0.1 ::1 dan batalkan komentar pada baris dengan menghapus tanda angka (# ) di awal baris.

3. Sekarang, jalankan perintah di bawah ini untuk memulai kembali redis-server melayani.

sudo systemctl restart redis-server

4. Terakhir, jalankan perintah berikut untuk memeriksa apakah server Redis Anda terikat ke localhost. netstat -lnp perintah mencantumkan semua koneksi jaringan yang aktif, dan grep redis part memfilter output ke baris yang berisi “redis .”

-lnp singkatan dari Local Name Protocol, protokol jaringan yang digunakan oleh sistem mirip UNIX untuk menyelesaikan nama host ke alamat IP.

sudo netstat -lnp | grep redis

Anda dapat melihat di bawah bahwa server Redis sekarang hanya mendengarkan pada antarmuka localhost (127.0.0.1:6379 ). Mencerminkan perubahan dalam file konfigurasi, Anda dapat melihat bahwa hanya antarmuka localhost yang terdaftar di bawah koneksi internet aktif Anda (tcp ).

Sekarang, tidak ada perangkat lain di jaringan Anda yang dapat terhubung ke server Redis Anda.

Mengamankan Koneksi Server Redis dengan Kata Sandi

Pada titik ini, Redis tidak diatur untuk mengharuskan pengguna mengautentikasi dengan kata sandi. Siapa pun yang mengetahui alamat IP atau nama host server Redis Anda dapat terhubung dan mengubah datanya.

Bagaimana Anda melindungi server Redis Anda? Tetapkan kata sandi untuk mewajibkan pengguna melakukan autentikasi saat menghubungkan ke server Redis Anda.

1. Buka kembali redis.conf file konfigurasi di editor teks/kode Anda.

2. Selanjutnya, atur kata sandi yang kuat dengan yang berikut:

  • Cari requirepass foobared di bawah SECURITY bagian
  • Hapus tanda angka (# ) di awal baris
  • Ganti foobared dengan kata sandi pilihan Anda yang kuat dan simpan perubahannya

3. Jalankan perintah berikut untuk memulai ulang dan menyambung ke server Redis Anda.

sudo systemctl restart redis-server
redis-cli

4. Sekarang, jalankan ping perintah untuk melihat apakah Anda akan mendapatkan respons dari server.

ping

Di bawah, Anda dapat melihat pesan kesalahan yang menyatakan NOAUTH Authentication diperlukan . Pesan ini menunjukkan bahwa Anda memerlukan kata sandi otentikasi untuk mengakses server Redis Anda dari jarak jauh.

5. Jalankan auth di bawah ini perintah diikuti dengan kata sandi Anda untuk mengotentikasi koneksi Anda ke server Redis Anda.

auth Qae9p_fY:YjdtJ7k

Anda akan mendapatkan OK respon ketika otentikasi berhasil, seperti di bawah ini.

6. Terakhir, jalankan kembali ping perintah untuk menguji apakah Anda telah mengautentikasi koneksi Anda ke server Redis Anda.

ping

Sekarang Anda akan mendapatkan PONG respons, seperti yang ditunjukkan di bawah ini, setelah mengautentikasi koneksi Anda. Pada titik ini, Anda sekarang telah berhasil melindungi server Redis Anda dengan kata sandi.

Menonaktifkan Perintah Berbahaya untuk Melindungi Server Redis Anda

Menyetel kata sandi untuk mengautentikasi koneksi ke server Redis Anda tidak berarti mendapatkan perlindungan 100%. Secara default, Redis menyertakan beberapa perintah berbahaya yang memungkinkan pengguna mengubah data di database Anda.

Saat dijalankan oleh pengguna yang tidak sah, perintah ini memungkinkan penyusup untuk membaca, memodifikasi, menghancurkan, dan bahkan menghapus data database Redis Anda.

Di bawah ini bukan daftar lengkap karena server Redis Anda mungkin memiliki perintah berbahaya tambahan, tetapi dalam kebanyakan kasus, ini adalah perintah berbahaya:

FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF
BGSAVE, SAVE, SPOP, SREM, RENAME, DEBUG, EVAL

Untuk lebih mengamankan server Redis Anda, ganti nama perintah berbahaya ini di redis.conf berkas:

1. Buka redis.conf file di editor teks Anda dan cari Penggantian nama perintah bagian.

Ganti nama perintah menjadi string kosong untuk menonaktifkannya dengan mengikuti sintaks di bawah ini. Ganti the-command dengan perintah yang sebenarnya untuk menonaktifkan.

rename-command the-command ""

Misalnya, nonaktifkan CONFIG perintah dengan mengganti nama CONFIG ke string kosong, seperti yang ditunjukkan di bawah ini, lalu simpan perubahannya. Tanda kutip ganda (“”) menunjukkan string kosong yang menandakan penonaktifan perintah.

2. Keluar dari editor teks dan jalankan perintah di bawah ini untuk memulai ulang server Redis.

sudo systemctl restart redis-server

3. Sekarang jalankan perintah berikut untuk terhubung ke server Redis Anda.

redis-cli
auth Qae9p_fY:YjdtJ7k

4. Terakhir, jalankan config get perintah untuk menguji bahwa CONFIG perintah dinonaktifkan.

config get requirepass

Anda akan mendapatkan ERR perintah yang tidak diketahui config respon, seperti yang ditunjukkan di bawah ini, yang menunjukkan bahwa CONFIG perintah dinonaktifkan.

Jika config get requirepass perintah mendorong melalui, itu meminta server Redis Anda untuk kata sandi untuk mengotentikasi koneksi ke server Redis Anda.

Anda sekarang telah berhasil mengganti nama perintah Redis yang berbahaya untuk melindungi server Redis Anda. Sekarang terus nonaktifkan perintah berbahaya lainnya di redis.conf berkas.

Memblokir Permintaan Koneksi ke Redis Server dengan Firewall

Cara lain untuk mengamankan server Redis Anda adalah dengan menyiapkan firewall. Menyiapkan firewall mengharuskan Anda untuk mengizinkan hanya port yang diperlukan untuk setiap layanan yang berjalan di server Anda.

Misalnya, jika Anda menjalankan Redis di server Anda pada port 6379 , maka port itulah yang hanya perlu Anda buka. Jika Anda perlu mengizinkan akses dari alamat IP atau rentang alamat tertentu, Anda dapat menambahkan alamat tersebut ke aturan firewall.

Untuk menyiapkan firewall, Anda harus menginstal alat konfigurasi firewall terlebih dahulu. Contoh ini menggunakan UFW, alat konfigurasi firewall yang umum digunakan di Linux. Namun Anda juga dapat menggunakan alat lain, seperti iptables, untuk menyiapkan firewall.

1. Jalankan perintah berikut untuk menginstal UFW di komputer Anda.

sudo apt install ufw -y

2. Selanjutnya, jalankan perintah di bawah ini untuk mengaktifkan UFW.

sudo ufw enable

Masukkan 'Y' ketika Anda mendapatkan prompt yang ditunjukkan di bawah ini untuk terus menjalankan perintah.

3. Jalankan ufw perintah di bawah ini untuk menambahkan aturan, yang memungkinkan (allow ) lalu lintas pada port 6379 untuk server Redis Anda. Ganti 11.22.33.44 Alamat IP dengan alamat IP pengguna yang Anda tuju.

sudo ufw allow from 11.22.33.44 to any port 6379

4. Terakhir, jalankan perintah di bawah ini untuk memverifikasi bahwa Anda telah berhasil menambahkan aturan firewall. Perintah memeriksa status firewall Anda.

sudo ufw status

Anda dapat melihat pada output di bawah bahwa firewall aktif dan memiliki aturan untuk mengizinkan lalu lintas pada port 6379 untuk Redis dari alamat IP 11.22.33.44 .

Sekarang, setiap pengguna dengan alamat IP 11.22.33.44 dapat terhubung ke Redis melalui port 6379 dan perlu mengautentikasi dengan kata sandi. Anda dapat menambahkan port tambahan untuk layanan lain dengan cara yang sama.

Kesimpulan

Sepanjang tutorial ini, Anda telah mempelajari cara memasang dan mengamankan server Redis Anda dengan mengganti nama perintah berbahaya menjadi string kosong dan menyiapkan firewall.

Dengan pengetahuan yang baru ditemukan ini, Anda dapat menikmati manfaat penuh dari Redis tanpa khawatir server Anda terkena risiko yang tidak perlu.

Ingin belajar lebih banyak? Mengapa tidak memulai dengan mengamankan server Redis di Kubernetes?


Linux
  1. Cara menginstal Python di Linux

  2. Cara menginstal Java di Linux

  3. Bagaimana cara menginstal layanan SSH ( secure shell ) di Kali Linux

  1. Cara Menginstal dan Mengamankan Redis di Ubuntu 20.04

  2. Cara Menginstal dan Mengamankan Redis di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi Redis di Debian

  1. Cara menginstal Linux dalam 3 langkah

  2. Cara Menginstal NodeJS Di Linux

  3. Cara Menginstal Redis di Rocky Linux 8