نحوه نصب و امن‌سازی Redis روی CentOS 8

مقدمه

Redis یک دیتابیس متن‌باز و مبتنی بر حافظه (in-memory) از نوع key-value است که برای کش کردن داده‌ها عملکرد بسیار خوبی دارد. Redis یک پایگاه داده غیررابطه‌ای (NoSQL) است و به خاطر انعطاف‌پذیری، سرعت بالا، مقیاس‌پذیری و پشتیبانی از زبان‌های مختلف شناخته می‌شود.

Redis برای اجرا در محیط‌های امن طراحی شده و به طور پیش‌فرض امکانات امنیتی قوی ندارد؛ با این حال چند قابلیت امنیتی پایه مثل:

  • تعیین رمز عبور
  • تغییر نام یا غیرفعال کردن دستورات حساس

را ارائه می‌دهد.

در این آموزش یاد می‌گیرید که چگونه Redis را روی CentOS 8 نصب کنید و تنظیمات امنیتی آن را اعمال نمایید.

توجه: این آموزش مربوط به حالتی است که Redis و برنامه کلاینت روی یک سرور یا شبکه امن باشند. اگر Redis از طریق اینترنت یا شبکه ناامن در دسترس باشد، باید از SSL Proxy یا VPN استفاده کنید.


پیش‌نیازها

قبل از شروع باید:

  • یک سرور CentOS 8
  • یک کاربر غیر root با دسترسی sudo
  • فایروال firewalld فعال

داشته باشید.


مرحله اول: نصب و اجرای Redis

برای نصب Redis از دستور زیر استفاده کنید:

sudo dnf install redis nano

پس از تأیید نصب، فایل تنظیمات Redis را باز کنید:

sudo nano /etc/redis/redis.conf

مقدار زیر را پیدا کنید:

supervised no

و آن را به این مقدار تغییر دهید:

supervised systemd

سپس Redis را اجرا کنید:

sudo systemctl start redis.service

برای اجرای خودکار هنگام بوت:

sudo systemctl enable redis

وضعیت سرویس را بررسی کنید:

sudo systemctl status redis

اگر Redis درست اجرا شده باشد وضعیت آن active (running) خواهد بود.

برای تست اتصال:

redis-cli ping

باید پاسخ زیر را ببینید:

PONG

مرحله دوم: تنظیم Redis و ایمن‌سازی با فایروال

فایل تنظیمات Redis را باز کنید:

sudo nano /etc/redis.conf

خط زیر را پیدا کنید:

bind 127.0.0.1

این خط باعث می‌شود Redis فقط روی localhost گوش دهد و از بیرون قابل دسترسی نباشد.

اگر نیاز دارید از سرور دیگری به Redis وصل شوید، بهتر است به جای IP عمومی از IP خصوصی استفاده کنید:

bind your_private_ip

اگر Redis فقط محلی استفاده می‌شود، نیازی به باز کردن پورت در فایروال نیست.

اگر نیاز به دسترسی از سرور دیگر دارید:

sudo firewall-cmd –permanent –new-zone=redis
sudo firewall-cmd –permanent –zone=redis –add-port=6379/tcp
sudo firewall-cmd –permanent –zone=redis –add-source=client_server_private_IP
sudo firewall-cmd –reload

مرحله سوم: تنظیم رمز عبور برای Redis

فایل تنظیمات را باز کنید:

sudo nano /etc/redis.conf

بخش زیر را پیدا کنید:

# requirepass foobared

کامنت را بردارید و رمز عبور قوی تنظیم کنید:

requirepass YourStrongPassword

سپس Redis را ری‌استارت کنید:

sudo systemctl restart redis

تست رمز عبور:

redis-cli

دستور زیر بدون احراز هویت خطا می‌دهد:

set key1 10

خطا:

(error) NOAUTH Authentication required.

احراز هویت:

auth YourStrongPassword

اگر موفق باشد:

OK

مرحله چهارم: غیرفعال کردن یا تغییر نام دستورات خطرناک

برای امنیت بیشتر می‌توانید برخی دستورات خطرناک را غیرفعال کنید:

sudo nano /etc/redis.conf

مثلاً:

rename-command FLUSHDB “”
rename-command FLUSHALL “”
rename-command DEBUG “”

این دستورات کاملاً غیرفعال می‌شوند.

یا تغییر نام دهید:

rename-command SHUTDOWN SHUTDOWN_MENOT
rename-command CONFIG ASC12_CONFIG

سپس:

sudo systemctl restart redis.service

مرحله پنجم: تنظیم مالکیت و سطح دسترسی فایل‌ها

بررسی پوشه داده Redis:

ls -l /var/lib | grep redis

اگر لازم بود دسترسی را محدود کنید:

sudo chmod 770 /var/lib/redis

برای فایل تنظیمات:

sudo chown redis:redis /etc/redis.conf
sudo chmod 600 /etc/redis.conf

و در پایان:

sudo systemctl restart redis

نتیجه‌گیری

در این آموزش:

  • Redis را نصب کردید
  • آن را با systemd اجرا کردید
  • دسترسی شبکه را محدود کردید
  • برای آن رمز عبور تعیین کردید
  • دستورات حساس را غیرفعال کردید
  • سطح دسترسی فایل‌ها را امن کردید

این اقدامات امنیت Redis را بسیار بهتر می‌کنند، اما مهم‌ترین لایه امنیتی همچنان فایروال است؛ چون اگر کسی به سرور دسترسی پیدا کند، می‌تواند بسیاری از این محدودیت‌ها را دور بزند.

از همراهی شما با پارمین کلود متشکریم.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *