آموزش امن‌سازی MongoDB روی CentOS 8

مقدمه

MongoDB که با نام Mongo نیز شناخته می‌شود، یک پایگاه داده سندمحور متن‌باز است که در بسیاری از برنامه‌های وب مدرن استفاده می‌شود. این دیتابیس در دسته NoSQL قرار می‌گیرد، زیرا برخلاف پایگاه‌های داده رابطه‌ای از ساختار جدولی سنتی استفاده نمی‌کند و به جای آن از اسناد شبیه JSON با ساختار پویا بهره می‌برد.

به‌صورت پیش‌فرض، در MongoDB احراز هویت فعال نیست؛ یعنی هر کاربری که به سروری که MongoDB روی آن نصب شده دسترسی داشته باشد، می‌تواند بدون محدودیت داده‌ها را بخواند، اضافه کند یا حذف کند.

در این آموزش یاد می‌گیرید چگونه:

  • یک کاربر مدیریتی در MongoDB ایجاد کنید
  • احراز هویت را فعال کنید
  • دسترسی کاربران را بررسی کنید تا فقط کاربران مجاز بتوانند به دیتابیس دسترسی داشته باشند

پیش‌نیازها

برای انجام این آموزش نیاز دارید:

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

مرحله اول — ایجاد کاربر مدیریتی

از نسخه 3.0 به بعد، MongoDB فقط اتصال‌های محلی را قبول می‌کند و به صورت پیش‌فرض از اینترنت در دسترس نیست؛ اما احراز هویت غیرفعال است.

یعنی هر کاربری که به سرور دسترسی داشته باشد، به کل دیتابیس دسترسی خواهد داشت.

ابتدا وارد محیط Mongo شوید:

mongo

پس از ورود، اگر احراز هویت غیرفعال باشد، هشدار زیر را مشاهده می‌کنید:

Access control is not enabled for the database

برای دیدن دیتابیس‌ها:

show dbs

خروجی:

admin 0.000GB
config 0.000GB
local 0.000GB

اکنون به دیتابیس مدیریتی بروید:

use admin

ایجاد کاربر مدیر

دستور زیر را اجرا کنید:

db.createUser(
{
user: “AdminSammy”,
pwd: passwordPrompt(),
roles: [
{ role: “userAdminAnyDatabase”, db: “admin” },
“readWriteAnyDatabase”
]
}
)

توضیح:

این دستور یک کاربر مدیریتی ایجاد می‌کند با دسترسی:

  • userAdminAnyDatabase → مدیریت کاربران همه دیتابیس‌ها
  • readWriteAnyDatabase → خواندن و نوشتن در همه دیتابیس‌ها

بعد از اجرا از شما رمز عبور می‌خواهد:

Enter password:

بعد از موفقیت:

Successfully added user

سپس از Mongo خارج شوید:

exit

مرحله دوم — فعال کردن احراز هویت

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

sudo nano /etc/mongod.conf

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

#security:

آن را به شکل زیر تغییر دهید:

security:
authorization: “enabled”

سپس فایل را ذخیره کنید و سرویس MongoDB را ری‌استارت کنید:

sudo systemctl restart mongod

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

sudo systemctl status mongod

اگر سرویس فعال باشد خروجی شامل این عبارت است:

Active: active (running)

مرحله سوم — تست احراز هویت

ابتدا بدون نام کاربری وارد Mongo شوید:

mongo

حالا دستور زیر را اجرا کنید:

show dbs

این بار هیچ خروجی نمایش داده نمی‌شود، چون احراز هویت فعال شده و شما لاگین نکرده‌اید.

از محیط خارج شوید:

exit

ورود با کاربر مدیریتی

اکنون با کاربر مدیر وارد شوید:

mongo -u AdminSammy -p –authenticationDatabase admin

رمز عبور را وارد کنید.

سپس:

show dbs

این بار خروجی دیتابیس‌ها نمایش داده می‌شود:

admin 0.000GB
config 0.000GB
local 0.000GB

این یعنی احراز هویت با موفقیت فعال شده است.


نتیجه‌گیری

در این آموزش یاد گرفتید چگونه:

  • در MongoDB یک کاربر مدیریتی ایجاد کنید
  • احراز هویت را فعال کنید
  • دسترسی کاربران بدون لاگین را محدود کنید
  • ورود کاربر مدیریتی را تست کنید

با این کار، فقط کاربرانی که نام کاربری و رمز عبور معتبر دارند می‌توانند به دیتابیس دسترسی داشته باشند و امنیت MongoDB شما به شکل قابل توجهی افزایش پیدا می‌کند.

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

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

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

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

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