إنشاء سجن مخصص لـ PostgreSQL في Fail2Ban

Fail2Ban هي أداة أمان لمنع الهجمات المتكررة مثل هجمات القوة الغاشمة. إذا كنت تستخدم PostgreSQL وترغب في زيادة أمانها، فيمكنك إنشاء سجن مخصص لها في Fail2Ban لحظر عناوين IP المشبوهة في حالة محاولات تسجيل الدخول الفاشلة المتكررة. تابع Radib حتى نهاية هذه المقالة.


خطوات إنشاء سجن مخصص لـ PostgreSQL

1. تثبيت Fail2Ban (إذا لزم الأمر)

إذا لم يتم تثبيت Fail2Ban على نظامك، يمكنك تثبيته باستخدام الأوامر التالية:

على CentOS/RHEL:

sudo yum install fail2ban -y
Bash

على Ubuntu/Debian:

sudo apt update
sudo apt install fail2ban -y
Bash

2. تمكين تسجيل الدخول في PostgreSQL

لكي يتمكن Fail2Ban من اكتشاف النشاط المشبوه، يجب عليك تمكين سجلات محاولات تسجيل الدخول الفاشلة.

اشترِ خادمًا سحابيًا بالساعة والشهر بأفضل سعر من Radib، انقر فوق

افتح ملف تكوين PostgreSQL:

sudo nano /etc/postgresql/14/main/postgresql.conf # path in Ubuntu
Bash

قم بتعديل أو إضافة ما يلي الخطوط:

logging_collector = on
log_directory = '/var/log/postgresql'
log_filename = 'postgresql.log'
log_line_prefix = '%m [%p] %q%u@%d '
log_statement = 'all'
log_connections = on
log_disconnections = on
log_duration = on
log_min_messages = warn
log_min_error_statement = error
log_error_verbosity = default
Conf

ثم أعد تشغيل PostgreSQL:

sudo systemctl restart postgresql
Bash

إنشاء مرشح مخصص في Fail2Ban

يتطلب Fail2Ban مرشحًا محددًا للكشف عن الهجمات. قم بإنشاء ملف الفلتر:

قم بشراء أفضل خادم افتراضي عالي الجودة من Radib، انقر فوق

sudo nano /etc/fail2ban/filter.d/postgresql.conf
Bash

أدخل المحتوى التالي في الملف:

[Definition]
failregex = ^%(__prefix_line)sFATAL: password authentication failed for user .* from host <HOST>
ignoreregex =
Ini

وصف الفلتر:

  • failregex: يكتشف هذا التعبير العادي محاولات تسجيل الدخول الفاشلة إلى PostgreSQL.
  • ignoreregex: يستخدم لاستبعاد حالات معينة.

4. تكوين سجن مخصص لـ PostgreSQL

نحتاج الآن إلى تكوين سجن خاص بـ PostgreSQL في Fail2Ban. إنشاء أو تعديل الملف: sudo nano /etc/fail2ban/jail.local [postgresql] enabled = true port = 5432 filter = postgresql logpath = /var/log/postgresql/postgresql.log maxretry = 3 bantime = 3600 findtime = 600 وصف القيمة: تمكين منفذ السجن (5432) PostgreSQL

  • maxretry: الحد الأقصى لعدد محاولات تسجيل الدخول قبل الحظر (هنا 3 مرات)
  • bantime: مدة الحظر (بالثواني، هنا ساعة واحدة)
  • findtime: الفاصل الزمني لحساب عدد المحاولات (هنا 10 دقائق)

 


5. إعادة تشغيل Fail2Ban

لتطبيق التغييرات التي أجريتها، أعد تشغيل خدمة Fail2Ban:

لا تفوت خدمات Radib، الجودة، الاقتصادية، العملية، انقر فوق

sudo systemctl restart fail2ban
Bash

6. التحقق من أداء Fail2Ban

للتأكد من التشغيل السليم، تحقق من حالة سجن PostgreSQL:

sudo fail2ban-client status postgresql
Bash

مثال على الناتج:

Status for the jail: postgresql
|- Filter
| |- Currently failed: 1
| |- Total failed: 5
| `- File list: /var/log/postgresql/postgresql.log
`- Actions
|- Currently banned: 1
|- Total banned: 2
`- Banned IP list: 192.168.1.10
Bash

7. إلغاء حظر عنوان IP محظور

إذا تم حظر عنوان IP عن طريق الخطأ، فيمكنك إلغاء حظره باستخدام الأمر التالي:

sudo fail2ban-client unban --ip 192.168.1.10
Bash

8. التحقق من سجلات Fail2Ban

إذا كنت بحاجة إلى فحص المزيد من التفاصيل، يمكنك عرض سجلات Fail2Ban:

sudo tail -f /var/log/fail2ban.log
Bash

الملخص

لزيادة أمان قاعدة بيانات PostgreSQL، يمكنك استخدام Fail2Ban على النحو التالي:

  1. قم بتثبيت Fail2Ban وتمكين سجلات PostgreSQL.
  2. قم بإنشاء مرشح مخصص للكشف عن عمليات تسجيل الدخول الفاشلة.
  3. قم بتكوين السجن في ملف jail.local.
  4. بدء ومراقبة أداء Fail2Ban.

يساعدك هذا الحل على تحديد الهجمات الضارة ومنع الوصول غير المصرح به.

إذا كنت بحاجة إلى مزيد من التوضيح من قسم تذكرة الدعم، يرجى الاتصال بخبراء Radib Group.

هل كانت المقالة مفيدة ؟ 201 أعضاء وجدوا هذه المقالة مفيدة (201 التصويتات)