مقدمه
Redis یک دیتابیس متنباز و مبتنی بر حافظه (in-memory) از نوع key-value است که برای کش کردن دادهها عملکرد بسیار خوبی دارد. Redis یک پایگاه داده غیررابطهای (NoSQL) است و به خاطر انعطافپذیری، سرعت بالا، مقیاسپذیری و پشتیبانی از زبانهای مختلف شناخته میشود.
Redis برای اجرا در محیطهای امن طراحی شده و به طور پیشفرض امکانات امنیتی قوی ندارد؛ با این حال چند قابلیت امنیتی پایه مثل:
- تعیین رمز عبور
- تغییر نام یا غیرفعال کردن دستورات حساس
را ارائه میدهد.
در این آموزش یاد میگیرید که چگونه Redis را روی CentOS 8 نصب کنید و تنظیمات امنیتی آن را اعمال نمایید.
توجه: این آموزش مربوط به حالتی است که Redis و برنامه کلاینت روی یک سرور یا شبکه امن باشند. اگر Redis از طریق اینترنت یا شبکه ناامن در دسترس باشد، باید از SSL Proxy یا VPN استفاده کنید.
پیشنیازها
قبل از شروع باید:
- یک سرور CentOS 8
- یک کاربر غیر root با دسترسی sudo
- فایروال firewalld فعال
داشته باشید.
مرحله اول: نصب و اجرای Redis
برای نصب Redis از دستور زیر استفاده کنید:
پس از تأیید نصب، فایل تنظیمات Redis را باز کنید:
مقدار زیر را پیدا کنید:
و آن را به این مقدار تغییر دهید:
سپس Redis را اجرا کنید:
برای اجرای خودکار هنگام بوت:
وضعیت سرویس را بررسی کنید:
اگر Redis درست اجرا شده باشد وضعیت آن active (running) خواهد بود.
برای تست اتصال:
باید پاسخ زیر را ببینید:
مرحله دوم: تنظیم Redis و ایمنسازی با فایروال
فایل تنظیمات Redis را باز کنید:
خط زیر را پیدا کنید:
این خط باعث میشود Redis فقط روی localhost گوش دهد و از بیرون قابل دسترسی نباشد.
اگر نیاز دارید از سرور دیگری به Redis وصل شوید، بهتر است به جای IP عمومی از IP خصوصی استفاده کنید:
اگر 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
فایل تنظیمات را باز کنید:
بخش زیر را پیدا کنید:
کامنت را بردارید و رمز عبور قوی تنظیم کنید:
سپس Redis را ریاستارت کنید:
تست رمز عبور:
دستور زیر بدون احراز هویت خطا میدهد:
خطا:
احراز هویت:
اگر موفق باشد:
مرحله چهارم: غیرفعال کردن یا تغییر نام دستورات خطرناک
برای امنیت بیشتر میتوانید برخی دستورات خطرناک را غیرفعال کنید:
مثلاً:
rename-command FLUSHALL “”
rename-command DEBUG “”
این دستورات کاملاً غیرفعال میشوند.
یا تغییر نام دهید:
rename-command CONFIG ASC12_CONFIG
سپس:
مرحله پنجم: تنظیم مالکیت و سطح دسترسی فایلها
بررسی پوشه داده Redis:
اگر لازم بود دسترسی را محدود کنید:
برای فایل تنظیمات:
sudo chmod 600 /etc/redis.conf
و در پایان:
نتیجهگیری
در این آموزش:
- Redis را نصب کردید
- آن را با systemd اجرا کردید
- دسترسی شبکه را محدود کردید
- برای آن رمز عبور تعیین کردید
- دستورات حساس را غیرفعال کردید
- سطح دسترسی فایلها را امن کردید
این اقدامات امنیت Redis را بسیار بهتر میکنند، اما مهمترین لایه امنیتی همچنان فایروال است؛ چون اگر کسی به سرور دسترسی پیدا کند، میتواند بسیاری از این محدودیتها را دور بزند.
از همراهی شما با پارمین کلود متشکریم.
نظرات کاربران