دليل تقني
تعزيز أدوار مسؤولي قواعد بيانات PostgreSQL والمصادقة
تعلّم كيفية تعزيز أمان PostgreSQL من خلال تكوين pg_hba.conf، وفرض SCRAM-SHA-256، وتطبيق مبدأ الامتياز الأدنى على أدوار قاعدة البيانات للأمان المؤسسي.

دليل عملي لتأمين PostgreSQL من خلال تكوين pg_hba.conf، وفرض SCRAM-SHA-256، وتطبيق مبدأ الامتياز الأدنى على أدوار قاعدة البيانات.
تكوين pg_hba.conf للتحكم الصارم في الوصول
يتحكم ملف pg_hba.conf في العملاء الذين يتصلون بخادم PostgreSQL. يستخدم منطق أول تطابق يفوز، لذا فإن ترتيب الإدخالات مهم. تعرّف كل سطر على نوع الاتصال، وقاعدة البيانات، والمستخدم، والعنوان، وطريقة المصادقة. غالبًا ما تسمح الإعدادات الافتراضية للإنتاج بالمصادقة المحلية عبر peer والاتصالات عن بُعد باستخدام scram-sha-256 أو md5. قد تترك الإعدادات الافتراضية فجوات، مثل المصادقة عبر trust للمستخدمين المحليين أو نطاقات عناوين IP واسعة.
قيّد عمود العنوان بالشبكات الفرعية أو أسماء العُقد المحددة. تجنّب 0.0.0.0/0 أو ::/0 ما لم تتطلب الخدمة المواجهة للجمهور ذلك. استخدم كتل CIDR محددة للتطبيقات الداخلية. إذا كانت قاعدة البيانات تستخدم فقط مقابس Unix domain، فاضبط الإدخالات المحلية على peer أو cert للمصادقة للتحقق من مستخدم نظام التشغيل. لا تستخدم مصادقة trust للاتصالات الدائمة. راجع listen_addresses في postgresql.conf للتأكد من أن الخادم لا يستمع على واجهات غير ضرورية.
راجع إدخالات pg_hba.conf للتأكد من عدم استخدام مصادقة trust للاتصالات الدائمة.
قيّد حقول العنوان بنطاقات IP أو أسماء عُقد محددة لتقليل سطح الهجوم.
تحقق من أن listen_addresses في postgresql.conf لا يعرّض الخادم لواجهات شبكة غير ضرورية.
فرض SCRAM-SHA-256 لمصادقة كلمة المرور
يدعم PostgreSQL مصادقة كلمات المرور عبر md5 وscram-sha-256. طريقة md5 قديمة وقابلة للهجمات العائدة (replay attacks). تفتقر إلى السرية الأمامية. يستخدم SCRAM-SHA-256 بروتوكول تحدي واستجابة يحمي من هذه المشكلات. اضبط password_encryption في postgresql.conf على scram-sha-256 للأدوار الجديدة والهجرة. هذا يخزّن كلمات المرور الجديدة باستخدام الخوارزمية الأقوى.
حدّث الأدوار الموجودة ذات كلمات المرور المشفّرة بـ md5 إلى SCRAM. أعد تعيين كلمة المرور لكل دور لإعادة تجزئة القيمة باستخدام إعداد password_encryption الحالي. تحقق من أن مكتبات العميل تدعم SCRAM-SHA-256، حيث قد تفشل العملاء الأقدم في المصادقة. احذف md5 من pg_hba.conf بعد الهجرة لمنع الرجوع إلى الخوارزمية الأضعف.
اضبط password_encryption على scram-sha-256 في postgresql.conf لفرض التجزئة القوية لكلمات المرور الجديدة.
أعد تعيين كلمات المرور للأدوار الموجودة لتحويل تجزئتها من md5 إلى SCRAM-SHA-256.
احذف md5 من طرق المصادقة في pg_hba.conf لمنع استخدام الخوارزمية القديمة.
تطبيق مبدأ الامتياز الأدنى على أدوار قاعدة البيانات
يستخدم PostgreSQL الأدوار لإدارة صلاحيات الوصول. يعمل الدور كمستخدم أو مجموعة. تُطبَّق الصلاحيات على كائنات محددة مثل الجداول والمخططات والدوال. يتطلب مبدأ الامتياز الأدنى أن يحتفظ كل دور فقط بالصلاحيات اللازمة لأدائه. الصلاحيات الواسعة مثل ALL أو PUBLIC تؤدي غالبًا إلى وصول غير مقصود. على سبيل المثال، منح CREATE على مخطط يسمح للدور بإنشاء كائنات جديدة، وهو ما لا يحتاجه مستخدم تطبيق للقراءة فقط.
أنشئ أدوارًا محددة لوظائف مختلفة، مثل app_read وapp_write وdba_admin. امنح فقط الصلاحيات اللازمة على كائنات محددة. قد يحتاج مستخدم التطبيق إلى SELECT على جداول معينة وINSERT على أخرى، ولكن ليس TRUNCATE أو REFERENCES. استخدم أوامر GRANT وREVOKE لإدارة الصلاحيات. قم بتدقيق الأدوار بانتظام لإزالة الصلاحيات غير الضرورية. يقلل هذا من خطر تعرض البيانات ويبسّط إدارة الوصول أثناء الحوادث الأمنية.
أنشئ أدوارًا مميزة لوظائف مختلفة، مثل القراءة فقط، والقراءة والكتابة، والوصول الإداري.
امنح صلاحيات محددة على كائنات محددة بدلاً من استخدام منح واسع مثل ALL أو PUBLIC.
قم بتدقيق الأدوار دوريًا لإزالة الصلاحيات غير الضرورية وضمان الامتثال لمبدأ الامتياز الأدنى.
تكامل طرق المصادقة الخارجية
غالبًا ما تكامل بيئات المؤسسات PostgreSQL مع أنظمة الهوية المركزية مثل LDAP أو Kerberos أو المصادقة القائمة على الشهادات. يتيح LDAP للمستخدمين المصادقة باستخدام بيانات اعتماد الدليل، مما يلغي الحاجة إلى كلمات مرور قاعدة بيانات منفصلة. يوفر Kerberos المصادقة المتبادلة والتشفير للشبكات الآمنة. تستخدم المصادقة بالشهادات شهادات X.509 للتحقق من هوية العميل، وغالبًا ما تُدمج مع TLS.
كوّن طريقة ldap في pg_hba.conf وتأكد من إمكانية الوصول إلى خادم LDAP من خادم قاعدة البيانات. بالنسبة لـ Kerberos، كوّن طريقة GSSAPI وقم بإعداد مفتاح Kerberos keytab بشكل صحيح. بالنسبة للمصادقة بالشهادات، استخدم طريقة cert وتأكد من أن شهادات العميل موقّعة من سلطة شهادة موثوقة. تقلل هذه الطرق من مخاطر الهجمات القائمة على كلمات المرور وتوفر إطار مصادقة موثوقًا.
استخدم مصادقة LDAP للتكامل مع أنظمة إدارة الهوية المركزية.
كوّن GSSAPI للمصادقة القائمة على Kerberos في بيئات الشبكات الآمنة.
طبّق المصادقة بالشهادات باستخدام طريقة cert للتحقق القوي من هوية العميل.
المراقبة وتدقيق أحداث المصادقة
تكتشف مراقبة أحداث المصادقة محاولات الوصول غير المصرح بها وتحافظ على سجل تدقيق أمني. تسجّل خيارات تسجيل PostgreSQL محاولات الاتصال، والانفصال، وفشل المصادقة. فعّل log_connections وlog_disconnections لتتبع وصول المستخدمين. اضبط log_statement لتسجيل جميع العبارات للتدقيق، على الرغم من أن هذا يولّد حجمًا كبيرًا من السجلات. استخدم إضافات مثل pgAudit للتسجيل الدقيق لأنشطة قاعدة البيانات.
راجع السجلات بانتظام عن النشاط المشبوه، مثل تكرار فشل تسجيل الدخول أو الوصول من عناوين IP غير متوقعة. اضبط تنبيهات للأحداث الحرجة مثل فشل المصادقة للأدوار الإدارية. يساعد هذا في تحديد التهديدات والاستجابة لها بسرعة. حمِ ملفات السجلات واحتفظ بها وفقًا لمتطلبات الامتثال المؤسسي.
فعّل log_connections وlog_disconnections لتتبع أنماط وصول المستخدمين.
استخدم pgAudit أو إضافات مشابهة للتدقيق التفصيلي لأنشطة قاعدة البيانات.
اضبط تنبيهات لفشل المصادقة وأنماط الوصول المشبوهة لتمكين الاستجابة السريعة.
تحدث مع Worlber
تخطط لهجرة PostgreSQL أو نشر PGEE أو منصة قاعدة بيانات للإنتاج؟ تحدث مع خدمات قواعد بيانات Worlber.
أرسل بريدًا إلى contactus@worlber.com
استخدم نموذج التواصل الخاص بـ Worlber
المصادر
PostgreSQL Security: A Comprehensive Guide to Hardening Your Database
Comprehensive PostgreSQL Security Checklist & Tips | EDB
PostgreSQL: Documentation: 18: Chapter 21. Database Roles
الخطوة التالية
تحدث مع مهندسي Worlber
أرسل لنا بيئتك وهدفك. سنوضح لك ما يصلح، وما لا يصلح، والخطوة الآمنة التالية.