القراصنة يصبحون أكثر تطوراً، ويعرفون كيفية استغلال الثغرات. إذا كانت لديك بيانات حساسة في قاعدة بيانات MongoDB الخاصة بك، فمن الأهمية بمكان أن تأخذ الأمن بجدية. ولكن كيف؟ لا داعي للقلق! هذا البرنامج التعليمي يغطي كل ما تحتاج!
في هذا البرنامج التعليمي، ستتعلم كيفية حماية قواعد بيانات MongoDB الخاصة بك وصدها عن القراصنة من خلال إعداد تدابير أمنية.
استمر في القراءة وابدأ في التحكم في أمان MongoDB الخاص بك!
الشروط المسبقة
- سيكون هذا البرنامج التعليمي عرضًا عمليًا. لمتابعة الخطوات، تأكد من أن لديك ما يلي:
- تثبيت MongoDB على جهاز Linux الخاص بك.
- A non-root user with
sudo
privileges.
إنشاء مستخدم إداري مخصص
MongoDB ليس لديه أي نظام مصادقة مدمج. افتراضيًا، أي شخص لديه وصول إلى قاعدة البيانات لديه امتيازات إدارية كاملة — وهو أمر خطير للغاية! كيفية تأمين قاعدة البيانات الخاصة بك؟ ستقوم بإنشاء مستخدم يمتلك امتيازات إدارية وتقفل القواعد بيانات إلى هذا المستخدم الإداري.
هذه الإعدادات تتيح لك توفير نقطة واحدة لوصول المستخدم بامتيازات إدارية مع تقييد ما يمكن كل مستخدم فعله داخل قاعدة البيانات. على سبيل المثال، يجب أن يكون لدى المطورين وصولًا فقط للقراءة إلى قواعد البيانات، بينما يمكن للمسؤولين إنشاء وتحرير البيانات.
1. افتح الطرفية الخاصة بك وقم بتشغيل الأمر mongo
أدناه دون أي وسيط. يتيح لك هذا الأمر الاتصال بواجهة سطر الأوامر الخاصة بـ MongoDB كمستخدم إداري افتراضي.
هذا المستخدم الإداري قوي حيث يحتوي على وصول كامل للقراءة/الكتابة إلى جميع قواعد البيانات على الخادم، ويفضل تجنب استخدام هذا المستخدم للعمل اليومي.
ستحصل على تحذير يقول لم يتم تمكين التحكم في الوصول بعد…، كما هو موضح أدناه.
يشير هذا التحذير إلى أن أي شخص يمكنه الوصول إلى خادم MongoDB يمكنه أداء الإجراءات التي يرغبون فيها مع قواعد البيانات. تشمل هذه الإجراءات على سبيل المثال ولكن لا تقتصر على حذف وإسقاط وتحديث القواعد البيانية.
يظهر هذا التحذير لأنك لم تمكّن التحكم في الوصول بعد. لا تقلق حول ذلك، في الوقت الحالي. ستتعلم كيفية تمكين التحكم في الوصول في القسم التالي.

2. فيما بعد، قم بتشغيل الأمر show dbs
لعرض جميع قواعد البيانات على الخادم، بما في ذلك قواعد البيانات admin التي لا يفترض أن يراها مستخدم عادي.

٣. قم بتشغيل الأمر use admin
أدناه للتبديل إلى قاعدة البيانات الإدارية حيث يكون تركيزك على إنشاء مستخدم إداري مخصص. يقوم هذا الأمر بتغيير سياق قاعدة البيانات الحالي الخاص بك لاستخدام قاعدة البيانات الإدارية، كما هو موضح أدناه.
تستخدم MongoDB قاعدة بيانات الإدارة لتخزين قواعد التحكم في الوصول وتوفير المصادقة المدمجة وأسماء المستخدمين وكلمات المرور للمستخدمين وأدوارهم. لا يمكنك حذف أو إعادة تسمية قاعدة البيانات الإدارية لأنها ضرورية لوظائف قاعدة البيانات.

٤. الآن، قم بنسخ ولصق الكود أدناه إلى قندرة mongo واضغط على Enter. يقوم هذا الكود بإنشاء مستخدم يُدعى AdminATA
، بكلمة مرور LDWbPf6Fy9Ezs3Mv
، ولكن يمكنك استخدام بيانات اعتماد مختلفة كما تفضل.
هذا المستخدم الجديد له وصول قراءة/كتابة (readWriteAnyDatabase
) إلى جميع قواعد البيانات ووصول إداري إلى جميع المجموعات. ولكن لدى هذا المستخدم بلا ضوابط إسقاط/حذف قاعدة بيانات ولا يمكنه إسقاط أو تغيير الامتيازات للمستخدمين الآخرين.
بعد تشغيل الأمر وإذا واجهت خطأ، قم بإعادة التحقق من الكود الخاص بك وحاول مرة أخرى.
5. عندما يُطلب منك، قم بتقديم كلمة مرور آمنة كما هو موضح أدناه، واضغط على Enter.

أدناه، يمكنك رؤية رسالة تمت إضافة المستخدم بنجاح. يؤكد هذا الإخراج أنك قمت بإنشاء مستخدم بامتيازات إدارية بنجاح وقمت بتقييدها بأدنى الامتيازات المطلوبة.
في هذه النقطة، لديك بالفعل مستخدم إداري يُسمى AdminATA يمكنه القيام بكل ما تحتاجه في قاعدة البيانات دون منح الوصول للجميع.

6. في النهاية، قم بتشغيل الأمر exit للخروج من واجهة سطر مونجو.

إضافة أمان عن طريق تمكين المصادقة
الآن بمجرد وجود مستخدم إداري، ستقوم بإضافة طبقة أمان إضافية عن طريق تمكين المصادقة. من خلال ذلك، يتم منح وصول إلى قاعدة البيانات للمستخدمين الذين يمتلكون بيانات اعتماد صحيحة فقط.
المصادقة تشير إلى عملية التحقق من صحة الاتصال، عادةً من خلال توفير اسم مستخدم وكلمة مرور أو باستخدام رمز تحقق. تضمن المصادقة أنك الشخص الذي تقول أنك عليه وليس محتالًا يحاول الوصول إلى الموارد.
1. قم بتمكين المصادقة عن طريق تحرير ملف تكوين MongoDB باستخدام التعليمات التالية ، واحفظ التغييرات:
- افتح ملف /etc/mongod.conf في محرر النص المفضل لديك. يحتوي ملف /etc/mongod.conf على تكوين عنقدتك MongoDB.
- ابحث عن الدليل #security وقم بفك التعليق عنه بإزالة الرمز # أمام الدليل ، كما هو موضح أدناه. يخبر هذا الدليل MongoDB بالبحث عن إعداد الأمان في ملف التكوين.
- أضف سطرًا جديدًا أسفل الدليل security يقول authorization: enabled. لاحظ أن سطر authorization: enabled متباعد (لديه مسافتين في البداية) ، كما هو موضح أدناه.

2. بعد ذلك ، قم بتشغيل الأمر التالي من systemctl
لإعادة تشغيل خادم MongoDB لتفعيل التغييرات.
3. في الختام ، قم بتشغيل الأمر أدناه لعرض حالة خدمة MongoDB الخاصة بك.
أدناه، يمكنك رؤية سطر يقول Active: active (running) بنص أخضر، مما يشير إلى تشغيل خادم MongoDB الخاص بك واستعداده لقبول الاتصالات.

اختبار ما إذا كانت المصادقة تعمل
لقد قمت للتو بتمكين المصادقة، ولكن كيف تعرف أنها تعمل؟ ستقوم بتسجيل الدخول إلى المستخدم الإداري لاختبار والتأكد من أن المصادقة الخاصة بك تعمل عن طريق عرض قواعد البيانات.
1. قم بتشغيل الأوامر التالية للوصول إلى القشرة mongo
كما فعلت في قسم “إنشاء مستخدم إداري مخصص” (الخطوة الأولى).
كما يمكنك رؤية أدناه، لم تعد تتلقى تحذير Access control is not enabled… حول تمكين المصادقة. بدلاً من ذلك، ستحصل على رسالة تخبرك بإصدار خادم MongoDB وقشرة MongoDB.

2. بعد ذلك، أعد تشغيل الأمر show dbs
للتحقق مما إذا كنت لا تزال تستطيع الوصول إلى قاعدة البيانات.
يجب على الأمر أن يظهر لك جميع قواعد البيانات، بما في ذلك قاعدة البيانات الإدارية. ولكن كما ترى أدناه، لا يظهر شيء. لماذا؟ عرض قائمة قواعد البيانات هو امتياز محفوظ للمستخدمين الإداريين فقط.
لم تقم بالمصادقة على قشرة mongo الخاصة بك لاستخدام دور الإدارة، لذلك لم تكن مخولًا بعرض قائمة قواعد البيانات.

مع المصادقة الممكنة، ستفشل الاتصال إذا حاول شخص ما الوصول إلى قاعدة البيانات باستخدام سلسلة اتصال لا تحتوي على بيانات اعتماد صحيحة.
توثيق سلاسل الاتصال هو جزء أساسي من أمان MongoDB، ويجب عليك تنفيذ التوثيق في جميع طبقات التطبيق. يجب أن تستخدم جميع الاتصالات بـ MongoDB سلسلة توثيق تتألف من بيانات اعتماد. تشمل هذه البيانات اسم المستخدم وكلمة المرور الصحيحة.
3. قم بتشغيل الأمر exit
للخروج من واجهة سطر MongoDB.
4. الآن، قم بتشغيل الأمر أدناه لتسجيل الدخول إلى واجهة سطر MongoDB باستخدام اسم المستخدم الذي أنشأته للمستخدم الإداري الذي أنشأته مؤخرًا (-u
) وكلمة المرور (-p
). قم بتبديل AdminATA
بالاسم الذي قمت بإنشائه في قسم “إنشاء مستخدم إداري مخصص” (الخطوة الرابعة).
يُخبر المعلمة --authenticationDatabase
واجهة سطر MongoDB بالتحقق من الهوية ضد قاعدة البيانات admin
.
5. قدم كلمة المرور الخاصة بالمستخدم الإداري عند الطلب.


6. في النهاية، قم بإعادة تشغيل الأمر show dbs
لمحاولة رؤية ما إذا كنت تستطيع عرض جميع قواعد البيانات.
في هذا الوقت، كما ترون أدناه، يظهر قائمة قواعد البيانات لأنك مستخدم إداري.

الختام
في هذا البرنامج التعليمي، تعلمت كيفية الاتصال بإنشاء مستخدم إداري وتمكين التوثيق. لقد تعلمت أن تتحكم في أمان MongoDB الخاص بك وتفرض قيودًا على من يمكنه الوصول إلى قواعد البيانات على الخادم الخاص بك.
في هذه المرحلة، يمكنك أن تقرر من يمكنه الوصول إلى ما. فما الذي ينتظرك بعد؟ ربما تتعلم كيفية استخدام حاوية MongoDB بشكل آمن؟